tidy3d.GaussianBeam#
- class GaussianBeam[source]#
Bases:
AngledFieldSource,PlanarSource,BroadbandSourceGaussian distribution on finite extent plane.
- Parameters:
name (Optional[str] = None) – Optional name for the source.
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.
source_time (Union[
GaussianPulse,ContinuousWave,CustomSourceTime,BroadbandPulse,BasebandStep,BasebandGaussianPulse,BasebandRectangularPulse,BasebandCustomSourceTime]) – Specification of the source time-dependence.num_freqs (int = 1) – Number of points used to approximate the frequency dependence of the injected field. For broadband, angled Gaussian beams it is advisable to check the beam propagation in an empty simulation to ensure there are no injection artifacts when ‘num_freqs’ > 1. Note that larger values of ‘num_freqs’ could spread out the source time signal and introduce numerical noise, or prevent timely field decay.
direction (Literal['+', '-']) – Specifies propagation in the positive or negative direction of the injection axis.
angle_theta (float = 0.0) – [units = rad]. Polar angle of the propagation axis from the injection axis.
angle_phi (float = 0.0) – [units = rad]. Azimuth angle of the propagation axis in the plane orthogonal to the injection axis.
pol_angle (float = 0) – [units = rad]. 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/2specifies S polarization. At normal incidence when S and P are undefined,pol_angle=0defines: -Eypolarization for propagation alongx.-Expolarization for propagation alongy.-Expolarization for propagation alongz.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 source plane (toward the negative normal axis). A negative value places the waist in front of the source plane (toward the positive normal axis). This definition is independent of the
directionparameter, ensuring consistent waist positioning for both forward- and backward-propagating beams. For an angled source, the distance is measured along the rotated propagation direction.
Example
>>> from tidy3d import GaussianPulse >>> pulse = GaussianPulse(freq0=200e12, fwidth=20e12) >>> gauss = GaussianBeam( ... size=(0,3,3), ... source_time=pulse, ... pol_angle=np.pi / 2, ... direction='+', ... waist_radius=1.0)
See also
- Notebooks:
Attributes
angle_thetaangle_phipol_angledirectionsource_timesizecentername- waist_radius#
- waist_distance#
- num_freqs#