Invariant manifolds and slices¶
The unstable manifold of an equilibrium as a polynomial parametrization, connections between solutions, and the reduction of a continuous symmetry by a slice.
These tools treat the reduced coordinates of a solver (its active degrees of freedom, possibly in
an invariant subspace) as a dynamical system. The examples below start from the equilibrium E1
and the travelling wave TW1 of Invariant solutions.
Unstable manifold¶
The parametrization method writes the unstable manifold of an equilibrium \(x_0\) as \(P(s) = \sum_\alpha a_\alpha s^\alpha\), with \(P(0) = x_0\) and \(DP(0)\) the unstable eigenvectors, and solves the homological equations order by order. It is exact for a polynomial vector field, whose degree is declared and checked.
from conatus.expert import ecs_system, unstable_manifold
ks = ecs_system(sim.solver, odd=True, degree=2, dense_max=400) # active coordinates
x0 = ks.space.active(E1.X)
W = unstable_manifold(ks, x0, order=6, degree=2, eigvec_scale=0.1, unstable_tol=1e-8)
print(W.explain())
print(f"defect on the circle |s| = 0.5: {W.max_defect(0.5, 32):.1e}")
max_defect measures the invariance equation on a circle of radius \(\rho\); validity_radius
finds the largest radius below a tolerance. globalize integrates the points of a fundamental
domain to grow the manifold, and find_connection / scan_connection look for connections
between two solutions. Poincaré sections (PoincareSection, first_return_map) locate crossings
on the dense output of a trajectory.
Symmetry-reduced slices¶
A continuous translation symmetry makes relative solutions drift. The first-Fourier-mode slice fixes the phase of the first Fourier mode: travelling waves become equilibria and relative periodic orbits become periodic orbits.
from conatus.expert import FirstFourierModeSlice, FourierOps, slice_equilibrium_check
slc = FirstFourierModeSlice(FourierOps(sim.solver), border_tol=1e-6)
check = slice_equilibrium_check(slc, sim.solver, TW1) # a dict of evidence
print(check)
The slice border (where the first mode vanishes and its phase is undefined) is detected and
reported, never regularized. find_rpo_in_slice searches periodic orbits of the reduced flow.
See also: unstable_manifold, ecs_system, find_connection, FirstFourierModeSlice.