tidy3d.PlaneWave#
- class PlaneWave[source]#
- Bases: - AngledFieldSource,- PlanarSource,- BroadbandSource- Uniform current distribution on an infinite extent plane. One element of size must be zero. - 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().
- name (Optional[str] = None) β Optional name for the source. 
- 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. 
- source_time (Union[GaussianPulse, ContinuousWave, CustomSourceTime]) β Specification of the source time-dependence. 
- num_freqs (ConstrainedIntValue = 3) β Number of points used to approximate the frequency dependence of the injected field. Default is 3, which should cover even very broadband sources. For simulations which are not very broadband and the source is very large (e.g. metalens simulations), decreasing the value to 1 may lead to a speed up in the preprocessing. 
- 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, 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.
- angular_spec (Union[FixedInPlaneKSpec, FixedAngleSpec] = FixedInPlaneKSpec(attrs={}, type='FixedInPlaneKSpec')) β Specification of plane wave propagation direction dependence on wavelength. 
 
 - Example - >>> from tidy3d import GaussianPulse >>> pulse = GaussianPulse(freq0=200e12, fwidth=20e12) >>> pw_source = PlaneWave(size=(inf,0,inf), source_time=pulse, pol_angle=0.1, direction='+') - See also - Attributes - A Chebyshev grid used to approximate frequency dependence. - Methods - Inherited Common Usage - angular_spec#
 - num_freqs#
 - property frequency_grid#
- A Chebyshev grid used to approximate frequency dependence. 
 - __hash__()#
- Hash method.