tidy3d.plugins.microwave.RectangularAntennaArrayCalculator#
- class RectangularAntennaArrayCalculator[source]#
Bases:
AbstractAntennaArrayCalculatorThis 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,
attrsare mutable. For example, the following is allowed for setting anattrobj.attrs['foo'] = bar. Also note that Tidy3D will raise aTypeErrorifattrscontain objects that can not be serialized. One can check ifattrsare serializable by callingobj.json().taper (Optional[ForwardRef('Union[RectangularTaper, RadialTaper]')] = None) – Amplitude weighting of array elements to control main lobe width and suppress side lobes.
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.
Notes
The array factor is calculated using the standard array factor formula for rectangular arrays, which accounts for the spatial distribution of antennas and their relative phases and amplitudes. This can be used to analyze beam steering, sidelobe levels, and other array characteristics.
In addition, this class provides a convenience method to create an antenna array simulation from a single antenna simulation. This can be used to compute the behavior (near-field and/or far-field) of the full antenna array directly without any approximations. Such a simulation setup can be obtained by directly calling the make_antenna_array function, or by accessing the field .simulation of the
SimulationDataobject returned by the simulation_data_from_array_factor method.Example:#
>>> array_calculator = RectangularAntennaArrayCalculator( ... array_size=(3, 4, 5), ... spacings=(0.5, 0.5, 0.5), ... phase_shifts=(0, 0, 0), ... )
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=<object object>)[source]#
Compute the array factor for a 3D antenna array.
- Parameters:
theta (Union[float, ArrayLike]) – Observation angles in the elevation plane (in radians).
phi (Union[float, ArrayLike]) – Observation angles in the azimuth plane (in radians).
frequency (Union[NonNegativeFloat, ArrayLike]) – Signal frequency (in Hz).
- Returns:
Array factor values for each combination of azimuth and zenith angles.
- Return type:
ArrayLike
- __hash__()#
Hash method.