tidy3d.plugins.microwave.RectangularAntennaArrayCalculator#

class RectangularAntennaArrayCalculator[source]#

Bases: AbstractAntennaArrayCalculator

This class provides methods to calculate the array factor and far-field radiation patterns for rectangular phased antenna arrays. It handles arrays with arbitrary size, spacing, phase shifts, and amplitude tapering in x, y, and z directions.

Parameters:
  • attrs (dict = {}) – Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, attrs are mutable. For example, the following is allowed for setting an attr obj.attrs['foo'] = bar. Also note that Tidy3D` will raise a TypeError if attrs contain objects that can not be serialized. One can check if attrs are serializable by calling obj.json().

  • array_size (Tuple[PositiveInt, PositiveInt, PositiveInt]) – Number of antennas along x, y, and z directions.

  • spacings (Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]) – Center-to-center spacings between antennas along x, y, and z directions.

  • phase_shifts (Tuple[float, float, float] = (0, 0, 0)) – Phase-shifts between antennas along x, y, and z directions.

  • amp_multipliers (Tuple[ArrayLike, ArrayLike, ArrayLike] = (None, None, None)) – Amplitude multipliers spatially distributed along x, y, and z directions.

  • arrays (The array factor is calculated using the standard array factor formula for rectangular)

:param : :param which accounts for the spatial distribution of antennas and their relative phases and amplitudes.: :param This can be used to analyze beam steering: :param sidelobe levels: :param and other array characteristics.: :param In addition: :param this class provides a convenience method to create an antenna array simulation: :param from a single antenna simulation. This can be used to compute the behavior (near-field and/or: :param far-field) of the full antenna array directly without any approximations. Such a simulation setup: :param can be obtained: :param - by directly calling the make_antenna_array function: :param or: :param - by accessing the field .simulation of the SimulationData object returned by the: simulation_data_from_array_factor method. :param Example: :param ——–: :param >>> array_calculator = RectangularAntennaArrayCalculator(: :param … array_size=(3: :param 4: :param 5): :param : :param … spacings=(0.5: :param 0.5: :param 0.5): :param : :param … phase_shifts=(0: :param 0: :param 0): :param : :param … ):

Attributes

Methods

array_factor(theta, phi, frequency[, medium])

Compute the array factor for a 3D antenna array.

Inherited Common Usage

array_size#
spacings#
phase_shifts#
amp_multipliers#
array_factor(theta, phi, frequency, medium=Medium(attrs={}, name=None, frequency_range=None, allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='Medium', permittivity=1.0, conductivity=0.0))[source]#

Compute the array factor for a 3D antenna array.

Parameters:#

thetaUnion[float, ArrayLike]

Observation angles in the elevation plane (in radians).

phiUnion[float, ArrayLike]

Observation angles in the azimuth plane (in radians).

frequencyUnion[NonNegativeFloat, ArrayLike]

Signal frequency (in Hz).

Returns:#

ArrayLike

Array factor values for each combination of theta and phi.

__hash__()#

Hash method.