tidy3d.PermittivityData#

class tidy3d.PermittivityData#

Sores a collection of permittivity components over spatial coordinates and frequency from a PermittivityMonitor.

Parameters
  • data_dict (Mapping[str, ScalarPermittivityData]) – Mapping of the permittivity tensor names to their corresponding ScalarPermittivityData.

  • symmetry (Tuple[Literal[0, -1, 1], Literal[0, -1, 1], Literal[0, -1, 1]] = (0, 0, 0)) – Eigenvalues of the symmetry under reflection in x, y, and z.

  • symmetry_center (Optional[Tuple[float, float, float]] = None) – Position of the symmetry planes in x, y, and z.

  • expanded_grid (Mapping[str, Coords] = {}) – Grid after the symmetries (if any) are expanded. The dictionary keys must correspond to the data keys in the data_dict for the expanded grid to be invoked.

Example

>>> f = np.linspace(1e14, 2e14, 1001)
>>> x = np.linspace(-1, 1, 10)
>>> y = np.linspace(-2, 2, 20)
>>> z = np.linspace(0, 0, 1)
>>> values = (1+1j) * np.random.random((len(x), len(y), len(z), len(f)))
>>> eps = ScalarPermittivityData(values=values, x=x, y=y, z=z, f=f)
>>> data = PermittivityData(data_dict={'eps_xx': eps, 'eps_yy': eps, 'eps_zz': eps})

