zoomy_core.analysis.plane_wave module

zoomy_core.analysis.plane_wave module#

Plane-wave dispersion analysis.

Inserts the 1D plane-wave ansatz δq(t, x) = exp(i(k x ω t)) into a linearised SystemModel’s operator-form residual and reduces to an algebraic system in the amplitudes . 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 exp(i(k x_axis ω t)) and reduce to a matrix.

linear_sm must be a SystemModel returned by linearise() (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) –