tidy3d.SurfaceFieldMonitor

tidy3d.SurfaceFieldMonitor#

class SurfaceFieldMonitor[source]#

Bases: AbstractSurfaceMonitor, FreqMonitor

Monitor that records electromagnetic fields in the frequency domain on PEC and lossy metal surfaces.

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.

  • 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. Only the value of 1 (no downsampling) is currently supported for surface monitors.

  • colocate (Literal[True] = True) – For surface monitors fields are always colocated on surface.

  • use_colocated_integration (Literal[True] = True) – Whether to use colocated fields for flux, dot products, and overlap integrals. Hard-coded to True for most monitor types. Can be toggled on field and overlap monitors.

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

  • fields (tuple[Literal['E', 'H'], ...] = ['E', 'H']) – Collection of field components to store in the monitor.

Notes

SurfaceFieldMonitor objects operate by running a discrete Fourier transform of the fields at a given set of frequencies to perform the calculation “in-place” with the time stepping. These monitors are designed to record fields on PEC (PECMedium) and lossy metal (LossyMetalMedium) surfaces, storing the normal E and tangential H fields.

Example

>>> import tidy3d as td
>>> old_logging_level = td.config.logging_level
>>> td.config.logging_level = "ERROR"
>>> monitor = SurfaceFieldMonitor(
...     center=(1,2,3),
...     size=(2,2,2),
...     fields=['E', 'H'],
...     freqs=[250e12, 300e12],
...     name='surface_monitor')
>>> td.config.logging_level = old_logging_level

Attributes

fields

interval_space

colocate

freqs

apodization

use_colocated_integration

name

size

center

Methods

storage_size(num_cells, tmesh)

Size of monitor storage given the number of points after discretization.

storage_size(num_cells, tmesh)[source]#

Size of monitor storage given the number of points after discretization. In general, this is severely overestimated for surface monitors.