Skip to content

Radiation And Scattering

When modeling antennas or scattering problems, use far-field radiation metrics to evaluate directivity, gain, efficiency, and radiation pattern lobes.

Use DirectivityMonitor to record far-field radiation patterns.

import numpy as np
from flex_rf.tidy3d import DirectivityMonitor
my_theta = np.linspace(0, np.pi, 91)
my_phi = np.linspace(0, 2 * np.pi, 181)
my_directivity_monitor = DirectivityMonitor(
center=(0, 0, 0),
size=(100, 100, 100),
freqs=my_frequencies,
phi=my_phi,
theta=my_theta,
name="My radiation monitor",
)

The directivity monitor should completely surround the structure of interest.

Use DirectivityMonitorSpec to let TerminalComponentModeler generate radiation monitors automatically.

from flex_rf.tidy3d import DirectivityMonitorSpec, TerminalComponentModeler
my_directivity_monitor_spec = DirectivityMonitorSpec()
my_tcm = TerminalComponentModeler(
# Other component modeler fields.
radiation_monitors=[my_directivity_monitor, my_directivity_monitor_spec],
)

After the simulation completes, call get_antenna_metrics_data() on the returned TerminalComponentModelerData object.

my_antenna_metrics = my_tcm_data.get_antenna_metrics_data()
my_directivity = my_antenna_metrics.directivity
my_gain = my_antenna_metrics.gain
my_radiation_efficiency = my_antenna_metrics.radiation_efficiency
my_reflection_efficiency = my_antenna_metrics.reflection_efficiency
my_realized_gain = my_antenna_metrics.realized_gain
my_supplied_power = my_antenna_metrics.supplied_power
my_radiated_power = my_antenna_metrics.radiated_power
my_radiation_intensity = my_antenna_metrics.radiation_intensity
my_axial_ratio = my_antenna_metrics.axial_ratio
my_left_pol = my_antenna_metrics.left_polarization
my_right_pol = my_antenna_metrics.right_polarization

Each metric is an xarray-backed data array that can be plotted, exported, or used in further analysis.

LobeMeasurer analyzes radiation pattern lobes.

from flex_rf.tidy3d import LobeMeasurer
my_lobes = LobeMeasurer(
angle=phi,
radiation_pattern=my_gain,
)
my_lobe_measures = my_lobes.lobe_measures
my_main_lobe = my_lobes.main_lobe
my_side_lobes = my_lobes.side_lobe

Lobe characteristics include direction, magnitude, and 3 dB beamwidth. The plot() helper adds main-lobe direction and width markers to polar radiation plots.

SymbolPurpose
DirectivityMonitorRecords far-field directivity data.
DirectivityMonitorSpecSpecifies generated directivity monitors for component modelers.
DirectivityDataStores directivity monitor output.
AntennaMetricsDataStores gain, efficiency, power, and polarization metrics.
RectangularAntennaArrayCalculatorCalculates rectangular phased-array factors and far-field patterns.
LobeMeasurerMeasures main and side lobes in radiation patterns.
PageWhy open it
Terminal Component ModelerAdd radiation monitors to multiport component simulations.
RF Output DataUnderstand the data containers returned by monitors and antenna metrics.