tidy3d.FluxTimeData
tidy3d.FluxTimeData#
- class tidy3d.FluxTimeData#
Data associated with a
FluxTimeMonitor
: flux data in the time-domain.- Parameters
monitor (FluxTimeMonitor) – flux : FluxTimeDataArray
Example
>>> from tidy3d import FluxTimeDataArray >>> t = [0, 1e-12, 2e-12] >>> coords = dict(t=t) >>> flux_data = FluxTimeDataArray(np.random.random(3), coords=coords) >>> monitor = FluxTimeMonitor(size=(2,0,6), interval=100, name='flux_time') >>> data = FluxTimeData(monitor=monitor, flux=flux_data)
Show JSON schema
{ "title": "FluxTimeData", "description": "Data associated with a :class:`.FluxTimeMonitor`: flux data in the time-domain.\n\nParameters\n----------\nmonitor : FluxTimeMonitor\n flux : FluxTimeDataArray\n \nExample\n-------\n>>> from tidy3d import FluxTimeDataArray\n>>> t = [0, 1e-12, 2e-12]\n>>> coords = dict(t=t)\n>>> flux_data = FluxTimeDataArray(np.random.random(3), coords=coords)\n>>> monitor = FluxTimeMonitor(size=(2,0,6), interval=100, name='flux_time')\n>>> data = FluxTimeData(monitor=monitor, flux=flux_data)", "type": "object", "properties": { "type": { "title": "Type", "default": "FluxTimeData", "enum": [ "FluxTimeData" ], "type": "string" }, "monitor": { "$ref": "#/definitions/FluxTimeMonitor" }, "flux": { "title": "DataArray", "type": "xr.DataArray", "properties": { "_dims": { "title": "_dims", "type": "Tuple[str, ...]" } }, "required": [ "_dims" ] } }, "required": [ "monitor", "flux" ], "additionalProperties": false, "definitions": { "FluxTimeMonitor": { "title": "FluxTimeMonitor", "description": ":class:`Monitor` that records power flux in the time domain.\nIf the monitor geometry is a 2D box, the total flux through this plane is returned, with a\npositive sign corresponding to power flow in the positive direction along the axis normal to\nthe plane. If the geometry is a 3D box, the total power coming out of the box is returned by\nintegrating the flux over all box surfaces (excpet the ones defined in ``exclude_surfaces``).\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.\nnormal_dir : Optional[Literal['+', '-']] = None\n Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.\nexclude_surfaces : Optional[Tuple[Literal['x-', 'x+', 'y-', 'y+', 'z-', 'z+'], ...]] = None\n Surfaces to exclude in the integration, if a volume monitor.\n\nExample\n-------\n>>> monitor = FluxTimeMonitor(\n... center=(1,2,3),\n... size=(2,2,0),\n... start=1e-13,\n... stop=5e-13,\n... interval=2,\n... name='flux_vs_time')", "type": "object", "properties": { "type": { "title": "Type", "default": "FluxTimeMonitor", "enum": [ "FluxTimeMonitor" ], "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" }, "normal_dir": { "title": "Normal vector orientation", "description": "Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.", "enum": [ "+", "-" ], "type": "string" }, "exclude_surfaces": { "title": "Excluded surfaces", "description": "Surfaces to exclude in the integration, if a volume monitor.", "type": "array", "items": { "enum": [ "x-", "x+", "y-", "y+", "z-", "z+" ], "type": "string" } } }, "required": [ "size", "name" ], "additionalProperties": false } } }
- attribute flux: tidy3d.components.data.data_array.FluxTimeDataArray [Required]#
- Constraints
title = DataArray
type = xr.DataArray
properties = {‘_dims’: {‘title’: ‘_dims’, ‘type’: ‘Tuple[str, …]’}}
required = [‘_dims’]
- attribute monitor: tidy3d.components.monitor.FluxTimeMonitor [Required]#