AbstractSingleDomain

class pmrf.models.adapters.base.AbstractSingleDomain(*, name: str | None = None, metadata: Any = None, domain: str = 's', z0: Any = 50.0)

Bases: Model, ABC

(experimental) Base model wrapping a single known domain type.

This class handles dynamic domain injection and automatically renormalizes S-parameters if the requested characteristic impedance differs from the intrinsic impedance.

Parameters:
  • domain (str, default='s') – The domain matrix type (e.g., ‘s’, ‘a’, ‘y’, ‘z’).

  • z0 (numpy.ndarray | None, default=50.0) – The characteristic impedance the intrinsic matrix is defined in. Must not be None if domain is ‘s’.

abstractmethod matrix(freq: Frequency) Array

Compute the intrinsic matrix for the domain.

Parameters:

freq (Frequency) – The frequency grid to evaluate on.

Returns:

The intrinsic domain matrix.

Return type:

jax.numpy.ndarray

primary_matrix(freq: Frequency, **kwargs) Array

Retrieve the primary matrix and apply impedance renormalization if necessary.

Parameters:
  • freq (Frequency) – The frequency grid.

  • **kwargs – Additional arguments, specifically z0 for S-parameter renormalization.

Returns:

The domain matrix, renormalized to the requested z0 if applicable.

Return type:

jax.numpy.ndarray

domain: str = 's'

The domain matrix type (e.g., ‘s’, ‘a’, ‘y’, ‘z’).

property primary_domain: str

Get the primary domain string.

Return type:

str

z0: ndarray | None = 50.0

Intrinsic characteristic impedance for S-parameters.