conatus.expert.FirstFourierModeSlice¶
- class conatus.expert.FirstFourierModeSlice(ops, *, border_tol, template=None)[source]¶
Bases:
objectSlice of the translation group through a first-Fourier-mode template (see module doc).
ops: object withtranslate(X, ℓ),ddx(X)andk(wavenumbers of the pairs), e.g.FourierOps(solver);template: solver vector holding only the first wavenumber (default: the cos₁ coefficient of the first variable, 1D FourierOps only);border_tol: declared threshold on √(a² + b²)/‖X‖ below which a state is reported on the slice border.- Parameters:
border_tol (float)
template (np.ndarray | None)
- angle(X)[source]¶
Group angle k₁ ℓ(X) ∈ (−π, π] of the state (undefined on the border).
- Return type:
float
- reduce(X)[source]¶
(X̂, ℓ) with X = τ_ℓ X̂; refuses a state on the border (phase undefined).
- Return type:
tuple[ndarray, float]
- reconstruct(X_hat, ell)[source]¶
Full-space state τ_ℓ X̂.
- Parameters:
ell (float)
- Return type:
ndarray
- slice_condition(X_hat)[source]¶
⟨X̂, T p⟩/(k₁‖X̂‖): zero on the slice (to rounding).
- Return type:
float
- velocity(X_hat, v)[source]¶
In-slice velocity v̂ = v(X̂) − ℓ̇ T X̂ and phase velocity ℓ̇ (
v: full vector field).- Return type:
tuple[ndarray, float]
- reduce_trajectory(t, X, *, v=None)[source]¶
Project samples X (m, n) at times t; the phase is unwrapped between samples. If the vector field
vis given, ℓ is also reconstructed by trapezoidal quadrature of ℓ̇ and the largest difference with the unwrapped projection is reported (notes).- Return type:
SliceTrajectory