Juliacon 2024

Few-body integrator with time-reversible adaptivity in Julia
07-10, 18:30–19:00 (Europe/Amsterdam), If (1.1)

Time-reversible or symplectic methods are very useful for long-term integration of planetary systems with a constant step size. However, in the case of n-body problems involving close encounters, adaptive time-stepping is required. We present a SIMD-vectorized integrator for few-body problems which incorporates a robust time-reversible adaptivity mechanism that makes it highly performant for the long-term numerical integration of problems with close-encounters.


Time-reversible or symplectic methods are very useful for long-term integration of planetary systems with a constant step size. The 16th order method implemented in our package SciML/IRKGaussLegendre.jl is both time-reversible and symplectic, and includes a SIMD-vectorized version IRKGL16-SIMD (presented in Juliacon2020) that is particularly efficient for problems without close encounters. However, numerical precision degrades greatly during close encounters if constant step size is employed. Close encounters are common, for instance, in simulations of the orbital evolution of the Solar System when some asteroids or comets are included in the model. Hence, a robust numerical integrator of few-body problems must include some adaptive mechanism to deal with close encounters. Unfortunately, with conventional time-step adaptivity strategies the advantages of symplectic methods is lost.

We present an integrator for few-body problems, which based on IRKGL16-SIMD, that incorporates a robust time-reversible adaptivity mechanism that makes it highly performant for the long-term numerical integration of problems with close-encounters. Fortunately, time-stepping strategies that preserve the reversible structure of the n-body problem are possible, for instance, by applying reversible stepsize strategies introduced in [1], which require an explicitly given expression of the stepsize as a function of the positions and velocities. In our code, we make use of an appropriate step-size function for the n-problem proposed in our previous work [2,3].

We show some numerical experiments with few-body problems that demonstrates the efficiency and robustness of our code.

Repository: https://github.com/mikelehu/NbodyIRKGL16.jl

References