tidy3d.FieldTimeData#

class tidy3d.FieldTimeData#

Data associated with a FieldTimeMonitor: scalar components of E and H fields.

Parameters
  • Ex (Optional[ScalarFieldTimeDataArray] = None) – Spatial distribution of the x-component of the electric field.

  • Ey (Optional[ScalarFieldTimeDataArray] = None) – Spatial distribution of the y-component of the electric field.

  • Ez (Optional[ScalarFieldTimeDataArray] = None) – Spatial distribution of the z-component of the electric field.

  • Hx (Optional[ScalarFieldTimeDataArray] = None) – Spatial distribution of the x-component of the magnetic field.

  • Hy (Optional[ScalarFieldTimeDataArray] = None) – Spatial distribution of the y-component of the magnetic field.

  • Hz (Optional[ScalarFieldTimeDataArray] = None) – Spatial distribution of the z-component of the magnetic field.

  • monitor (FieldTimeMonitor) – symmetry : Tuple[Literal[0, -1, 1], Literal[0, -1, 1], Literal[0, -1, 1]] = (0, 0, 0) Symmetry eigenvalues of the original simulation in x, y, and z.

  • symmetry_center (Optional[Tuple[float, float, float]] = None) – Center of the symmetry planes of the original simulation in x, y, and z. Required only if any of the symmetry field are non-zero.

  • grid_expanded (Optional[Grid] = None) – Grid on which the symmetry will be expanded. Required only if any of the symmetry field are non-zero.

  • grid_primal_correction (Union[float, FreqDataArray, TimeDataArray, FreqModeDataArray] = 1.0) – Correction factor that needs to be applied for data corresponding to a 2D monitor to take into account the finite grid in the normal direction in the simulation in which the data was computed. The factor is applied to fields defined on the primal grid locations along the normal direction.

  • grid_dual_correction (Union[float, FreqDataArray, TimeDataArray, FreqModeDataArray] = 1.0) – Correction factor that needs to be applied for data corresponding to a 2D monitor to take into account the finite grid in the normal direction in the simulation in which the data was computed. The factor is applied to fields defined on the dual grid locations along the normal direction.

Example

>>> from tidy3d import ScalarFieldTimeDataArray
>>> x = [-1,1]
>>> y = [-2,0,2]
>>> z = [-3,-1,1,3]
>>> t = [0, 1e-12, 2e-12]
>>> coords = dict(x=x, y=y, z=z, t=t)
>>> scalar_field = ScalarFieldTimeDataArray(np.random.random((2,3,4,3)), coords=coords)
>>> monitor = FieldTimeMonitor(size=(2,4,6), interval=100, name='field', fields=['Ex', 'Hz'])
>>> data = FieldTimeData(monitor=monitor, Ex=scalar_field, Hz=scalar_field)

