{
  "title": "TerminalComponentModelerData",
  "public_path": "flex_rf.tidy3d.TerminalComponentModelerData",
  "lookup_path": "tidy3d.rf.TerminalComponentModelerData",
  "slug": "flex_rf/tidy3d/TerminalComponentModelerData",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/terminalcomponentmodelerdata/",
  "object_kind": "class",
  "introduction": "Data associated with a `TerminalComponentModeler` simulation run.",
  "notes": "This class serves as a data container for the results of a component modeler simulation,\nwith the original simulation definition, and port simulation data, and the solver log.\n\n**S-Parameter Definitions**\n\nThe `s_param_def` parameter controls which wave definition is used to compute scattering\nparameters. Three definitions are supported:\n\n- `\"pseudo\"` (default): Pseudo-waves as defined by Marks and Williams [1]. Uses scaling\n  factor $$F = \\sqrt{\\text{Re}(Z)} / (2|Z|)$$. Wave amplitudes are $$a = F(V + ZI)$$\n  and $$b = F(V - ZI)$$.\n\n- `\"power\"`: Power waves as defined by Kurokawa [3] and described in Pozar [2]. Uses\n  scaling factor $$F = 1 / (2\\sqrt{\\text{Re}(Z)})$$. Wave amplitudes are\n  $$a = F(V + ZI)$$ and $$b = F(V - Z^*I)$$ where $$Z^*$$ is the complex\n  conjugate. Ensures $$|a|^2 - |b|^2$$ represents actual power flow.\n\n- `\"symmetric_pseudo\"`: Equivalent to pseudo-waves except for the scaling factor. Uses\n  $$F = 1 / (2\\sqrt{Z})$$ where the square root is complex. This choice of scaling\n  factor ensures the S-matrix will be symmetric when the simulated device is reciprocal.",
  "examples": "",
  "references": "**[1]** R. B. Marks and D. F. Williams, \"A general waveguide circuit theory,\" J. Res. Natl. Inst. Stand. Technol., vol. 97, pp. 533, 1992.\n\n**[2]** D. M. Pozar, Microwave Engineering, 4th ed. Hoboken, NJ, USA: John Wiley & Sons, 2012.\n\n**[3]** K. Kurokawa, \"Power Waves and the Scattering Matrix,\" IEEE Trans. Microwave Theory Tech., vol. 13, no. 2, pp. 194-202, March 1965.",
  "signature": "class TerminalComponentModelerData(AbstractComponentModelerData, MicrowaveBaseModel)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/plugins/smatrix/data/terminal.py",
    "url": "",
    "lineno": 67,
    "endlineno": 727
  },
  "bases": [
    "AbstractComponentModelerData",
    "MicrowaveBaseModel"
  ],
  "parameter_rows": [
    {
      "name": "modeler",
      "annotation": "TerminalComponentModeler",
      "default": "...",
      "description": "The original `TerminalComponentModeler` object that defines the simulation setup and from which this data was generated.",
      "origin": "declared"
    },
    {
      "name": "renormalized_reference_impedance",
      "annotation": "RenormalizedReferenceImpedance | None",
      "default": "None",
      "description": "When set, overrides port_reference_impedances for all S-matrix computations. Accepts: complex (uniform), PortDataArray (per-port diagonal), or TerminalPortDataArray (full matrix).",
      "origin": "declared"
    },
    {
      "name": "attrs",
      "annotation": "dict",
      "default": "factory: dict",
      "description": "Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, `attrs` are mutable. For example, the following is allowed for setting an `attr` `obj.attrs['foo'] = bar`. Also note that Tidy3D will raise a `TypeError` if `attrs` contain objects that can not be serialized. One can check if `attrs` are serializable by calling `obj.model_dump_json()`.",
      "origin": "inherited"
    },
    {
      "name": "data",
      "annotation": "SimulationDataMap",
      "default": "",
      "description": "A mapping from task names to `SimulationData` objects, containing the results of each simulation run.",
      "origin": "inherited"
    },
    {
      "name": "log",
      "annotation": "str | None",
      "default": "None",
      "description": "A string containing the log information from the modeler post-processing run.",
      "origin": "inherited"
    }
  ],
  "members": [
    {
      "name": "ab_to_s",
      "kind": "attribute",
      "signature": "ab_to_s",
      "description": ""
    },
    {
      "name": "change_port_reference_planes",
      "kind": "function",
      "signature": "change_port_reference_planes(smatrix: MicrowaveSMatrixData, port_shifts: PortNameDataArray = None)",
      "description": "Performs S-parameter de-embedding by shifting reference planes `port_shifts` um."
    },
    {
      "name": "check_port_impedance_sign",
      "kind": "attribute",
      "signature": "check_port_impedance_sign",
      "description": ""
    },
    {
      "name": "compute_F",
      "kind": "attribute",
      "signature": "compute_F",
      "description": ""
    },
    {
      "name": "compute_port_VI",
      "kind": "attribute",
      "signature": "compute_port_VI",
      "description": ""
    },
    {
      "name": "compute_port_wave_amplitude_matrices",
      "kind": "function",
      "signature": "compute_port_wave_amplitude_matrices(s_param_def: SParamDef = 'pseudo')",
      "description": "Compute wave amplitude matrices for all port combinations."
    },
    {
      "name": "compute_power_delivered_by_port",
      "kind": "attribute",
      "signature": "compute_power_delivered_by_port",
      "description": ""
    },
    {
      "name": "compute_power_wave_amplitudes",
      "kind": "attribute",
      "signature": "compute_power_wave_amplitudes",
      "description": ""
    },
    {
      "name": "compute_power_wave_amplitudes_at_each_port",
      "kind": "function",
      "signature": "compute_power_wave_amplitudes_at_each_port(sim_data: SimulationData, port_reference_impedances: TerminalPortDataArray | None = None)",
      "description": "Compute the incident and reflected power wave amplitudes at each port. The computed amplitudes have not been normalized."
    },
    {
      "name": "compute_wave_amplitudes_at_each_port",
      "kind": "function",
      "signature": "compute_wave_amplitudes_at_each_port(sim_data: SimulationData, port_reference_impedances: TerminalPortDataArray | None = None, s_param_def: SParamDef = 'pseudo')",
      "description": "Compute the incident and reflected amplitudes at each port. The computed amplitudes have not been normalized."
    },
    {
      "name": "get_antenna_metrics_data",
      "kind": "function",
      "signature": "get_antenna_metrics_data(port_amplitudes: dict[NetworkIndex, complex] | None = None, monitor_name: str | None = None)",
      "description": "Calculate antenna parameters using superposition of fields from multiple port excitations."
    },
    {
      "name": "port_power_wave_matrices",
      "kind": "function",
      "signature": "port_power_wave_matrices()",
      "description": "Compute power-wave amplitude matrices for all port combinations."
    },
    {
      "name": "port_pseudo_wave_matrices",
      "kind": "function",
      "signature": "port_pseudo_wave_matrices()",
      "description": "Compute pseudo-wave amplitude matrices for all port combinations."
    },
    {
      "name": "port_reference_impedances",
      "kind": "function",
      "signature": "port_reference_impedances()",
      "description": "Calculates the reference impedance matrix for each port across all frequencies."
    },
    {
      "name": "port_symmetric_pseudo_wave_matrices",
      "kind": "function",
      "signature": "port_symmetric_pseudo_wave_matrices()",
      "description": "Compute symmetric-pseudo wave amplitude matrices for all port combinations."
    },
    {
      "name": "port_voltage_current_matrices",
      "kind": "function",
      "signature": "port_voltage_current_matrices()",
      "description": "Compute voltage and current matrices for all port combinations."
    },
    {
      "name": "renormalize",
      "kind": "function",
      "signature": "renormalize(reference_impedance: RenormalizedReferenceImpedance)",
      "description": "Return a new instance whose S-matrix is renormalized to a different reference impedance."
    },
    {
      "name": "s_to_z",
      "kind": "function",
      "signature": "s_to_z(assume_ideal_excitation: bool | None = None, s_param_def: SParamDef = 'pseudo')",
      "description": "Converts the S-matrix to the Z-matrix using the port reference impedances."
    },
    {
      "name": "smatrix",
      "kind": "function",
      "signature": "smatrix(assume_ideal_excitation: bool | None = None, s_param_def: SParamDef | None = None)",
      "description": "Computes and returns the S-matrix and port reference impedances."
    },
    {
      "name": "smatrix_deembedded",
      "kind": "function",
      "signature": "smatrix_deembedded(port_shifts: np.ndarray = None)",
      "description": "Interface function returns de-embedded S-parameter matrix."
    }
  ],
  "group": "flex_rf.tidy3d"
}
