Fast and flexible
Optimized for speed, and built on the DifferentialEquations.jl framework.
Syzygy.jl
is a direct N-body simulator for astrophysical applications written in Julia. This code is mainly aimed at simulating and visualizing the dynamics of hierarchical multistar systems and planetary systems, but it also supports non-hierarchical configurations. The package uses the DifferentialEquations.jl ecosystem to solve the governing differential equations, making this code highly performant and flexible, allowing for, e.g., both fixed and adaptive timestepping with adjustable error tolerances, easy code injection with callbacks, and of the choice of a wide array of ODE solvers.
using Plots, Syzygy
unstable_triple = multibodysystem([2.0, 1.0, 1.5]u"Msun",
semi_major_axes=[1.0, 4.0]u"AU",
eccentricities=[0.0, 0.4])
res = simulate(unstable_triple, t_sim=4)
sol = to_solution(res)
orbitplot(sol, dims=[1, 2])
Warning
This package is still being developed, so certain features may not work as expected. If you want to use this package, please make sure that you perform tests to ensure that your results are as you expect.