Show JSON schema
{
   "title": "FieldTimeData",
   "description": "Data associated with a :class:`.FieldTimeMonitor`: scalar components of E and H fields.\n\nParameters\n----------\nEx : Optional[ScalarFieldTimeDataArray] = None\n    Spatial distribution of the x-component of the electric field.\nEy : Optional[ScalarFieldTimeDataArray] = None\n    Spatial distribution of the y-component of the electric field.\nEz : Optional[ScalarFieldTimeDataArray] = None\n    Spatial distribution of the z-component of the electric field.\nHx : Optional[ScalarFieldTimeDataArray] = None\n    Spatial distribution of the x-component of the magnetic field.\nHy : Optional[ScalarFieldTimeDataArray] = None\n    Spatial distribution of the y-component of the magnetic field.\nHz : Optional[ScalarFieldTimeDataArray] = None\n    Spatial distribution of the z-component of the magnetic field.\nmonitor : FieldTimeMonitor\n        symmetry : Tuple[Literal[0, -1, 1], Literal[0, -1, 1], Literal[0, -1, 1]] = (0, 0, 0)\n    Symmetry eigenvalues of the original simulation in x, y, and z.\nsymmetry_center : Optional[Tuple[float, float, float]] = None\n    Center of the symmetry planes of the original simulation in x, y, and z. Required only if any of the ``symmetry`` field are non-zero.\ngrid_expanded : Optional[Grid] = None\n    :class:`.Grid` on which the symmetry will be expanded. Required only if any of the ``symmetry`` field are non-zero.\ngrid_primal_correction : Union[float, FreqDataArray, TimeDataArray, FreqModeDataArray] = 1.0\n    Correction factor that needs to be applied for data corresponding to a 2D monitor to take into account the finite grid in the normal direction in the simulation in which the data was computed. The factor is applied to fields defined on the primal grid locations along the normal direction.\ngrid_dual_correction : Union[float, FreqDataArray, TimeDataArray, FreqModeDataArray] = 1.0\n    Correction factor that needs to be applied for data corresponding to a 2D monitor to take into account the finite grid in the normal direction in the simulation in which the data was computed. The factor is applied to fields defined on the dual grid locations along the normal direction.\n\nExample\n-------\n>>> from tidy3d import ScalarFieldTimeDataArray\n>>> x = [-1,1]\n>>> y = [-2,0,2]\n>>> z = [-3,-1,1,3]\n>>> t = [0, 1e-12, 2e-12]\n>>> coords = dict(x=x, y=y, z=z, t=t)\n>>> scalar_field = ScalarFieldTimeDataArray(np.random.random((2,3,4,3)), coords=coords)\n>>> monitor = FieldTimeMonitor(size=(2,4,6), interval=100, name='field', fields=['Ex', 'Hz'])\n>>> data = FieldTimeData(monitor=monitor, Ex=scalar_field, Hz=scalar_field)",
   "type": "object",
   "properties": {
      "type": {
         "title": "Type",
         "default": "FieldTimeData",
         "enum": [
            "FieldTimeData"
         ],
         "type": "string"
      },
      "Ex": {
         "title": "DataArray",
         "description": "Spatial distribution of the x-component of the electric field.",
         "type": "xr.DataArray",
         "properties": {
            "_dims": {
               "title": "_dims",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "_dims"
         ]
      },
      "Ey": {
         "title": "DataArray",
         "description": "Spatial distribution of the y-component of the electric field.",
         "type": "xr.DataArray",
         "properties": {
            "_dims": {
               "title": "_dims",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "_dims"
         ]
      },
      "Ez": {
         "title": "DataArray",
         "description": "Spatial distribution of the z-component of the electric field.",
         "type": "xr.DataArray",
         "properties": {
            "_dims": {
               "title": "_dims",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "_dims"
         ]
      },
      "Hx": {
         "title": "DataArray",
         "description": "Spatial distribution of the x-component of the magnetic field.",
         "type": "xr.DataArray",
         "properties": {
            "_dims": {
               "title": "_dims",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "_dims"
         ]
      },
      "Hy": {
         "title": "DataArray",
         "description": "Spatial distribution of the y-component of the magnetic field.",
         "type": "xr.DataArray",
         "properties": {
            "_dims": {
               "title": "_dims",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "_dims"
         ]
      },
      "Hz": {
         "title": "DataArray",
         "description": "Spatial distribution of the z-component of the magnetic field.",
         "type": "xr.DataArray",
         "properties": {
            "_dims": {
               "title": "_dims",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "_dims"
         ]
      },
      "monitor": {
         "$ref": "#/definitions/FieldTimeMonitor"
      },
      "symmetry": {
         "title": "Symmetry",
         "description": "Symmetry eigenvalues of the original simulation in x, y, and z.",
         "default": [
            0,
            0,
            0
         ],
         "type": "array",
         "minItems": 3,
         "maxItems": 3,
         "items": [
            {
               "enum": [
                  0,
                  -1,
                  1
               ],
               "type": "integer"
            },
            {
               "enum": [
                  0,
                  -1,
                  1
               ],
               "type": "integer"
            },
            {
               "enum": [
                  0,
                  -1,
                  1
               ],
               "type": "integer"
            }
         ]
      },
      "symmetry_center": {
         "title": "Symmetry Center",
         "description": "Center of the symmetry planes of the original simulation in x, y, and z. Required only if any of the ``symmetry`` field are non-zero.",
         "type": "array",
         "minItems": 3,
         "maxItems": 3,
         "items": [
            {
               "type": "number"
            },
            {
               "type": "number"
            },
            {
               "type": "number"
            }
         ]
      },
      "grid_expanded": {
         "title": "Expanded Grid",
         "description": ":class:`.Grid` on which the symmetry will be expanded. Required only if any of the ``symmetry`` field are non-zero.",
         "allOf": [
            {
               "$ref": "#/definitions/Grid"
            }
         ]
      },
      "grid_primal_correction": {
         "title": "Field correction factor",
         "description": "Correction factor that needs to be applied for data corresponding to a 2D monitor to take into account the finite grid in the normal direction in the simulation in which the data was computed. The factor is applied to fields defined on the primal grid locations along the normal direction.",
         "default": 1.0,
         "anyOf": [
            {
               "type": "number"
            },
            {
               "title": "DataArray",
               "type": "xr.DataArray",
               "properties": {
                  "_dims": {
                     "title": "_dims",
                     "type": "Tuple[str, ...]"
                  }
               },
               "required": [
                  "_dims"
               ]
            },
            {
               "title": "DataArray",
               "type": "xr.DataArray",
               "properties": {
                  "_dims": {
                     "title": "_dims",
                     "type": "Tuple[str, ...]"
                  }
               },
               "required": [
                  "_dims"
               ]
            },
            {
               "title": "DataArray",
               "type": "xr.DataArray",
               "properties": {
                  "_dims": {
                     "title": "_dims",
                     "type": "Tuple[str, ...]"
                  }
               },
               "required": [
                  "_dims"
               ]
            }
         ]
      },
      "grid_dual_correction": {
         "title": "Field correction factor",
         "description": "Correction factor that needs to be applied for data corresponding to a 2D monitor to take into account the finite grid in the normal direction in the simulation in which the data was computed. The factor is applied to fields defined on the dual grid locations along the normal direction.",
         "default": 1.0,
         "anyOf": [
            {
               "type": "number"
            },
            {
               "title": "DataArray",
               "type": "xr.DataArray",
               "properties": {
                  "_dims": {
                     "title": "_dims",
                     "type": "Tuple[str, ...]"
                  }
               },
               "required": [
                  "_dims"
               ]
            },
            {
               "title": "DataArray",
               "type": "xr.DataArray",
               "properties": {
                  "_dims": {
                     "title": "_dims",
                     "type": "Tuple[str, ...]"
                  }
               },
               "required": [
                  "_dims"
               ]
            },
            {
               "title": "DataArray",
               "type": "xr.DataArray",
               "properties": {
                  "_dims": {
                     "title": "_dims",
                     "type": "Tuple[str, ...]"
                  }
               },
               "required": [
                  "_dims"
               ]
            }
         ]
      }
   },
   "required": [
      "monitor"
   ],
   "additionalProperties": false,
   "definitions": {
      "FieldTimeMonitor": {
         "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
      },
      "Coords": {
         "title": "Coords",
         "description": "Holds data about a set of x,y,z positions on a grid.\n\nParameters\n----------\nx : Array\n    1-dimensional array of x coordinates.\ny : Array\n    1-dimensional array of y coordinates.\nz : Array\n    1-dimensional array of z coordinates.\n\nExample\n-------\n>>> x = np.linspace(-1, 1, 10)\n>>> y = np.linspace(-1, 1, 11)\n>>> z = np.linspace(-1, 1, 12)\n>>> coords = Coords(x=x, y=y, z=z)",
         "type": "object",
         "properties": {
            "x": {
               "title": "Array Like",
               "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
               "type": "tuple",
               "properties": {},
               "required": []
            },
            "y": {
               "title": "Array Like",
               "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
               "type": "tuple",
               "properties": {},
               "required": []
            },
            "z": {
               "title": "Array Like",
               "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
               "type": "tuple",
               "properties": {},
               "required": []
            },
            "type": {
               "title": "Type",
               "default": "Coords",
               "enum": [
                  "Coords"
               ],
               "type": "string"
            }
         },
         "required": [
            "x",
            "y",
            "z"
         ],
         "additionalProperties": false
      },
      "Grid": {
         "title": "Grid",
         "description": "Contains all information about the spatial positions of the FDTD grid.\n\nParameters\n----------\nboundaries : Coords\n    x,y,z coordinates of the boundaries between cells, defining the FDTD grid.\n\nExample\n-------\n>>> x = np.linspace(-1, 1, 10)\n>>> y = np.linspace(-1, 1, 11)\n>>> z = np.linspace(-1, 1, 12)\n>>> coords = Coords(x=x, y=y, z=z)\n>>> grid = Grid(boundaries=coords)\n>>> centers = grid.centers\n>>> sizes = grid.sizes\n>>> yee_grid = grid.yee",
         "type": "object",
         "properties": {
            "boundaries": {
               "title": "Boundary Coordinates",
               "description": "x,y,z coordinates of the boundaries between cells, defining the FDTD grid.",
               "allOf": [
                  {
                     "$ref": "#/definitions/Coords"
                  }
               ]
            },
            "type": {
               "title": "Type",
               "default": "Grid",
               "enum": [
                  "Grid"
               ],
               "type": "string"
            }
         },
         "required": [
            "boundaries"
         ],
         "additionalProperties": false
      }
   }
}

attribute monitor: tidy3d.components.monitor.FieldTimeMonitor [Required]#
Validated by
  • _contains_fields

dot(field_data: tidy3d.components.data.monitor_data.ElectromagneticFieldData, conjugate: bool = True) xarray.core.dataarray.DataArray#

Inner product is not defined for time-domain data.

property flux: tidy3d.components.data.data_array.FluxTimeDataArray#

Flux for data corresponding to a 2D monitor.

property poynting: tidy3d.components.data.data_array.ScalarFieldTimeDataArray#

Instantaneous Poynting vector for time-domain data associated to a 2D monitor, projected to the direction normal to the monitor plane.

property time_reversed_copy: tidy3d.components.data.monitor_data.FieldTimeData#

Make a copy of the data with time-reversed fields. The sign of the magnetic fields is flipped, and the data is reversed along the t dimension, such that for a given field, field[t_beg + t] -> field[t_end - t], where t_beg and t_end are the first and last coordinates along the t dimension.