perturbation.identify_transfer_matrix
perturbation.identify_transfer_matrix(
prob,
x_bar,
measured,
*,
node,
a,
b,
excite=None,
isentropic=False,
forcing=None,
freeze=(),
continue_=True,
eps=None,
eps_fb=1e-06,
u_floor=1e-08,
**fit_kwargs,
)Recover the 2-port transfer matrix of any interior element from a network measurement.
Works for a marked :func:~nefes.elements.catalog.transfer_matrix_element and for any ordinary interior 2-port element whose linear transfer matrix you want to extract – e.g. an :func:~nefes.elements.catalog.equilibrium_flame. The element keeps its own mean-flow kernel (heat addition, dilatation, area change); only its perturbation acoustic rows are treated as the unknown block, so the recovered matrix is the element’s full linear 2-port (a flame’s active response folds into it).
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| prob | CompiledProblem or Solution | The network. node is any interior 2-port element; any dynamic-source feedback it carries is folded into the recovered matrix (the identification runs it silent). Pass a solved :class:nefes.Solution to have its problem and mean state supplied for you (then omit x_bar). |
required |
| x_bar | ndarray | Converged mean-flow state. Omit when prob is a Solution. |
required |
| measured | TransferMatrix | Measured transfer matrix w_b = M_meas w_a between edges a and b; its grid sets the identification frequencies and its dimension N the matrix recovered. |
required |
| node | int | The element’s node id. | required |
| a | int | Edge ids the measured matrix spans (a upstream of the element, b downstream). |
required |
| b | int | Edge ids the measured matrix spans (a upstream of the element, b downstream). |
required |
| excite | sequence of str | Driven wave families (default: ("acoustic", "entropy") for N=3, else ("acoustic",)). |
None |
| isentropic | bool | Pin the entropy wave to zero everywhere (rho' = p'/c^2) – the acoustics-only identification (N=2). Use this when the measured matrix is a purely acoustic 2-port and entropy generation should not contaminate the recovery; the measured matrix must have been taken (or synthesized) under the same assumption. The flag pins only the entropy characteristic – a transported reacting scalar is left untouched – but with N=2 and an acoustic-only excitation the recovered 2-port carries neither entropy nor scalar channels. Default False (full acoustic+entropy). |
False |
| forcing | optional | Passed to the measurement driver (which terminals to drive / keep physical). | None |
| freeze | optional | Passed to the measurement driver (which terminals to drive / keep physical). | None |
| continue_ | bool | Also fit a rational continuation of the recovered matrix (default True). | True |
| **fit_kwargs | Forwarded to :meth:TransferMatrix.continue_ (e.g. rtol, delay). |
{} |
Returns
| Name | Type | Description |
|---|---|---|
| TransferMatrixIdentification |