tidy3d.FieldTimeMonitor
tidy3d.FieldTimeMonitor#
- class tidy3d.FieldTimeMonitor#
Monitor
that records electromagnetic fields in the time domain.- Parameters
center (Tuple[float, float, float] = (0.0, 0.0, 0.0)) – [units = um]. Center of object in x, y, and z.
size (Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]) – [units = um]. Size in x, y, and z directions.
name (ConstrainedStrValue) – Unique name for monitor.
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 (PositiveInt = 1) – Number of time step intervals between monitor recordings.
fields (Tuple[Literal['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz'], ...] = ['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz']) – Collection of field components to store in the 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, fields will be downsampled and automatically colocated.
colocate (Optional[bool] = None) – Toggle whether fields should be colocated to grid cell centers. Default:
False
ifinterval_space
is 1 in each direction,True
ifinterval_space
is greater than one in any direction.
Example
>>> monitor = FieldTimeMonitor( ... center=(1,2,3), ... size=(2,2,2), ... fields=['Hx'], ... start=1e-13, ... stop=5e-13, ... interval=2, ... name='movie_monitor')
Show JSON schema
{ "title": "FieldTimeMonitor", "description": ":class:`Monitor` that records electromagnetic fields in the time domain.\n\nParameters\n----------\ncenter : Tuple[float, float, float] = (0.0, 0.0, 0.0)\n [units = um]. Center of object in x, y, and z.\nsize : Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]\n [units = um]. Size in x, y, and z directions.\nname : ConstrainedStrValue\n Unique name for monitor.\nstart : NonNegativeFloat = 0.0\n [units = sec]. Time at which to start monitor recording.\nstop : Optional[NonNegativeFloat] = None\n [units = sec]. Time at which to stop monitor recording. If not specified, record until end of simulation.\ninterval : PositiveInt = 1\n Number of time step intervals between monitor recordings.\nfields : Tuple[Literal['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz'], ...] = ['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz']\n Collection of field components to store in the monitor.\ninterval_space : Tuple[PositiveInt, PositiveInt, PositiveInt] = (1, 1, 1)\n Number of grid step intervals between monitor recordings. If equal to 1, there will be no downsampling. If greater than 1, fields will be downsampled and automatically colocated.\ncolocate : Optional[bool] = None\n Toggle whether fields should be colocated to grid cell centers. Default: ``False`` if ``interval_space`` is 1 in each direction, ``True`` if ``interval_space`` is greater than one in any direction.\n\nExample\n-------\n>>> monitor = FieldTimeMonitor(\n... center=(1,2,3),\n... size=(2,2,2),\n... fields=['Hx'],\n... start=1e-13,\n... stop=5e-13,\n... interval=2,\n... name='movie_monitor')", "type": "object", "properties": { "type": { "title": "Type", "default": "FieldTimeMonitor", "enum": [ "FieldTimeMonitor" ], "type": "string" }, "center": { "title": "Center", "description": "Center of object in x, y, and z.", "default": [ 0.0, 0.0, 0.0 ], "units": "um", "type": "array", "minItems": 3, "maxItems": 3, "items": [ { "type": "number" }, { "type": "number" }, { "type": "number" } ] }, "size": { "title": "Size", "description": "Size in x, y, and z directions.", "units": "um", "type": "array", "minItems": 3, "maxItems": 3, "items": [ { "type": "number", "minimum": 0 }, { "type": "number", "minimum": 0 }, { "type": "number", "minimum": 0 } ] }, "name": { "title": "Name", "description": "Unique name for monitor.", "minLength": 1, "type": "string" }, "start": { "title": "Start time", "description": "Time at which to start monitor recording.", "default": 0.0, "units": "sec", "minimum": 0, "type": "number" }, "stop": { "title": "Stop time", "description": "Time at which to stop monitor recording. If not specified, record until end of simulation.", "units": "sec", "minimum": 0, "type": "number" }, "interval": { "title": "Time interval", "description": "Number of time step intervals between monitor recordings.", "default": 1, "exclusiveMinimum": 0, "type": "integer" }, "fields": { "title": "Field Components", "description": "Collection of field components to store in the monitor.", "default": [ "Ex", "Ey", "Ez", "Hx", "Hy", "Hz" ], "type": "array", "items": { "enum": [ "Ex", "Ey", "Ez", "Hx", "Hy", "Hz" ], "type": "string" } }, "interval_space": { "title": "Spatial interval", "description": "Number of grid step intervals between monitor recordings. If equal to 1, there will be no downsampling. If greater than 1, fields will be downsampled and automatically colocated.", "default": [ 1, 1, 1 ], "type": "array", "minItems": 3, "maxItems": 3, "items": [ { "type": "integer", "exclusiveMinimum": 0 }, { "type": "integer", "exclusiveMinimum": 0 }, { "type": "integer", "exclusiveMinimum": 0 } ] }, "colocate": { "title": "Colocate fields", "description": "Toggle whether fields should be colocated to grid cell centers. Default: ``False`` if ``interval_space`` is 1 in each direction, ``True`` if ``interval_space`` is greater than one in any direction.", "type": "boolean" } }, "required": [ "size", "name" ], "additionalProperties": false }
- storage_size(num_cells: int, tmesh: tidy3d.components.types.Array) int #
Size of monitor storage given the number of points after discretization.