tidy3d.FieldTimeMonitor#
- class FieldTimeMonitor[source]#
Bases:
AbstractFieldMonitor
,TimeMonitor
Monitor
that records electromagnetic fields in the time domain.- 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,
attrs
are mutable. For example, the following is allowed for setting anattr
obj.attrs['foo'] = bar
. Also note that Tidy3D` will raise aTypeError
ifattrs
contain objects that can not be serialized. One can check ifattrs
are serializable by callingobj.json()
.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.
name (ConstrainedStrValue) – Unique name for monitor.
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).
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 (Optional[PositiveInt] = 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 everyinterval
time steps. This can be useful for reducing data storage as needed by the application.fields (Tuple[Literal['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz'], ...] = ['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz']) – Collection of field components to store in the monitor.
Notes
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.Example
>>> 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')
See also
- Notebooks
First walkthrough: Usage in a basic simulation flow.
Attributes
Methods
storage_size
(num_cells, tmesh)Size of monitor storage given the number of points after discretization.
Inherited Common Usage
- storage_size(num_cells, tmesh)[source]#
Size of monitor storage given the number of points after discretization.
- __hash__()#
Hash method.