Source code for tidy3d.plugins.smatrix.data.data_array

"""Storing data associated with results from the TerminalComponentModeler"""

from __future__ import annotations

from tidy3d.components.data.data_array import DataArray


[docs] class PortDataArray(DataArray): """Array of values over dimensions of frequency and port name. Example ------- >>> import numpy as np >>> f = [2e9, 3e9, 4e9] >>> ports = ["port1", "port2"] >>> coords = dict(f=f, port=ports) >>> data = (1+1j) * np.random.random((3, 2)) >>> port_data = PortDataArray(data, coords=coords) """ __slots__ = () _dims = ("f", "port")
[docs] class ModalPortDataArray(DataArray): """Port parameter matrix elements for modal ports. Example ------- >>> import numpy as np >>> ports_in = ['port1', 'port2'] >>> ports_out = ['port1', 'port2'] >>> mode_index_in = [0, 1] >>> mode_index_out = [0, 1] >>> f = [2e14] >>> coords = dict( ... port_in=ports_in, ... port_out=ports_out, ... mode_index_in=mode_index_in, ... mode_index_out=mode_index_out, ... f=f ... ) >>> port_data = ModalPortDataArray((1 + 1j) * np.random.random((2, 2, 2, 2, 1)), coords=coords) """ __slots__ = () _dims = ("port_out", "mode_index_out", "port_in", "mode_index_in", "f") _data_attrs = {"long_name": "modal port matrix element"}
[docs] class TerminalPortDataArray(DataArray): """Port parameter matrix elements for terminal-based ports. Example ------- >>> import numpy as np >>> ports_in = ["port1", "port2"] >>> ports_out = ["port1", "port2"] >>> f = [2e14] >>> coords = dict(f=f, port_out=ports_out, port_in=ports_in) >>> data = (1+1j) * np.random.random((1, 2, 2)) >>> port_data = TerminalPortDataArray(data, coords=coords) """ __slots__ = () _dims = ("f", "port_out", "port_in") _data_attrs = {"long_name": "terminal-based port matrix element"}
class PortNameDataArray(DataArray): """Array of values indexed by port name. Example ------- >>> import numpy as np >>> port_names = ["port1", "port2"] >>> coords = dict(port_name=port_names) >>> data = (1 + 1j) * np.random.random((2,)) >>> port_data = PortNameDataArray(data, coords=coords) """ __slots__ = () _dims = "port_name"