tidy3d.PlaneWaveBeamProfile#

class PlaneWaveBeamProfile[source]#

Bases: BeamProfile

Component for constructing plane wave 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.

  • angular_spec (Union[FixedInPlaneKSpec, FixedAngleSpec] = FixedAngleSpec()) – Specification of plane wave propagation direction dependence on wavelength.

  • as_fixed_angle_source (bool = False) – Fixed angle flag. Only used internally when computing source beams for injection in an FDTD simulation with fixed angle boudnaries. Use angular_spec to switch between waves with fixed angle and fixed in-plane k.

  • angle_theta_frequency (Optional[float] = None) – Frequency for which angle_theta is set. This only has an effect for fixed in-plane wave-vector beams. If not supplied, the average of the beam freqs is used.

See also

PlaneWave

Attributes

angular_spec

as_fixed_angle_source

angle_theta_frequency

resolution

freqs

background_medium

angle_theta

angle_phi

pol_angle

direction

size

center

Methods

in_plane_k(background_n)

In-plane wave vector.

scalar_field(points, background_n)

Scalar field for plane wave.

angular_spec#
as_fixed_angle_source#
angle_theta_frequency#
in_plane_k(background_n)[source]#

In-plane wave vector. Only the real part is taken so the beam has no in-plane decay.

scalar_field(points, background_n)[source]#

Scalar field for plane wave. 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, N_points, N_freqs). For the special case of fixed in-plane k, the propagation axis is different at every frequency, and the points a frquency-dependent rotation has been applied to the points in self._rotate_points_z.