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, 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
.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+
andwaist_distances
are positive, the waist is on the-
side (behind) the source plane. Whendirection
is+
andwaist_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.