This package collects simulation results of GeometricIntegrators.jl belonging to various publications. The example problems come from GeometricProblems.jl, the Poincaré integral invariants from PoincareInvariants.jl, and all figures are produced with CairoMakie.
The results are the documentation: juliagni.github.io/GeometricExamples.jl/dev. Each of its 65 pages runs one family of integration methods over one problem and collects, per run, the trajectory, its time traces, and the errors of the conserved quantities. Runs that diverge are reported on their page together with the trajectory up to the point of failure: comparing methods that do and do not preserve the geometric structure is the point of these examples, so failures are shown rather than hidden.
Problems covered:
- Lotka-Volterra 2d, in its standard and its singular gauge
- The massless charged particle in 2d
- The planar point vortices, including a convergence study
- The four-dimensional guiding centre dynamics: four orbits in a medium-size and a small tokamak equilibrium, and its first and second Poincaré integral invariants
- The Chirikov standard map, again with its first and second Poincaré integral invariant
Only dev is published: the package carries no release tags, so Documenter builds nothing under
stable.
Weave all pages into docs/src/<problem>/ and build the documentation into docs/build/
(-j8 runs eight pages in parallel; -k keeps going if one of them fails):
cd docs
make -j8 -k weave
make documenter
make -j8 point-vortices weaves all pages of a single problem, and
julia --project=.. weave.jl point-vortices vprk-gauss
a single page. From the repository root, make weave, make documenter and make test forward to
the same targets.
Run the test suite, which integrates every method of every family for a single time step and checks the standard map against its closed form:
julia --project -e 'using Pkg; Pkg.test()'
julia --project test/test_scripts.jl additionally exercises the whole weave path — the run
drivers, the crash reporting and the CairoMakie stack — in a temporary directory.
Every family of the pre-0.2 gallery has been migrated to src/ + weave/ except the 3d charged
particle, which was already broken before the modernization. The pre-0.2 scripts themselves have been
removed; the [Unreleased] section of CHANGELOG.md records how they map onto the
current structure, which of them never ran, and the one study that did not come across, and the git
history holds the originals. The Known Gaps section of the documentation covers the integrators,
outputs and run lengths that the modernization to GeometricIntegrators 0.16 left behind.
- Michael Kraus. Hamilton-Pontryagin-Galerkin Integrators.
- Michael Kraus. Discontinuous Galerkin Variational Integrators for Degenerate Lagrangians.
- Michael Kraus. Discontinuous Galerkin Variational Integrators for Hamiltonian Systems with Dirac Constraints.
- Michael Kraus. Projected Variational Integrators for Degenerate Lagrangian Systems.
- Michael Kraus. Variational Integrators for Noncanonical Hamiltonian Systems.
- Michael Kraus, Joshua Burby. Conservation of Poincaré Integral Invariants in Numerical Simulations.
The GeometricExamples.jl package is licensed under the MIT "Expat" License. All figures are licensed under the Creative Commons CC BY-NC-SA 4.0 License.