AbstractScatteringCircuitSolver

class pmrf.models.composite.interconnected.circuit.base.AbstractScatteringCircuitSolver

Bases: Module

Abstract base class for solvers that resolve arbitrary circuit networks in the Scattering domain.

abstractmethod run(s_block_diagonal: Array, z0_ports: Array, topology: PortRepresentation) ScatteringResult

Executes the scattering circuit solving algorithm.

Note on Dangling Ports

Implementations MUST safely handle mathematically isolated external ports (where a port in topology.ext_idx is the ONLY port on its defined net). To prevent solvers from evaluating these as perfect open circuits (S=1.0), implementations should dynamically inject matched virtual VNA probes (e.g., padding the S-matrix with 0.0s and rewiring the indices) prior to solving.

param s_block_diagonal:

A 2D array of shape (N_total, N_total) containing the uncoupled S-parameters of all components placed sequentially along the main diagonal. All off-diagonal elements are exactly zero.

type s_block_diagonal:

jnp.ndarray

param z0_ports:

A 1D array of shape (N_total,) containing the characteristic impedances for all ports.

type z0_ports:

jnp.ndarray

param topology:

The static map dictating the port connections, nets, and partition logic.

type topology:

PortRepresentation

returns:

The fully solved S-parameter result.

rtype:

ScatteringResult