Skip to content

Far-Field Radiation Sensor

The far-field radiation sensor recovers fields in the far-field zone. You use it to study radiation and scattering patterns. It uses a near-to-far-field transformation. This transformation computes the electromagnetic field in the far-field region from its near-field values.

The far-field electric field is calculated using an approximation of the Stratton-Chu formula, which is valid in the limit where \(kr \gg 1\) (with \(k\) representing the wave number and \(r\) denoting the observation distance). According to this approximation, the far-field electric field \(\vec{E}_p(\vec{r}_0)\) at the observation direction \(\vec{r}_0\), parameterized by the spherical angles \((\theta,\phi)\), is expressed as

\[ r \vec{E}_p(\vec{r}_0) = \frac{-j k}{4 \pi} \vec{r}_0 \times \int_S \left[ \hat{n} \times \vec{E} - Z\, \vec{r}_0 \times \left(\hat{n} \times \vec{H}\right) \right] e^{-jk\vec{r}_0 \cdot \vec{r}} dS. \]

Here \(S\) is an arbitrary surface enclosing the simulated object with an outward normal \(\hat{n}\). The vectors \(\vec{E}\) and \(\vec{H}\) represent the electric and magnetic fields at the surface \(S\), while \(Z\) is the impedance. Variable \(r\) indicates a point on the surface \(S\), and the integration encompasses all such points. The observation direction is expressed as \(\vec{r}_0=(\sin\theta\cos\phi, \sin\theta\sin\phi, \cos\theta)\) with the polar angle \(\theta\in[0,\pi]\) and the azimuthal angle \(\phi\in[0,2\pi]\).

Note that we get \(r \vec{E}_p\) rather than \(\vec{E}_p\) because the electric field decays as \(\exp(-jkr)/r\). Multiply by \(r\) so the field quantity stays finite. The solution is also defined up to a global phase factor.

From \(r \vec{E}_p\), you can get the magnetic field if the waves propagate in free space:

\[ r \vec{H}_p = \frac{\vec{r}_0 \times r\vec{E}_p}{Z_0}, \]

where \(Z_0\) is the impedance of free space.

Having determined the far-field electric field \(\vec{E}_\text{far}\), the E-field radiation pattern \(\vec{E}_\text{pattern}(\theta,\phi)\) is defined as

\[ \vec{E}_\text{far}(\theta,\phi,r) = \vec{E}_\text{pattern}(\theta,\phi) \frac{e^{-j\vec{k}\cdot\vec{r}}}{r}. \]

From this equation, we have \(\vec{E}_\text{pattern}(\theta,\phi)=|r\vec{E}_p|\). The E-field radiation pattern has units of voltage.

The power \(U\) radiated per unit solid angle, also known as radiation intensity, is given by

\[ U(\theta,\phi) = \frac{1}{2Z_0} \left|\vec{E}_\text{pattern}(\theta,\phi)\right|^2. \]

To create a FarFieldRadiationSensor object, give a sensor name and the range parameters: start angle, stop angle, and step size. These parameters define the values for the polar angle \(\theta\) and the azimuthal angle \(\phi\). A section of the outer surface of the computational domain, where the AbsorbingBoundaryCondition is applied, serves as the integration surface \(S\). The example below shows how to create and use a FarFieldRadiationSensor:

sensor = FarFieldRadiationSensor(
      "My Far-Field Radiation Sensor",
      polar_start=0.0,
      polar_stop=180.0,
      polar_step=6.0,
      azimuthal_start=0.0,
      azimuthal_stop=360.0,
      azimuthal_step=6.0,
)

thetas = sensor.get_polar_angles()
phis = sensor.get_azimuthal_angles()
e_pattern = sensor.get_radiation_pattern()