tidy3d.ThinLensOverlapMonitor

tidy3d.ThinLensOverlapMonitor#

class ThinLensOverlapMonitor[source]#

Bases: AbstractThinLens, AbstractGaussianOverlapMonitor

Monitor that records amplitudes from decomposition onto a thin-lens beam.

Parameters:
  • center (tuple[Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box], Union[float, autograd.tracer.Box]] = (0.0, 0.0, 0.0)) – [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.

  • name (str) – Unique name for monitor.

  • interval_space (tuple[Literal[1], Literal[1], Literal[1]] = (1, 1, 1)) – Number of grid step intervals between monitor recordings. If equal to 1, there will be no downsampling. If greater than 1, the step will be applied, but the first and last point of the monitor grid are always included. Not all monitors support values different from 1.

  • colocate (bool = True) – Toggle whether fields should be colocated to grid cell boundaries (i.e. primal grid nodes).

  • use_colocated_integration (bool = True) – Only takes effect when colocate=False. If True, dot products and overlap integrals still use fields interpolated to grid cell boundaries (colocated), even though the field data is stored at native Yee grid positions. Experimental feature that can give improved accuracy by avoiding interpolation of fields to Yee cell positions for integration.

  • freqs (ArrayLike[dtype=float, ndim=1]) – [units = Hz]. Array or list of frequencies stored by the field monitor.

  • apodization (ApodizationSpec = ApodizationSpec()) – Sets parameters of (optional) apodization. Apodization applies a windowing function to the Fourier transform of the time-domain fields into frequency-domain ones, and can be used to truncate the beginning and/or end of the time signal, for example to eliminate the source pulse when studying the eigenmodes of a system. Note: apodization affects the normalization of the frequency-domain fields.

  • store_fields_direction (Optional[Literal['+', '-']] = None) – Propagation direction for the field profiles stored from overlap calculation.

  • conjugated_dot_product (bool = True) – Use conjugated or non-conjugated dot product for overlap/decomposition.

  • angle_theta (float = 0.0) – [units = rad]. Polar angle of propagation direction.

  • angle_phi (float = 0.0) – [units = rad]. Azimuth angle of propagation direction.

  • 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/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.

  • numerical_aperture (PositiveFloat) – Numerical aperture of the focused beam in the background medium. This must be less than the real refractive index on the component plane.

  • waist_distance (float = 0.0) – [units = um]. Signed axial distance from the thin-lens focal plane to the component plane, measured along the rotated beam propagation direction. A positive value places the focal plane behind the component plane.

  • fill_lens (bool = True) – If True, use a uniform circular pupil over the numerical aperture. If False, use a Gaussian under-filled pupil defined by lens_diameter and beam_diameter. If not provided, the lens is filled.

  • lens_diameter (Optional[PositiveFloat] = None) – [units = um]. Physical lens diameter used for Gaussian under-filled pupils. Required when fill_lens=False and ignored when fill_lens=True.

  • beam_diameter (Optional[PositiveFloat] = None) – [units = um]. Incident Gaussian beam diameter used for Gaussian under-filled pupils. Required when fill_lens=False and ignored when fill_lens=True.

  • num_plane_waves (Union[PositiveInt, tuple[PositiveInt, PositiveInt]] = 51) – Number of angular-spectrum samples in the two tangential directions. If an integer is supplied, the same value is used in both directions. If not provided, 51 samples are used in each direction. Each direction is limited to 1000 samples.

  • lens_offset (tuple[float, float] = (0.0, 0.0)) – [units = um]. Tangential offset of the focused field relative to the beam axis, implemented as a pupil phase ramp. The two entries follow the component’s tangential-axis order after removing the normal axis from (x, y, z). For example, a y-normal component uses (x, z). This shifts the ideal focal field but does not model a decentered finite aperture with clipping or changed pupil amplitude. If not provided, the focal field is centered on the optical axis.

Attributes

numerical_aperture

waist_distance

fill_lens

lens_diameter

beam_diameter

num_plane_waves

lens_offset

angle_theta

angle_phi

pol_angle

store_fields_direction

colocate

use_colocated_integration

conjugated_dot_product

freqs

apodization

interval_space

name

size

center