Show JSON schema
{
   "title": "PermittivityData",
   "description": "Sores a collection of permittivity components over spatial coordinates and frequency\nfrom a :class:`.PermittivityMonitor`.\n\nParameters\n----------\ndata_dict : Mapping[str, ScalarPermittivityData]\n    Mapping of the permittivity tensor names to their corresponding :class:`.ScalarPermittivityData`.\nsymmetry : Tuple[Literal[0, -1, 1], Literal[0, -1, 1], Literal[0, -1, 1]] = (0, 0, 0)\n    Eigenvalues of the symmetry under reflection in x, y, and z.\nsymmetry_center : Optional[Tuple[float, float, float]] = None\n    Position of the symmetry planes in x, y, and z.\nexpanded_grid : Mapping[str, Coords] = {}\n    Grid after the symmetries (if any) are expanded. The dictionary keys must correspond to the data keys in the ``data_dict`` for the expanded grid to be invoked.\n\nExample\n-------\n>>> f = np.linspace(1e14, 2e14, 1001)\n>>> x = np.linspace(-1, 1, 10)\n>>> y = np.linspace(-2, 2, 20)\n>>> z = np.linspace(0, 0, 1)\n>>> values = (1+1j) * np.random.random((len(x), len(y), len(z), len(f)))\n>>> eps = ScalarPermittivityData(values=values, x=x, y=y, z=z, f=f)\n>>> data = PermittivityData(data_dict={'eps_xx': eps, 'eps_yy': eps, 'eps_zz': eps})",
   "type": "object",
   "properties": {
      "type": {
         "title": "Type",
         "default": "PermittivityData",
         "enum": [
            "PermittivityData"
         ],
         "type": "string"
      },
      "data_dict": {
         "title": "Data Dictionary",
         "description": "Mapping of the permittivity tensor names to their corresponding :class:`.ScalarPermittivityData`.",
         "type": "object",
         "additionalProperties": {
            "$ref": "#/definitions/ScalarPermittivityData"
         }
      },
      "symmetry": {
         "title": "Symmetry Eigenvalues",
         "description": "Eigenvalues of the symmetry under reflection 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": "Position of the symmetry planes in x, y, and z.",
         "type": "array",
         "minItems": 3,
         "maxItems": 3,
         "items": [
            {
               "type": "number"
            },
            {
               "type": "number"
            },
            {
               "type": "number"
            }
         ]
      },
      "expanded_grid": {
         "title": "Expanded Grid",
         "description": "Grid after the symmetries (if any) are expanded. The dictionary keys must correspond to the data keys in the ``data_dict`` for the expanded grid to be invoked.",
         "default": {},
         "type": "object",
         "additionalProperties": {
            "$ref": "#/definitions/Coords"
         }
      }
   },
   "required": [
      "data_dict"
   ],
   "definitions": {
      "ScalarPermittivityData": {
         "title": "ScalarPermittivityData",
         "description": "Stores a single scalar permittivity distribution in frequency-domain.\n\nParameters\n----------\nvalues : Array\n    Multi-dimensional array storing the raw permittivity values in freq. domain.\ndata_attrs : Optional[Mapping[str, str]] = None\n    Dictionary storing extra attributes associated with the monitor data.\nf : Array\n    [units = Hz].  Array of frequency values to use as coordintes.\nx : Array\n    [units = um].  Array of x location values to use as coordintes.\ny : Array\n    [units = um].  Array of y location values to use as coordintes.\nz : Array\n    [units = um].  Array of z location values to use as coordintes.\n\nExample\n-------\n>>> f = np.linspace(1e14, 2e14, 1001)\n>>> x = np.linspace(-1, 1, 10)\n>>> y = np.linspace(-2, 2, 20)\n>>> z = np.linspace(0, 0, 1)\n>>> values = (1+1j) * np.random.random((len(x), len(y), len(z), len(f)))\n>>> data = ScalarPermittivityData(values=values, x=x, y=y, z=z, f=f)",
         "type": "object",
         "properties": {
            "type": {
               "title": "Type",
               "default": "ScalarPermittivityData",
               "enum": [
                  "ScalarPermittivityData"
               ],
               "type": "string"
            },
            "values": {
               "title": "NumpyArray",
               "description": "Wrapper around numpy arrays that has a well defined json schema.",
               "type": "object",
               "properties": {
                  "data_list": {
                     "title": "Data List",
                     "type": "array",
                     "items": {}
                  }
               },
               "required": [
                  "data_list"
               ]
            },
            "data_attrs": {
               "title": "Data Attributes",
               "description": "Dictionary storing extra attributes associated with the monitor data.",
               "type": "object",
               "additionalProperties": {
                  "type": "string"
               }
            },
            "f": {
               "title": "NumpyArray",
               "description": "Wrapper around numpy arrays that has a well defined json schema.",
               "units": "Hz",
               "type": "object",
               "properties": {
                  "data_list": {
                     "title": "Data List",
                     "type": "array",
                     "items": {}
                  }
               },
               "required": [
                  "data_list"
               ]
            },
            "x": {
               "title": "NumpyArray",
               "description": "Wrapper around numpy arrays that has a well defined json schema.",
               "units": "um",
               "type": "object",
               "properties": {
                  "data_list": {
                     "title": "Data List",
                     "type": "array",
                     "items": {}
                  }
               },
               "required": [
                  "data_list"
               ]
            },
            "y": {
               "title": "NumpyArray",
               "description": "Wrapper around numpy arrays that has a well defined json schema.",
               "units": "um",
               "type": "object",
               "properties": {
                  "data_list": {
                     "title": "Data List",
                     "type": "array",
                     "items": {}
                  }
               },
               "required": [
                  "data_list"
               ]
            },
            "z": {
               "title": "NumpyArray",
               "description": "Wrapper around numpy arrays that has a well defined json schema.",
               "units": "um",
               "type": "object",
               "properties": {
                  "data_list": {
                     "title": "Data List",
                     "type": "array",
                     "items": {}
                  }
               },
               "required": [
                  "data_list"
               ]
            }
         },
         "required": [
            "values",
            "f",
            "x",
            "y",
            "z"
         ]
      },
      "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
      }
   }
}

Fields
  • data_dict (Dict[str, tidy3d.components.data.ScalarPermittivityData])

attribute data_dict: Dict[str, tidy3d.components.data.ScalarPermittivityData] [Required]#

Get the permittivity components from the dict using convenient “dot” syntax.

Mapping of the permittivity tensor names to their corresponding ScalarPermittivityData.

set_symmetry_attrs(simulation: tidy3d.components.simulation.Simulation, monitor_name: str)#

Set the collection data attributes related to symmetries.

property eps_xx#

Get eps_xx component.

property eps_yy#

Get eps_yy component.

property eps_zz#

Get eps_zz component.