tidy3d.ModeTimeMonitor#

class ModeTimeMonitor[source]#

Bases: TimeMonitor, PlanarMonitor

Monitor that records time-domain modal amplitudes at a waveguide cross-section.

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 (Literal[False] = False) – Hard-coded to False: ModeTimeMonitor overlaps Yee-native fields against per-component primal / dual mode profiles, so colocation to the primal grid is not used.

  • use_colocated_integration (Literal[False] = False) – Hard-coded to False: overlap weights are built from per-axis primal × dual cell widths, matching the Yee-staggered field sampling.

  • start (NonNegativeFloat = 0.0) – [units = sec]. Time at which to start monitor recording.

  • stop (Optional[NonNegativeFloat] = None) – [units = sec]. Time at which to stop monitor recording. If not specified, record until end of simulation.

  • interval (Literal[1] = 1) – Sampling rate of the monitor: number of time steps between each measurement. Currently must be 1 (downsampling of time-domain modal amplitudes is not yet supported).

  • mode_spec (ModeSpec = ModeSpec()) – Parameters to feed to mode solver which determine modes measured by monitor.

  • freq_spec (Optional[PositiveFloat] = None) – Single frequency at which the mode profiles are solved for the time-domain modal decomposition. If None, the central frequency of the first source is used (so at least one source is required).

Notes

Records a complex-valued modal amplitude time series at the monitor plane for each mode and propagation direction. The set of monitored modes is the first mode_spec.num_modes modes returned by the mode solver.

When the simulation contains lossy media within the mode plane region, the presence of a ModeTimeMonitor causes the simulation cost to approximately double, because complex-valued field storage is needed to accurately project onto modes with complex effective indices.

Example

>>> mode_spec = ModeSpec(num_modes=3)
>>> monitor = ModeTimeMonitor(
...     center=(1,2,3),
...     size=(2,2,0),
...     start=1e-13,
...     stop=5e-13,
...     mode_spec=mode_spec,
...     name='mode_time')

See also

ModeMonitor

Frequency-domain mode monitor using DFT overlap.

FluxTimeMonitor

Time-domain total flux monitor.

Attributes

mode_spec

freq_spec

interval

colocate

use_colocated_integration

start

stop

interval_space

name

size

center

Methods

storage_size(num_cells, tmesh)

Size of the final modeAmps payload returned to the user.

mode_spec#
freq_spec#
interval#
colocate#
use_colocated_integration#
storage_size(num_cells, tmesh)[source]#

Size of the final modeAmps payload returned to the user.