Skip to content

flex_rf.tidy3d.DirectivityData

Type: class Base(s): FieldProjectionAngleData

Data associated with a DirectivityMonitor.

from tidy3d import FluxDataArray, FieldProjectionAngleDataArray
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)
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(values, coords=coords)
monitor = DirectivityMonitor(center=(1,2,3), size=(2,2,2), freqs=f, name='n2f_monitor', phi=phi, theta=theta)
data = DirectivityData(monitor=monitor, flux=flux_data, Er=scalar_field, Etheta=scalar_field, Ephi=scalar_field,
Hr=scalar_field, Htheta=scalar_field, Hphi=scalar_field, projection_surfaces=monitor.projection_surfaces)
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

monitor [DirectivityMonitor]

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

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.

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.

axial_ratio [FieldProjectionAngleDataArray]

Axial Ratio (AR) in the frequency domain as a function of angles theta and phi. AR is a dimensionless quantity defined as the ratio of the major axis to the minor axis of the polarization ellipse.

directivity [FieldProjectionAngleDataArray]

Directivity in the frequency domain as a function of angles theta and phi. Directivity is a dimensionless quantity defined as the ratio of the radiation intensity in a given direction to the average radiation intensity over all directions.

fields_circular_polarization [xr.Dataset]

Electric and magnetic fields in the circular polarization basis.

left_polarization [FieldProjectionAngleDataArray]

Electric far field for left-hand circular polarization (counterclockwise component) with an angle-based projection grid.

radiated_power [FreqDataArray]

Total radiated power in the frequency domain with units of Watts.

radiation_intensity [FieldProjectionAngleDataArray]

Radiation intensity in the frequency domain as a function of angles theta and phi. Radiation intensity is measured in units of Watts per unit solid angle.

right_polarization [FieldProjectionAngleDataArray]

Electric far field for right-hand circular polarization (clockwise component) with an angle-based projection grid.

calc_gain(power_in: FreqDataArray)

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

calc_partial_gain(power_in: FreqDataArray, 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.

calc_radiation_efficiency(power_in: FreqDataArray)

Calculate radiation efficiency as the ratio of radiated power to input power.

fields_linear_polarization_tilted(tilt_angle: float)

Electric and magnetic fields in the linear polarization basis that is rotated at the pole of the radiation sphere by tilt_angle.

from_spherical_field_dataset(monitor: DirectivityMonitor, field_dataset: xr.Dataset)

Creates a DirectivityData instance from a spherical field dataset.

normalize(source_spectrum_fn: Callable[[float], complex])

Return a copy of self after normalization is applied using the source spectrum function, for both field components and flux data.

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

Directivity in the frequency domain as a function of angles theta and phi. The partial directivities are computed in the linear or circular polarization bases. If tilt_angle is not None, the radiation intensity is computed in the linear polarization basis rotated by tilt_angle from the theta-axis. Directivity is a dimensionless quantity defined as the ratio of the radiation intensity in a given direction to the average radiation intensity over all directions.

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

Partial radiation intensity in the frequency domain as a function of angles theta and phi. The partial radiation intensities are computed in the linear or circular polarization bases. If tilt_angle is not None, the radiation intensity is computed in the linear polarization basis rotated by tilt_angle from the theta-axis. Radiation intensity is measured in units of Watts per unit solid angle.