N-Body literature:
Java N-Body Code http://introcs.cs.princeton.edu/34nbody/https://en.wikipedia.org/wiki/Numerical_model_of_the_Solar_System
https://en.wikipedia.org/wiki/N-body_simulation
http://www.scholarpedia.org/article/N-body_simulations
www.artcompsci.org/msa/web/vol_1/v1_web/v1_web.htmlhttps://assets.cambridge.org/97805211/21538/excerpt/9780521121538_excerpt.pdf
https://patrickyoussef.com/blog/nbody/
rosetta code nbody problem
https://gereshes.com/2018/05/07/what-is-the-n-body-problem/
https://www.ast.cam.ac.uk/research/nbody
https://wwwmpa.mpa-garching.mpg.de/gadget/
https://bima.astro.umd.edu/nemo/
http://www.scholarpedia.org/article/Three_body_problem
http://www.scholarpedia.org/article/Computational_astrophysics#N-body_Codes
GADGET-2.0 Springel et al. (2005) galactic dynamics SPH tree code: https://wwwmpa.mpa-garching.mpg.de/galform/gadget/#download oder https://wwwmpa.mpa-garching.mpg.de/gadget/ The code can be run on essentially all supercomputer systems presently in use, including clusters of workstations or individual PCs.
amuse: https://github.com/amusecode/amuse https://amuse.readthedocs.io/en/latest/
N-Body starter code https://www.ias.edu/ids/~piet/act/comp/algorithms/starter/nbody_sh1https://github.com/toksaitov/nbody-starter/blob/master/nbody.c
direct3d https://github.com/kevinmoran/BeginnerDirect3D11
with Cuda https://github.com/harrism/mini-nbody
Some n-body links from 2019: https://www.sunorbit.net/nbody_links.htm and https://www.sunorbit.net/nbody_arxiv.htm
Sverre Aarseth’s N-Body website http://www.ast.cam.ac.uk/~sverre/web/pages/nbody.htmMERCURY Chambers et al. (2000)
celestial mechanics symplectic, newer versions from different groups,direct
N-Body Fortran code
SyMBA Duncan et al. (1998) celestial mechanics symplectic,
direct N-Body
AREPO Springel
et al. (2010) galactic dynamics moving mesh code
REBOUND c-lib . Integrators: REB_INTEGRATOR_IAS15 ‣ REB_INTEGRATOR_WHFAST ‣ REB_INTEGRATOR_JANUS ‣ REB_INTEGRATOR_LEAPFROG ‣ REB_INTEGRATOR_SEI ‣ REB_INTEGRATOR_MERCURIUS ‣ REB_INTEGRATOR_HERMES ... see espec. wh_fast or the standard leapfrog
rebound Two Videos on integrators versus time steps and which integrator for which situation used in rebound: https://rebound.readthedocs.io/en/latest/integrators/ (vielleicht kann Hanno Rein die Videos ja auch auf deutsch einstellen, das /de/-Verzeichnis ist zZ leer und öd)N-Body simulations with REBOUND https://www.tat.physik.uni-tuebingen.de/~schaefer/teach/fum2020/f/rebound_applications.pdf
On the accuracy in the numerical solution of the N-body problem
https://www.cs.cmu.edu/afs/cs/academic/class/15850c-s96/www/nbody.html
Performance analysis of direct N-body calculations
High-accuracy minimum relaxation N-body simulations using orthogonal series force computation An Analysis of N-Body Trajectory Propagation The N-body problem applied to exoplanets
Comparission of three N-body simulation codes, ABACUS, GADGET and SWIFT
Euler solver: https://www.hpcalc.org/details/4453 see also http://www.mymathlib.com/diffeq/eulers_method.html Euler Method http://en.wikipedia.org/wiki/Euler_method
Adams-Bashforth and Adams-Moulton Methods: http://www.mymathlib.com/diffeq/adams/Bulirsch-Stoer http://www.mymathlib.com/diffeq/bulirsch_stoer.html
Modified Midpoint (Gragg's) Method http://www.mymathlib.com/diffeq/graggs_method.html Trapezoidal Method http://www.mymathlib.com/diffeq/trapezoidal_method.htmlmidpoint method https://en.wikipedia.org/wiki/Midpoint_method / Leapfrog integration http://en.wikipedia.org/wiki/Leapfrog_integration / midpoint method http:///www.mymathlib.com/diffeq/midpoint_method.html Stability of the leapfrog/midpoint method
Methods for Second Order Differential Equations http://www.mymathlib.com/diffeq/second_order/Runge-Kutta methods http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods Runge Kutta http://www.mymathlib.com/diffeq/runge-kutta/
symplektische Integratoren: https://idontgetoutmuch.wordpress.com/2013/08/06/planetary-simulation-with-excursions-in-symplectic-manifolds-6/
Compare HHS with leapfrog integrator, and with the adaptive one (AKDK)
The leapfrog method and other “symplectic” algorithms for integrating Newton’s laws of motion
tip: use c# generics or cpp templates for the integrators
the following 3 links are extremely important to read in nbody coding:
Optimizing in cpp: https://github.com/facontidavide/CPP_Optimizations_Diary some simple design patterns to improve your code
42 SPECIFIC WAYS TO IMPROVE YOUR USE OF C++11 AND C++14 : https://github.com/Ricardo666666/Effective-Modern-Cpp-Zh
Optimizing and faster code in c++ talks, articles, tools, libraries ..... : https://github.com/fenbf/AwesomePerfCpp
c# to cpp transpiler: https://github.com/ASDAlexander77/cs2cpp essential for all who don't want to give away their source codesQuad datatype: https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format some doubledouble: https://www.davidhbailey.com/dhbsoftware/
general c/c++ source code: https://www.projectpluto.com/source.htm
opensph: https://github.com/pavelsevecek/OpenSPH
gandalf: https://github.com/gandalfcode/gandalf
LIBRARY OF ASTROPHYSICAL ROUTINES (C++ & Fortran) https://galprop.stanford.edu/resources.php?option=routines
Athena: https://www.athena-astro.app/
Pluto: http://plutocode.ph.unito.it/
Splotch: https://wwwmpa.mpa-garching.mpg.de/~kdolag/Splotch/
ccfits: https://heasarc.gsfc.nasa.gov/docs/software/fitsio/CCfits/ wrapper for fitsio
HOPE - combine the ease of Python and the speed of C++ https://cosmology.ethz.ch/research/software-lab/HOPE.html
Atropy astrophysics with python: https://sourceforge.net/projects/astropy.mirror/ or https://www.astropy.org/Astrotools: https://sourceforge.net/projects/astrotools/
AstroLab: https://sourceforge.net/projects/conquestofspace/
AstroSim: https://sourceforge.net/projects/astrosim/
QuantumSim: https://sourceforge.net/projects/quantumsim/
Astronomy source codes: http://www.moshier.net/
Bridge++ is a code set for numerical simulations of lattice gauge theories including QCD (Quantum Chromodynamics) https://bridge.kek.jp/Lattice-code/
ZEUS hydrodynamics code https://www.astro.princeton.edu/~jstone/zeus.html
PJ Naughters AA+ lib http://www.naughter.com
Astrophysics source code lib: https://ascl.net/
Astrophysics source code http://tdc-www.harvard.edu/astro.software.html
github astronomy: https://github.com/topics/astronomy
python astronomy: https://github.com/jonathansick/awesome-astronomy
NEMO is an extendible Stellar Dynamics Toolbox https://teuben.github.io/nemo/ github: https://github.com/teuben/nemo
Astroalign: https://astroalign.quatrope.org/en/latest/ github: http://quatrope.github.io/astroalign
Utilitys, physics engines, math packages, quad datatype, doubledouble, graphics viewers etc : https://sunorbit.net/utils.htm Intro to gpu programming: https://sunorbit.net/gpu_prg.htm
much of the codes in astrophysics are still in Fortran, so here are Fortran to C-translators:
https://simulationcorner.net/index.php?page=if2c incomplete translator
Fortran to c++ : https://github.com/CalvinNeo/CFortranTranslator tries to maintane Fortran efficiency
the old f2c: https://netlib.org/f2c/
Python to C/Cpp translators (as with the Fortran to C translators there is still some manual editing necessary):
compiler/extensions:
Java to cpp:
Horizons System: https://ssd.jpl.nasa.gov Details of the objects in the Solar system except for the rise and set times. Contains also the orbital data of comets.
SIMBAD Astronomical DatabaseHeavens Above: https://www.heavens-above.com Rise and set times of Sun, Moon and planets. The azimuth of the rise and set times you find by setting the time to the rise or set and reading the value for the azimuth.
aavso: https://www.aavso.org/jd-calculator Convert to and from Julian dates.
The Sky Live: https://theskylive.com has the rise and set times of the Sun,Moon and planets. Contains the orbital details of comets.
http://www.dibonsmith.com/elements.htm Source of binary star orbits.
DSS Online Digitized Sky Survey