tidy3d.FieldTimeData#

class tidy3d.FieldTimeData#

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

Parameters
  • monitor (FieldTimeMonitor) – 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.

Example

>>> 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----------\nmonitor : FieldTimeMonitor\n        Ex : 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.\n\nExample\n-------\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": {
      "monitor": {
         "$ref": "#/definitions/FieldTimeMonitor"
      },
      "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": {
            "__slots__": {
               "title": "__slots__",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "__slots__"
         ]
      },
      "Ey": {
         "title": "DataArray",
         "description": "Spatial distribution of the y-component of the electric field.",
         "type": "xr.DataArray",
         "properties": {
            "__slots__": {
               "title": "__slots__",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "__slots__"
         ]
      },
      "Ez": {
         "title": "DataArray",
         "description": "Spatial distribution of the z-component of the electric field.",
         "type": "xr.DataArray",
         "properties": {
            "__slots__": {
               "title": "__slots__",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "__slots__"
         ]
      },
      "Hx": {
         "title": "DataArray",
         "description": "Spatial distribution of the x-component of the magnetic field.",
         "type": "xr.DataArray",
         "properties": {
            "__slots__": {
               "title": "__slots__",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "__slots__"
         ]
      },
      "Hy": {
         "title": "DataArray",
         "description": "Spatial distribution of the y-component of the magnetic field.",
         "type": "xr.DataArray",
         "properties": {
            "__slots__": {
               "title": "__slots__",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "__slots__"
         ]
      },
      "Hz": {
         "title": "DataArray",
         "description": "Spatial distribution of the z-component of the magnetic field.",
         "type": "xr.DataArray",
         "properties": {
            "__slots__": {
               "title": "__slots__",
               "type": "Tuple[str, ...]"
            }
         },
         "required": [
            "__slots__"
         ]
      }
   },
   "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
      }
   }
}

Fields
  • Ex (tidy3d.components.data.data_array.ScalarFieldTimeDataArray)

  • Ey (tidy3d.components.data.data_array.ScalarFieldTimeDataArray)

  • Ez (tidy3d.components.data.data_array.ScalarFieldTimeDataArray)

  • Hx (tidy3d.components.data.data_array.ScalarFieldTimeDataArray)

  • Hy (tidy3d.components.data.data_array.ScalarFieldTimeDataArray)

  • Hz (tidy3d.components.data.data_array.ScalarFieldTimeDataArray)

  • monitor (tidy3d.components.monitor.FieldTimeMonitor)

attribute Ex: tidy3d.components.data.data_array.ScalarFieldTimeDataArray = None#

Spatial distribution of the x-component of the electric field.

Constraints
  • title = DataArray

  • type = xr.DataArray

  • properties = {‘__slots__’: {‘title’: ‘__slots__’, ‘type’: ‘Tuple[str, …]’}}

  • required = [‘__slots__’]

Validated by
  • _contains_fields

attribute Ey: tidy3d.components.data.data_array.ScalarFieldTimeDataArray = None#

Spatial distribution of the y-component of the electric field.

Constraints
  • title = DataArray

  • type = xr.DataArray

  • properties = {‘__slots__’: {‘title’: ‘__slots__’, ‘type’: ‘Tuple[str, …]’}}

  • required = [‘__slots__’]

Validated by
  • _contains_fields

attribute Ez: tidy3d.components.data.data_array.ScalarFieldTimeDataArray = None#

Spatial distribution of the z-component of the electric field.

Constraints
  • title = DataArray

  • type = xr.DataArray

  • properties = {‘__slots__’: {‘title’: ‘__slots__’, ‘type’: ‘Tuple[str, …]’}}

  • required = [‘__slots__’]

Validated by
  • _contains_fields

attribute Hx: tidy3d.components.data.data_array.ScalarFieldTimeDataArray = None#

Spatial distribution of the x-component of the magnetic field.

Constraints
  • title = DataArray

  • type = xr.DataArray

  • properties = {‘__slots__’: {‘title’: ‘__slots__’, ‘type’: ‘Tuple[str, …]’}}

  • required = [‘__slots__’]

Validated by
  • _contains_fields

attribute Hy: tidy3d.components.data.data_array.ScalarFieldTimeDataArray = None#

Spatial distribution of the y-component of the magnetic field.

Constraints
  • title = DataArray

  • type = xr.DataArray

  • properties = {‘__slots__’: {‘title’: ‘__slots__’, ‘type’: ‘Tuple[str, …]’}}

  • required = [‘__slots__’]

Validated by
  • _contains_fields

attribute Hz: tidy3d.components.data.data_array.ScalarFieldTimeDataArray = None#

Spatial distribution of the z-component of the magnetic field.

Constraints
  • title = DataArray

  • type = xr.DataArray

  • properties = {‘__slots__’: {‘title’: ‘__slots__’, ‘type’: ‘Tuple[str, …]’}}

  • required = [‘__slots__’]

Validated by
  • _contains_fields

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