perturbation.TransferMatrix

perturbation.TransferMatrix(freqs, data, *, basis='char', ports=None)

A 2-port transfer matrix v_down = T(f) @ v_up versus frequency [Hz].

Parameters

Name Type Description Default
freqs array_like Tabulated frequencies [Hz], strictly increasing. required
data array_like Complex (n_f, N, N) samples (or a single (N, N) constant matrix, broadcast). required
basis str Variable flavor of v (default "char", the amplitudes (f, g, h)); any of characteristics.BASIS_LABELS. 'char'
ports (PortState, PortState) Mean state at the upstream and downstream face; required for flavor and transfer<->scattering conversions. Each port carries its own caloric row (cal), so the network flavor is reacting-correct with no gas-model constant. None

Notes

N is the characteristic count and fixes whether the convected scalar (entropy) wave is carried: N = 2 is acoustics-only, (f, g), with no scalar wave; N = 3 adds the entropy amplitude h as the third characteristic, so a scalar wave is present exactly when N = 3. The 2-D case uses the classic 2x2 acoustic conventions (matrices.tm_fg_to_sm2 etc.); the 3-D case the general characteristic algebra.

Methods

Name Description
plot Magnitude/phase grid of the entries (see plotting.plot_transfer_matrix).
to_basis A copy re-expressed in flavor basis (needs :attr:ports).
to_scattering The equivalent :class:ScatteringMatrix (needs :attr:ports).

plot

perturbation.TransferMatrix.plot(freqs=None, **kwargs)

Magnitude/phase grid of the entries (see plotting.plot_transfer_matrix).

to_basis

perturbation.TransferMatrix.to_basis(basis)

A copy re-expressed in flavor basis (needs :attr:ports).

to_scattering

perturbation.TransferMatrix.to_scattering()

The equivalent :class:ScatteringMatrix (needs :attr:ports).

Back to top