Skip to content

flex_rf.tidy3d.FieldTimeMonitor

Type: class Base(s): AbstractFieldMonitor, TimeMonitor

Monitor that records electromagnetic fields in the time domain.

FieldTimeMonitor objects are best used to monitor the time dependence of the fields at a single point, but they can also be used to create “animations” of the field pattern evolution.

To create an animation, we need to capture the frames at different time instances of the simulation. This can be done by using a FieldTimeMonitor. Usually a FDTD simulation contains a large number of time steps and grid points. Recording the field at every time step and grid point will result in a large dataset. For the purpose of making animations, this is usually unnecessary.

monitor = FieldTimeMonitor(
center=(1,2,3),
size=(2,2,2),
fields=['Hx'],
start=1e-13,
stop=5e-13,
interval=2,
colocate=True,
name='movie_monitor')
size [TracedSize]

Size in x, y, and z directions.

name [str]

Unique name for monitor.

center [TracedCoordinate] = (0.0, 0.0, 0.0)

Center of object in x, y, and z.

interval_space [tuple[PositiveInt, PositiveInt, PositiveInt]] = (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.

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, flux, 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.

start [NonNegativeFloat] = 0.0

Time at which to start monitor recording.

stop [NonNegativeFloat | None] = None

Time at which to stop monitor recording. If not specified, record until end of simulation.

interval [PositiveInt | None] = None

Sampling rate of the monitor: number of time steps between each measurement. Set interval to 1 for the highest possible resolution in time. Higher integer values downsample the data by measuring every interval time steps. This can be useful for reducing data storage as needed by the application.

fields [tuple[EMField, ...]] = ['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz']

Collection of field components to store in the monitor.

storage_size(num_cells: int, tmesh: ArrayFloat1D)

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