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.