The far field projections are a post-processing step to calculate the electromagnetic fields at points in space that lie far away from a structure that generates light. A typical far field projection samples the fields near the radiating structure and decomposes them into spherical or cylindrical waves. This decomposition is then used to reconstruct the electromagnetic fields at any requested point in space. The fields near the structure are usually collected using frequency domain monitors. If your structure is periodic, consider using the Grating projections (DGTD) feature instead.
Calculating a far field projection
To perform a far field projection, a script command called near2far is provided within the DGTD script environment. This command requires three different inputs, which typically come from different objects in a simulation. The next section describes what the necessary inputs are and how to collect them. The remaining sections explain what the results of this command are, how they are calculated, and how to use it.
Inputs
- An unstructured data set with the near fields as attributes named E and H parameterized by frequency. Such a data set is provided as a standard result by frequency domain monitors. The far field projection is automatically calculated for all the frequencies specified in the frequency parameter. The near fields are typically collected over a closed surface \(S^{\prime}\) sampled at a set of points \(\overrightarrow{r}^{\prime}\) as shown in the diagram (below).
- An unstructured data set with the desired far field observation points \(\overrightarrow{r}\). To facilitate the creation of this input, the script command createsphericalsurface is provided. This command generates an unstructured data set with a triangulated sphere (or a patch on a sphere) with the specified radius.
- The background refractive index \(n_b\) of the medium where the far fields will be calculated. The refractive index of any material for any given frequency can be retrieved using the getdgtdindex script command.
Results
A far field projection returns an unstructured data set with the far fields for every requested observation point \(\overrightarrow{r}\) parameterized by frequency. The far fields are computed from a decomposition of the near fields into spherical (3D) or cylindrical (2D) waves. The remainder of this section describes how the far fields are computed for the 3D case where the near field data is collected using surface monitors. A more complete explanation can be found in the provided in the references.
Surface currents
To decompose the near fields \(\overrightarrow{E}(\overrightarrow{r}^{\prime})\) and \(\overrightarrow{H}(\overrightarrow{r}^{\prime})\) into a set of spherical waves, the first step is to generate a set equivalent surface currents over \(S^{\prime}\):
$$\overrightarrow{J}_{s} \left(\overrightarrow{r}^{\prime}\right) = \hat{n}^{\prime} \left(\overrightarrow{r}^{\prime}\right) \times \overrightarrow{H}\left(\overrightarrow{r}^{\prime}\right)$$
$$\overrightarrow{M}_{s} \left(\overrightarrow{r}^{\prime}\right) = -\hat{n}^{\prime} \left(\overrightarrow{r}^{\prime}\right) \times \overrightarrow{E}\left(\overrightarrow{r}^\prime\right)$$
According to Love's equivalence principle, these equivalent surface currents encapsulate all the needed information about the light source. To compute the far fields from the equivalent electric surface current \(\overrightarrow{J}_{s}\left(\overrightarrow{r}^{\prime}\right)\) and the equivalent magnetic surface current \(\overrightarrow{M}_{s}\left(\overrightarrow{r}^{\prime}\right)\), a known analytic solution of Maxwell's equations is exploited. In 3D, a point source in a homogenous medium with refractive index \(n_b\) generates a spherical wave. By treating each point on the near field surface \(S^{\prime}\) as a radiating point source, the fields at a far away points can be calculated by aggregating the fields generated by all point sources.
Vector potentials
The fields generated by a point source with an electric current distribution \( \overrightarrow{J}_{s}\left(\overrightarrow{r}\right)\delta(\overrightarrow{r}-\overrightarrow{r}^{\prime})dS^{\prime} \) and a magnetic current distribution \( \overrightarrow{M}_{s}\left(\overrightarrow{r}\right)\delta(\overrightarrow{r}-\overrightarrow{r}^{\prime})dS^{\prime} \) can be found analytically by solving vector potential wave equations:
$$\nabla^2 \overrightarrow{F}\left(\overrightarrow{r}\right)+k^2\overrightarrow{F}\left(\overrightarrow{r}\right)=-\varepsilon \overrightarrow{M}_{s}\left(\overrightarrow{r}\right)\delta(\overrightarrow{r}-\overrightarrow{r}^{\prime})dS^{\prime}$$
$$\nabla^2 \overrightarrow{A}\left(\overrightarrow{r}\right)+k^2\overrightarrow{A}\left(\overrightarrow{r}\right)=-\mu \overrightarrow{J}_{s}\left(\overrightarrow{r}\right)\delta(\overrightarrow{r}-\overrightarrow{r}^{\prime})dS^{\prime}$$
where \(k=\omega\sqrt{\varepsilon\mu}\) and \(\omega=2\pi f\). These have the following well-known solutions representing a spherically propagating wave:
$$ \overrightarrow{F}\left(\overrightarrow{r}\right) = \frac{\varepsilon}{4\pi} \frac{e^{ik\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|}}{\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|} \overrightarrow{M}_{s}(\overrightarrow{r}^{\prime}) dS^{\prime}$$
$$ \overrightarrow{A}\left(\overrightarrow{r}\right) = \frac{\mu}{4\pi} \frac{e^{ik\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|}}{\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|}\overrightarrow{J}_{s}\left(\overrightarrow{r}^{\prime}\right) dS^{\prime}$$
To add the contributions from all the point sources distributed over the surface \(S^{\prime}\), the above vector potentials must be aggregated by integration:
$$ \overrightarrow{F}\left(\overrightarrow{r}\right) = \frac{\varepsilon}{4\pi} \oint_{S^{\prime}}^{} \frac{e^{ik\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|}}{\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|} \overrightarrow{M}(\overrightarrow{r}^{\prime}) dS^{\prime}$$
$$ \overrightarrow{A}\left(\overrightarrow{r}\right) = \frac{\mu}{4\pi} \oint_{S^{'}}^{ } \frac{e^{ik\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|}}{\left|\overrightarrow{r}-\overrightarrow{r}^{\prime}\right|}\overrightarrow{J}\left(\overrightarrow{r}^{\prime}\right) dS^{\prime}$$
Electromagnetic fields
From the total vector potentials \( \overrightarrow{F}\left(\overrightarrow{r}\right) \) and \( \overrightarrow{A}\left(\overrightarrow{r}\right) \), the far fields \(\overrightarrow{E}(\overrightarrow{r})\) and \(\overrightarrow{H}(\overrightarrow{r})\) can be computed:
$$ \overrightarrow{E}\left(\overrightarrow{r}\right) = i\omega\left(\overrightarrow{A}\left(\overrightarrow{r}\right)+\frac{1}{k^2}\nabla\left(\nabla\cdot\overrightarrow{A}\left(\overrightarrow{r}\right)\right)\right)-\frac{1}{\varepsilon}\nabla\times \overrightarrow{F}\left(\overrightarrow{r}\right)$$
$$ \overrightarrow{H}\left(\overrightarrow{r}\right) = i\omega\left(\overrightarrow{F}\left(\overrightarrow{r}\right)+\frac{1}{k^2}\nabla\left(\nabla\cdot\overrightarrow{F}\left(\overrightarrow{r}\right)\right)\right)+\frac{1}{\mu}\overrightarrow{\nabla}\times \overrightarrow{A}\left(\overrightarrow{r}\right)$$
An identical procedure can be used to compute the far fields in 2D by using point sources along a closed contour with equivalent line currents.
Far field integrals
The near2far script command calculates the far fields from approximations to the integrals in the previous section. These approximations are summarized below, and they are valid at observation points that are far away from the source radiating the fields.
2D
$$\overrightarrow{F}\left(\overrightarrow{\rho}\right) \approx \varepsilon_{0}n_{b}^2\sqrt{\frac{i}{8\pi k\rho}}e^{-ik\rho}\oint_{L^{\prime}}^{} \overrightarrow{M}_{\ell}\left(\overrightarrow{\rho}^{\prime}\right) e^{ik\left(\hat{\rho}\cdot\overrightarrow{\rho}^{\prime}\right)}dl^{\prime}$$
$$\overrightarrow{A}\left(\overrightarrow{\rho}\right) \approx \mu_{0}\sqrt{\frac{i}{8\pi k\rho}}e^{-ik\rho}\oint_{L^{\prime}}^{} \overrightarrow{J}_{\ell}\left(\overrightarrow{\rho}^{\prime}\right) e^{ik(\hat{\rho}\cdot\rho^{\prime})}dl^{\prime}$$
$$\overrightarrow{E}\left(\overrightarrow{\rho}\right) = i\omega\left(\overrightarrow{A}\left(\overrightarrow{\rho}\right)-\left(\overrightarrow{A}\left(\overrightarrow{\rho}\right)\cdot\hat{\rho}\right)\hat{\rho}+\eta_{b}\; \overrightarrow{F}\left(\overrightarrow{\rho}\right)\times\hat{\rho}\right)$$
$$\overrightarrow{H}\left(\overrightarrow{\rho}\right) = \frac{1}{\eta_{b}} \hat{\rho}\times \overrightarrow{E}\left(\overrightarrow{\rho}\right)$$
$$\eta_{b}=\frac{1}{n_b}\sqrt{\frac{\mu_{0}}{\varepsilon_{0}}}$$
3D
$$\overrightarrow{F}\left(\overrightarrow{r}\right) \approx \varepsilon_{0}n_{b}^{2}\frac{e^{ikr}}{4\pi r}\oint_{S^{\prime}}^{ } \overrightarrow{M}_{s}(\overrightarrow{r}^{\prime}) e^{-ik\left(\hat{r}\cdot r^{\prime}\right)}dS^{\prime}$$
$$\overrightarrow{A}\left(\overrightarrow{r}\right) \approx \mu_{0}\frac{e^{ikr}}{4\pi r}\oint_{S^{\prime}}^{} \overrightarrow{J}_{s}\left(\overrightarrow{r}^{\prime}\right) e^{-ik\left(\hat{r}\cdot r^{\prime}\right)}dS^{\prime}$$
$$\overrightarrow{E}\left(\overrightarrow{r}\right) = i\omega\left(\overrightarrow{A}\left(\overrightarrow{r}\right)-\left(\overrightarrow{A}\left(\overrightarrow{r}\right)\cdot\hat{r}\right)\hat{r}+\eta_{b}\; \overrightarrow{F}\left(\overrightarrow{r}\right)\times\hat{r}\right)$$
$$\overrightarrow{H}(\overrightarrow{r}) = \frac{1}{\eta_{b}} \hat{r}\times \overrightarrow{E}\left(\overrightarrow{r}\right)$$
$$\eta_{b}=\frac{1}{n_b}\sqrt{\frac{\mu_{0}}{\varepsilon_{0}}}$$
DGTD vs. FDTD
There are two key differences between the far field projections available in DGTD and those available in FDTD. First, the near2far command takes an unstructured data set in lieu of monitor names. This allows users to apply operations on the near field data (such as spatial filtering) prior to computing the far fields. Second, the far field projections in DGTD operate on unstructured data rather than rectilinear data. Using unstructured data provides greater flexibility to sample fields over closed lines and surfaces as demonstrated in the following examples.
Far field projection examples
Download and run the associated files DGTD_far_field_2D.ldev and DGTD_far_field_3D.ldev and run the corresponding scripts in the prompt to reproduce the plots shown below.
2D far field projection on an arc in DEVICE
E_near = getresult("DGTD::monitor","fields");
surf = createsphericalsurface([pi/2,pi/2],[pi,2*pi],[0,1,0],1,0.05);
E_far = near2far(E_near,surf,1.0);
visualize(E_far);
3D far field projection on a hemisphere in DEVICE
E_near = getresult("DGTD::monitor","fields");
surf = createsphericalsurface([0,pi/2],[0,2*pi],[0,0,1],1,0.05);
E_far = near2far(E_near,surf,1.0);
visualize(E_far);
Related publications
- Allen Taflove, Computational Electromagnetics: The Finite-Difference Time-Domain Method. Boston: Artech House, (2005).
- John B. Schneider, Understanding the Finite-Difference Time-Domain Method, Chapter 14: Near-to-Far-Field Transformation, (2010).
- Antenna Theory and Design, Warren L. Stutzman and Gary A. Thiele, Wiley, 2nd ed., 1998.