tidy3d.PlaneWaveBeamProfile#
- class PlaneWaveBeamProfile[source]#
- Bases: - BeamProfile- Component for constructing plane wave beam data. The normal direction is implicitly defined by the - sizeparameter.- 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, - attrsare mutable. For example, the following is allowed for setting an- attr- obj.attrs['foo'] = bar. Also note that Tidy3D` will raise a- TypeErrorif- attrscontain objects that can not be serialized. One can check if- attrsare 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/2specifies S polarization. At normal incidence when S and P are undefined,- pol_angle=0defines: -- Eypolarization for propagation along- x.-- Expolarization for propagation along- y.-- Expolarization for propagation along- z.
- direction (Literal['+', '-'] = +) β Specifies propagation in the positive or negative direction of the normal axis. 
- angular_spec (Union[FixedInPlaneKSpec, FixedAngleSpec] = FixedAngleSpec(attrs={}, type='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_specto switch between waves with fixed angle and fixed in-plane k.
- angle_theta_frequency (Optional[float] = None) β Frequency for which - angle_thetais set. This only has an effect for fixed in-plane wave-vector beams. If not supplied, the average of the beam- freqsis used.
 
 - :param See also - PlaneWave.:- Attributes - Methods - in_plane_k(background_n)- In-plane wave vector. - scalar_field(points,Β background_n)- Scalar field for plane wave. - Inherited Common Usage - 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- pointsof shape- (3, ...). For the special case of fixed in-plane k, the propagation axis is not actually z. In fact the propagation axis is frequency dependent and the only thing that is constant is the in-plane k, which is why we do not rotate the points in- self._rotate_points_z.
 - __hash__()#
- Hash method.