Guiding Center 4d (Symmetric Field): 1st Poincaré Integral Invariant with Gauss-Legendre VPRK Methods and Projections
The first Poincaré integral invariant
\[I_{1} = \oint_{\gamma} \vartheta_{i} (q) \, dq^{i}\]
of the four-dimensional guiding centre dynamics in the axisymmetric quadratic field $B (x, y, z) = B_{0} (1 + x^{2} + y^{2}) \, e_{z}$, whose coordinates are cartesian, so that the figures show the advected loop in the coordinates it is defined in. The loop is
\[q (\tau) = \big( 0.5 \cos 2 \pi \tau , \; 0.3 \sin 2 \pi \tau , \; 0.1 \sin 2 \pi \tau , \; 0.5 + 0.05 \cos 2 \pi \tau \big)\]
at magnetic moment $\mu = 10^{-2}$: unlike the tokamak loop it varies in all four components, including the parallel velocity.
The dynamics is integrated in its variational formulation, with the Gauss-Legendre variational partitioned Runge-Kutta methods and each of the projections onto the constraint submanifold. This is the geometry the pre-0.2 gallery ran with the projected methods only, which is why it has no Gauss-Legendre Runge-Kutta page.
Each method is run over the same time interval at four time steps, $\Delta t \in \{10, 5, 2, 1\}$, whose relative errors are drawn as four curves in one figure. This equilibrium is by far the more benign of the two: the projected methods hold the invariant at round-off, $10^{-14}$, at every one of the four time steps, and it is the unprojected method whose drift the four curves order — 9·10⁻⁷ at $\Delta t = 10$ down to 9·10⁻¹¹ at $\Delta t = 1$. The time interval and the number of sample points are reduced from the published ones, for the reasons given at the top of src/guiding-center-4d-poincare.jl.
VPRKGauss(1)

SymplecticGauss(1) with standard projection

SymplecticGauss(1) with symmetric projection

SymplecticGauss(1) with symplectic projection

SymplecticGauss(1) with midpoint projection

SymplecticGauss(1) with internal stage projection
Δt = 10.0 failed: MethodError.
Δt = 5.0 failed: MethodError.
Δt = 2.0 failed: MethodError.
Δt = 1.0 failed: MethodError.
No time step completed; no figures for this run.
VPRKGauss(2)

SymplecticGauss(2) with standard projection

SymplecticGauss(2) with symmetric projection

SymplecticGauss(2) with symplectic projection

SymplecticGauss(2) with midpoint projection

SymplecticGauss(2) with internal stage projection
Δt = 10.0 failed: MethodError.
Δt = 5.0 failed: MethodError.
Δt = 2.0 failed: MethodError.
Δt = 1.0 failed: MethodError.
No time step completed; no figures for this run.
VPRKGauss(3)

SymplecticGauss(3) with standard projection

SymplecticGauss(3) with symmetric projection

SymplecticGauss(3) with symplectic projection

SymplecticGauss(3) with midpoint projection

SymplecticGauss(3) with internal stage projection
Δt = 10.0 failed: MethodError.
Δt = 5.0 failed: MethodError.
Δt = 2.0 failed: MethodError.
Δt = 1.0 failed: MethodError.
No time step completed; no figures for this run.
VPRKGauss(4)

SymplecticGauss(4) with standard projection

SymplecticGauss(4) with symmetric projection

SymplecticGauss(4) with symplectic projection

SymplecticGauss(4) with midpoint projection

SymplecticGauss(4) with internal stage projection
Δt = 10.0 failed: MethodError.
Δt = 5.0 failed: MethodError.
Δt = 2.0 failed: MethodError.
Δt = 1.0 failed: MethodError.
No time step completed; no figures for this run.
VPRKGauss(5)

SymplecticGauss(5) with standard projection

SymplecticGauss(5) with symmetric projection

SymplecticGauss(5) with symplectic projection

SymplecticGauss(5) with midpoint projection

SymplecticGauss(5) with internal stage projection
Δt = 10.0 failed: MethodError.
Δt = 5.0 failed: MethodError.
Δt = 2.0 failed: MethodError.
Δt = 1.0 failed: MethodError.
No time step completed; no figures for this run.
VPRKGauss(6)

SymplecticGauss(6) with standard projection

SymplecticGauss(6) with symmetric projection

SymplecticGauss(6) with symplectic projection

SymplecticGauss(6) with midpoint projection

SymplecticGauss(6) with internal stage projection
Δt = 10.0 failed: MethodError.
Δt = 5.0 failed: MethodError.
Δt = 2.0 failed: MethodError.
Δt = 1.0 failed: MethodError.
No time step completed; no figures for this run.