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:
  • center (Optional[tuple[Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box]]] = None) – [units = um]. Center of object in x, y, and z.

  • size (tuple[Union[NonNegativeFloat, autograd.tracer.Box], Union[NonNegativeFloat, autograd.tracer.Box], Union[NonNegativeFloat, autograd.tracer.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 (ArrayLike[dtype=float, ndim=1]) – [units = Hz]. List of frequencies at which the beam is sampled.

  • background_medium (Union[Medium, AnisotropicMedium, PECMedium, PMCMedium, PoleResidue, Sellmeier, Lorentz, Debye, Drude, FullyAnisotropicMedium, CustomMedium, CustomPoleResidue, CustomSellmeier, CustomLorentz, CustomDebye, CustomDrude, CustomAnisotropicMedium, PerturbationMedium, PerturbationPoleResidue, LossyMetalMedium, Medium2D, AnisotropicMediumFromMedium2D] = Medium()) – 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, while pol_angle=np.pi/2 specifies S polarization. At normal incidence when S and P are undefined, pol_angle=0 defines: - Ey polarization for propagation along x.- Ex polarization for propagation along y.- Ex polarization for propagation along z.

  • 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. Positive values place the waist behind the beam plane (toward the negative normal axis); negative values place the waist in front of the beam plane. This definition is independent of the direction parameter.

Attributes

waist_sizes

waist_distances

resolution

freqs

background_medium

angle_theta

angle_phi

pol_angle

direction

size

center

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.

waist_sizes#
waist_distances#
beam_params(z, k0)[source]#

Compute the parameters needed to evaluate an astigmatic Gaussian beam at z.

Parameters:
  • z (np.ndarray) – Axial distance from the beam center.

  • k0 (np.ndarray) – 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 entirely x-polarized. The field is computed on an unstructured array points of shape (3, ...).