zoomy_core.analysis.plane_wave module#
Plane-wave dispersion analysis.
Inserts the 1D plane-wave ansatz δq(t, x) = q̂ exp(i(k x − ω t))
into a linearised SystemModel’s operator-form residual and
reduces to an algebraic system in the amplitudes q̂. Solves
det M(ω, k) = 0 for ω(k) (or k(ω)).
- zoomy_core.analysis.plane_wave.plane_wave_matrix(linear_sm, *, k=None, omega=None, axis=0)#
Insert
δq → q̂ exp(i(k x_axis − ω t))and reduce to a matrix.linear_smmust be a SystemModel returned bylinearise()(state entries are the perturbation symbolsδq).- Returns:
M (sp.Matrix) – Coefficient matrix such that
M · q̂_vector = 0.amplitudes (list[sp.Symbol]) – Amplitude symbols, in the same order as
linear_sm.state.
- Parameters:
k (Optional[Symbol]) –
omega (Optional[Symbol]) –
axis (int) –
- zoomy_core.analysis.plane_wave.plane_wave_dispersion(linear_sm, *, k=None, omega=None, axis=0, solve_for='omega', simplify=True, factor_in_target=True)#
Full dispersion solve.
Returns a dict with:
matrix — sp.Matrix M(ω, k) amplitudes — list of q̂ symbols determinant — det M(ω, k) solutions — list of ω(k) (or k(ω)) solutions phase_velocity_solutions — [ω/k for ω in solutions] (omega-mode only)
- Parameters:
k (Optional[Symbol]) –
omega (Optional[Symbol]) –
axis (int) –
solve_for (str) –
simplify (bool) –
factor_in_target (bool) –