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

"""Data structures for post-processing modal component simulations to calculate S-matrices."""

from __future__ import annotations

import pydantic.v1 as pd

from tidy3d.plugins.smatrix.component_modelers.modal import ModalComponentModeler
from tidy3d.plugins.smatrix.data.base import AbstractComponentModelerData
from tidy3d.plugins.smatrix.data.data_array import ModalPortDataArray


[docs] class ModalComponentModelerData(AbstractComponentModelerData): """A data container for the results of a :class:`.ModalComponentModeler` run. This class stores the original modeler and the simulation data obtained from running the simulations it defines. It also provides a method to compute the S-matrix from the simulation data. """ modeler: ModalComponentModeler = pd.Field( ..., title="ModalComponentModeler", description="The original :class:`ModalComponentModeler` object that defines the simulation setup " "and from which this data was generated.", )
[docs] def smatrix(self) -> ModalPortDataArray: """Computes and returns the scattering matrix (S-matrix). The S-matrix is computed from the simulation data using the :func:`.modal_construct_smatrix` function. Returns ------- ModalPortDataArray The computed S-matrix. """ from tidy3d.plugins.smatrix.analysis.modal import modal_construct_smatrix modal_port_data_array = modal_construct_smatrix(modeler_data=self) return modal_port_data_array