tidy3d.GaussianBeamProfile#

class GaussianBeamProfile[source]#

Bases: BeamProfile

Component for constructing 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_radius (PositiveFloat = 1.0) – [units = um]. Radius of the beam at the waist.

  • waist_distance (float = 0.0) – [units = um]. Distance from the beam waist along the propagation direction. A positive value places the waist behind the beam plane (toward the negative normal axis). A negative value places the waist in front of the beam plane (toward the positive normal axis). This definition is independent of the direction parameter, ensuring consistent waist positioning for both forward- and backward-propagating beams. For an angled beam, the distance is measured along the rotated propagation direction.

See also

GaussianBeam

Attributes

waist_radius

waist_distance

resolution

freqs

background_medium

angle_theta

angle_phi

pol_angle

direction

size

center

Methods

beam_params(z, k0)

Compute the parameters needed to evaluate a Gaussian beam at z.

scalar_field(points, background_n)

Scalar field for Gaussian beam.

waist_radius#
waist_distance#
beam_params(z, k0)[source]#

Compute the parameters needed to evaluate a 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 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, ...).