Skip to content

flex_rf.tidy3d.AntennaMetricsData

Type: class Base(s): DirectivityData, MicrowaveBaseModel

Data representing the main parameters and figures of merit for antennas.

The definitions of radiation efficiency, reflection efficiency, gain, and realized gain are based on:

Balanis, Constantine A., “Antenna Theory: Analysis and Design,” John Wiley & Sons, Chapter 2.9 (2016).

import numpy as np
from tidy3d.components.data.monitor_data import FluxDataArray, FieldProjectionAngleDataArray
from tidy3d.components.monitor import DirectivityMonitor
f = np.linspace(1e14, 2e14, 10)
r = np.atleast_1d(1e6)
theta = np.linspace(0, np.pi, 10)
phi = np.linspace(0, 2*np.pi, 20)
coords = dict(r=r, theta=theta, phi=phi, f=f)
coords_flux = dict(f=f)
field_values = (1+1j) * np.random.random((len(r), len(theta), len(phi), len(f)))
flux_data = FluxDataArray(np.random.random(len(f)), coords=coords_flux)
scalar_field = FieldProjectionAngleDataArray(field_values, coords=coords)
monitor = DirectivityMonitor(
center=(1,2,3),
size=(2,2,2),
freqs=f,
name="rad_monitor",
phi=phi,
theta=theta
)
power_data = FreqDataArray(np.random.random(len(f)), coords=coords_flux)
data = AntennaMetricsData(
monitor=monitor,
projection_surfaces=monitor.projection_surfaces,
flux=flux_data,
Er=scalar_field,
Etheta=scalar_field,
Ephi=scalar_field,
Hr=scalar_field,
Htheta=scalar_field,
Hphi=scalar_field,
power_incident=power_data,
power_reflected=power_data
)
monitor [DirectivityMonitor]

Monitor describing the angle-based projection grid on which to measure directivity data.

Er [FieldProjectionAngleDataArray]

Spatial distribution of r-component of the electric field.

Etheta [FieldProjectionAngleDataArray]

Spatial distribution of the theta-component of the electric field.

Ephi [FieldProjectionAngleDataArray]

Spatial distribution of phi-component of the electric field.

Hr [FieldProjectionAngleDataArray]

Spatial distribution of r-component of the magnetic field.

Htheta [FieldProjectionAngleDataArray]

Spatial distribution of theta-component of the magnetic field.

Hphi [FieldProjectionAngleDataArray]

Spatial distribution of phi-component of the magnetic field.

projection_surfaces [tuple[FieldProjectionSurface, ...]]

Surfaces of the monitor where near fields were recorded for projection

flux [FluxDataArray]

Flux values that are either computed from fields recorded on the projection surfaces or by integrating the projected fields over a spherical surface.

power_incident [FreqDataArray]

Array of values representing the incident power to an antenna.

power_reflected [FreqDataArray]

Array of values representing power reflected due to an impedance mismatch with the antenna.

medium [MediumType] = factory: Medium

Background medium through which to project fields.

is_2d_simulation [bool] = False

Indicates whether the monitor data is for a 2D simulation.

gain [FieldProjectionAngleDataArray]

The gain figure of merit for antennas. Gain is dimensionless.

radiation_efficiency [FreqDataArray]

The radiation efficiency of the antenna.

realized_gain [FieldProjectionAngleDataArray]

The realized gain figure of merit for antennas. Realized gain is dimensionless.

reflection_efficiency [FreqDataArray]

The reflection efficiency of the antenna, which is due to an impedance mismatch.

supplied_power [FreqDataArray]

The power supplied to the antenna, which takes into account reflections.

from_directivity_data(dir_data: DirectivityData, power_inc: FreqDataArray, power_refl: FreqDataArray)

Create AntennaMetricsData from directivity data and power measurements.

partial_gain(pol_basis: PolarizationBasis = 'linear', tilt_angle: float | None = None)

The partial gain figures of merit for antennas. The partial gains are computed in the linear or circular polarization bases. If tilt_angle is not None, the partial directivity is computed in the linear polarization basis rotated by tilt_angle from the theta-axis. Gain is dimensionless.

partial_realized_gain(pol_basis: PolarizationBasis = 'linear', tilt_angle: float | None = None)

The partial realized gain figures of merit for antennas. The partial gains are computed in the linear or circular polarization bases. If tilt_angle is not None, the partial directivity is computed in the linear polarization basis rotated by tilt_angle from the theta-axis. Gain is dimensionless.