tidy3d.AstigmaticGaussianBeamProfile#
- class AstigmaticGaussianBeamProfile[source]#
Bases:
BeamProfile
Component for constructing astigmatic Gaussian beam data. The normal direction is implicitly defined by the
size
parameter.- 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 anattr
obj.attrs['foo'] = bar
. Also note that Tidy3D` will raise aTypeError
ifattrs
contain objects that can not be serialized. One can check ifattrs
are serializable by callingobj.json()
.center (Union[tuple[Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box]], Box] = (0.0, 0.0, 0.0)) β [units = um]. Center of object in x, y, and z.
size (Union[tuple[Union[pydantic.v1.types.NonNegativeFloat, autograd.tracer.Box], Union[pydantic.v1.types.NonNegativeFloat, autograd.tracer.Box], Union[pydantic.v1.types.NonNegativeFloat, autograd.tracer.Box]], Box]) β [units = um]. Size in x, y, and z directions.
resolution (float = 200) β [units = um]. Sampling resolution in the tangential directions of the beam (defines a number of equally spaced points).
freqs (Union[Tuple[float, ...], ArrayLike[dtype=float, ndim=1]]) β [units = Hz]. List of frequencies at which the beam is sampled.
background_medium (Union[Medium, AnisotropicMedium, PECMedium, PoleResidue, Sellmeier, Lorentz, Debye, Drude, FullyAnisotropicMedium, CustomMedium, CustomPoleResidue, CustomSellmeier, CustomLorentz, CustomDebye, CustomDrude, CustomAnisotropicMedium, PerturbationMedium, PerturbationPoleResidue, LossyMetalMedium, Medium2D, AnisotropicMediumFromMedium2D] = 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)) β Background medium in which the beam is embedded.
angle_theta (float = 0.0) β [units = rad]. Polar angle of the propagation axis from the normal axis.
angle_phi (float = 0.0) β [units = rad]. Azimuth angle of the propagation axis in the plane orthogonal to the normal axis.
pol_angle (float = 0.0) β [units = rad]. Specifies the angle between the electric field polarization of the beam and the plane defined by the normal axis and the propagation axis (rad).
pol_angle=0
(default) specifies P polarization, whilepol_angle=np.pi/2
specifies S polarization. At normal incidence when S and P are undefined,pol_angle=0
defines: -Ey
polarization for propagation alongx
.-Ex
polarization for propagation alongy
.-Ex
polarization for propagation alongz
.direction (Literal['+', '-'] = +) β Specifies propagation in the positive or negative direction of the normal axis.
waist_sizes (Tuple[PositiveFloat, PositiveFloat] = (1.0, 1.0)) β [units = um]. Size of the beam at the waist in the local x and y directions.
waist_distances (Tuple[float, float] = (0.0, 0.0)) β [units = um]. Distance to the beam waist along the propagation direction for the waist sizes in the local x and y directions. When
direction
is+
andwaist_distances
are positive, the waist is on the-
side (behind) the beam plane. Whendirection
is+
andwaist_distances
are negative, the waist is on the+
side (in front) of the beam plane.
:param See also
AstigmaticGaussianBeam
.:Attributes
Methods
beam_params
(z,Β k0)Compute the parameters needed to evaluate an astigmatic Gaussian beam at z.
scalar_field
(points,Β background_n)Scalar field for astigmatic Gaussian beam.
Inherited Common Usage
- waist_sizes#
- waist_distances#
- beam_params(z, k0)[source]#
Compute the parameters needed to evaluate an astigmatic Gaussian beam at z.
- Parameters:
z (Numpy) β Axial distance from the beam center.
k0 (Numpy) β Wave vector magnitude.
- scalar_field(points, background_n)[source]#
Scalar field for astigmatic Gaussian beam. Scalar field corresponding to the analytic beam in coordinate system such that the propagation direction is z and the
E
-field is entirelyx
-polarized. The field is computed on an unstructured arraypoints
of shape(3, ...)
.
- __hash__()#
Hash method.