SymOrb.jl

Symmetric periodic orbits in the n-body problem in Julia

What

SymOrb.jl is a Julia package provides tools for finding periodic and symmetric solutions to the gravitational $n$-body problem using a variational approach. It is a reimplementation in a unified Julia environment of the original symorb package, which was written in Fortran and Python.

Quick start

  • Install SymOrb by typing ] add https://github.com/DipMathUniTO/SymOrb.jl
  • Write a configuration file config.toml
symmetry_name = "2d_cyclic_2"
NOB = 3
dim = 2
m = [1, 1, 1]

# Group generators
kern = "TrivialKerTau(2)"
action_type = 0
rotV = "[[-1, 0], [0, -1] ]"
rotS = "(2,3)"

# Other configs
F = 24
Omega = [
    [0, 0],
    [0, 0]
]
  • Initialize the problem
using SymOrb
P = initialize("config.toml")
  • Find a periodic orbit
orbits = find_orbits(P)
  • Show the orbit
using GLMakie
path_animation(P, orbits[1].fourier_coeff)