tidy3d.PermittivityData
tidy3d.PermittivityData#
- class tidy3d.PermittivityData#
Data for a
PermittivityMonitor
: diagonal components of the permittivity tensor.- Parameters
monitor (PermittivityMonitor) – 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 thesymmetry
field are non-zero.eps_xx (ScalarFieldDataArray) – Spatial distribution of the xx-component of the relative permittivity.
eps_yy (ScalarFieldDataArray) – Spatial distribution of the yy-component of the relative permittivity.
eps_zz (ScalarFieldDataArray) – Spatial distribution of the zz-component of the relative permittivity.
Example
>>> from tidy3d import ScalarFieldDataArray >>> x = [-1,1] >>> y = [-2,0,2] >>> z = [-3,-1,1,3] >>> f = [2e14, 3e14] >>> coords = dict(x=x, y=y, z=z, f=f) >>> sclr_fld = ScalarFieldDataArray((1+1j) * np.random.random((2,3,4,2)), coords=coords) >>> monitor = PermittivityMonitor(size=(2,4,6), freqs=[2e14, 3e14], name='eps') >>> data = PermittivityData(monitor=monitor, eps_xx=sclr_fld, eps_yy=sclr_fld, eps_zz=sclr_fld)
Show JSON schema
{ "title": "PermittivityData", "description": "Data for a :class:`.PermittivityMonitor`: diagonal components of the permittivity tensor.\n\nParameters\n----------\nmonitor : PermittivityMonitor\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.\neps_xx : ScalarFieldDataArray\n Spatial distribution of the xx-component of the relative permittivity.\neps_yy : ScalarFieldDataArray\n Spatial distribution of the yy-component of the relative permittivity.\neps_zz : ScalarFieldDataArray\n Spatial distribution of the zz-component of the relative permittivity.\n\nExample\n-------\n>>> from tidy3d import ScalarFieldDataArray\n>>> x = [-1,1]\n>>> y = [-2,0,2]\n>>> z = [-3,-1,1,3]\n>>> f = [2e14, 3e14]\n>>> coords = dict(x=x, y=y, z=z, f=f)\n>>> sclr_fld = ScalarFieldDataArray((1+1j) * np.random.random((2,3,4,2)), coords=coords)\n>>> monitor = PermittivityMonitor(size=(2,4,6), freqs=[2e14, 3e14], name='eps')\n>>> data = PermittivityData(monitor=monitor, eps_xx=sclr_fld, eps_yy=sclr_fld, eps_zz=sclr_fld)", "type": "object", "properties": { "type": { "title": "Type", "default": "PermittivityData", "enum": [ "PermittivityData" ], "type": "string" }, "monitor": { "$ref": "#/definitions/PermittivityMonitor" }, "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" } ] }, "eps_xx": { "title": "DataArray", "description": "Spatial distribution of the xx-component of the relative permittivity.", "type": "xr.DataArray", "properties": { "_dims": { "title": "_dims", "type": "Tuple[str, ...]" } }, "required": [ "_dims" ] }, "eps_yy": { "title": "DataArray", "description": "Spatial distribution of the yy-component of the relative permittivity.", "type": "xr.DataArray", "properties": { "_dims": { "title": "_dims", "type": "Tuple[str, ...]" } }, "required": [ "_dims" ] }, "eps_zz": { "title": "DataArray", "description": "Spatial distribution of the zz-component of the relative permittivity.", "type": "xr.DataArray", "properties": { "_dims": { "title": "_dims", "type": "Tuple[str, ...]" } }, "required": [ "_dims" ] } }, "required": [ "monitor", "eps_xx", "eps_yy", "eps_zz" ], "additionalProperties": false, "definitions": { "ApodizationSpec": { "title": "ApodizationSpec", "description": "Stores specifications for the apodizaton of frequency-domain monitors.\n\nParameters\n----------\nstart : Optional[NonNegativeFloat] = None\n [units = sec]. Defines the time at which the start apodization ends.\nend : Optional[NonNegativeFloat] = None\n [units = sec]. Defines the time at which the end apodization begins.\nwidth : Optional[PositiveFloat] = None\n [units = sec]. Characteristic decay length of the apodization function.\n\nExample\n-------\n>>> apod_spec = ApodizationSpec(start=1, end=2, width=0.5)", "type": "object", "properties": { "start": { "title": "Start Interval", "description": "Defines the time at which the start apodization ends.", "units": "sec", "minimum": 0, "type": "number" }, "end": { "title": "End Interval", "description": "Defines the time at which the end apodization begins.", "units": "sec", "minimum": 0, "type": "number" }, "width": { "title": "Apodization Width", "description": "Characteristic decay length of the apodization function.", "units": "sec", "exclusiveMinimum": 0, "type": "number" }, "type": { "title": "Type", "default": "ApodizationSpec", "enum": [ "ApodizationSpec" ], "type": "string" } }, "additionalProperties": false }, "PermittivityMonitor": { "title": "PermittivityMonitor", "description": ":class:`Monitor` that records the diagonal components of the complex-valued relative\npermittivity tensor in the frequency domain. The recorded data has the same shape as a\n:class:`.FieldMonitor` of the same geometry: the permittivity values are saved at the\nYee grid locations, and can be interpolated to any point inside the monitor.\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.\nfreqs : Union[Tuple[float, ...], Array]\n [units = Hz]. Array or list of frequencies stored by the field monitor.\napodization : ApodizationSpec = ApodizationSpec(start=None, end=None, width=None, type='ApodizationSpec')\n Sets parameters of (optional) apodization. Apodization applies a windowing function to the Fourier transform of the time-domain fields into frequency-domain ones, and can be used to truncate the beginning and/or end of the time signal, for example to eliminate the source pulse when studying the eigenmodes of a system. Note: apodization affects the normalization of the frequency-domain fields.\n\nExample\n-------\n>>> monitor = PermittivityMonitor(\n... center=(1,2,3),\n... size=(2,2,2),\n... freqs=[250e12, 300e12],\n... name='eps_monitor')", "type": "object", "properties": { "type": { "title": "Type", "default": "PermittivityMonitor", "enum": [ "PermittivityMonitor" ], "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" }, "freqs": { "title": "Frequencies", "description": "Array or list of frequencies stored by the field monitor.", "units": "Hz", "anyOf": [ { "type": "array", "items": { "type": "number" } }, { "title": "Array Like", "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.", "type": "tuple", "properties": {}, "required": [] } ] }, "apodization": { "title": "Apodization Specification", "description": "Sets parameters of (optional) apodization. Apodization applies a windowing function to the Fourier transform of the time-domain fields into frequency-domain ones, and can be used to truncate the beginning and/or end of the time signal, for example to eliminate the source pulse when studying the eigenmodes of a system. Note: apodization affects the normalization of the frequency-domain fields.", "default": { "start": null, "end": null, "width": null, "type": "ApodizationSpec" }, "allOf": [ { "$ref": "#/definitions/ApodizationSpec" } ] } }, "required": [ "size", "name", "freqs" ], "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.PermittivityMonitor [Required]#