tidy3d.GaussianBeamProfile#

class GaussianBeamProfile[source]#

Bases: BeamProfile

Component for constructing 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 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().

  • 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, 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 means the waist is positioned behind the beam, considering the propagation direction. For example, for a beam propagating in the + direction, a positive value of beam_distance means the beam waist is positioned in the - direction (behind the beam). A negative value means the beam waist is in the + direction (in front of the beam). For an angled beam, the distance is defined along the rotated propagation direction.

:param See also GaussianBeam.:

Attributes

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.

Inherited Common Usage

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

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

__hash__()#

Hash method.