tidy3d.AstigmaticGaussianBeam#

class AstigmaticGaussianBeam[source]#

Bases: AngledFieldSource, PlanarSource, BroadbandSource

The simple astigmatic Gaussian distribution allows both an elliptical intensity profile and different waist locations for the two principal axes of the ellipse. When equal waist sizes and equal waist distances are specified in the two directions, this source becomes equivalent to GaussianBeam.

Parameters:
  • name (Attribute: name) –

    Type

    Optional[str]

    Default

    = None

    Description

    Optional name for the source.

  • center (Attribute: center) –

    Type

    Tuple[float, float, float]

    Default

    = (0.0, 0.0, 0.0)

    Units

    um

    Description

    Center of object in x, y, and z.

  • size (Attribute: size) –

    Type

    Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]

    Default

    Units

    um

    Description

    Size in x, y, and z directions.

  • source_time (Attribute: source_time) –

    Type

    Union[GaussianPulse, ContinuousWave, CustomSourceTime]

    Default

    Description

    Specification of the source time-dependence.

  • num_freqs (Attribute: num_freqs) –

    Type

    ConstrainedIntValue

    Default

    = 1

    Description

    Number of points used to approximate the frequency dependence of injected field. A Chebyshev interpolation is used, thus, only a small number of points, i.e., less than 20, is typically sufficient to obtain converged results.

  • direction (Attribute: direction) –

    Type

    Literal[‘+’, ‘-‘]

    Default

    Description

    Specifies propagation in the positive or negative direction of the injection axis.

  • angle_theta (Attribute: angle_theta) –

    Type

    float

    Default

    = 0.0

    Units

    rad

    Description

    Polar angle of the propagation axis from the injection axis.

  • angle_phi (Attribute: angle_phi) –

    Type

    float

    Default

    = 0.0

    Units

    rad

    Description

    Azimuth angle of the propagation axis in the plane orthogonal to the injection axis.

  • pol_angle (Attribute: pol_angle) –

    Type

    float

    Default

    = 0

    Units

    rad

    Description

    Specifies the angle between the electric field polarization of the source and the plane defined by the injection 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.

  • waist_sizes (Attribute: waist_sizes) –

    Type

    Tuple[PositiveFloat, PositiveFloat]

    Default

    = (1.0, 1.0)

    Units

    um

    Description

    Size of the beam at the waist in the local x and y directions.

  • waist_distances (Attribute: waist_distances) –

    Type

    Tuple[float, float]

    Default

    = (0.0, 0.0)

    Units

    um

    Description

    Distance to the beam waist along the propagation direction for the waist sizes in the local x and y directions. When direction is + and waist_distances are positive, the waist is on the - side (behind) the source plane. When direction is + and waist_distances are negative, the waist is on the + side (in front) of the source plane.

Notes

This class implements the simple astigmatic Gaussian beam described in [1].

References:

Example

>>> pulse = GaussianPulse(freq0=200e12, fwidth=20e12)
>>> gauss = AstigmaticGaussianBeam(
...     size=(0,3,3),
...     source_time=pulse,
...     pol_angle=np.pi / 2,
...     direction='+',
...     waist_sizes=(1.0, 2.0),
...     waist_distances = (3.0, 4.0))

Attributes

Methods

waist_sizes#
waist_distances#
__hash__()#

Hash method.