N-Body literature:

http://www.scholarpedia.org/article/N-body_simulations_(gravitational) (behauptet keinen Inhalt zu haben, mit Tricks ist dann doch der Inhalt zu sehen)

http://www.scholarpedia.org/article/Computational_celestial_mechanics :

"The first numerical integrations of the solar system dynamics were performed at the end of last century. G.J. Sussman and J. Wisdom (MIT, USA) (1992 , Science, R.C-B) built the Digital Orrery, a computer devoted to the simulation of a planetary system. Their model ([SW]) was composed by the four giant planets (Jupiter, Saturn, Uranus, Neptune) and by Pluto. The numerical integration of the equations of motion gives that the external planets are essentially stable over a time of 845 million years, while Pluto shows a chaotic behavior. At the same time J. Laskar (Bureau des Longitudes, Paris) applied a numerical procedure based on Leverrier perturbation theory (see [L]). The results, also extended and refined in later works, concerned the dynamics of all planets except Pluto over an interval from -15 to +10 Gyr. The giant planets (from Jupiter to Neptune) are confirmed to be regular, a moderate chaotic behavior is observed for Venus and the Earth, while Mercury and Mars provide a definite chaotic dynamics with large excursions of the eccentricity of Mercury, possibly increasing beyond 0.6 in 5 Gyr. Laskar results show that one cannot make long predictions on the dynamics of the inner solar system: after 100 million years, an error of 15 meters in the initial position of the Earth leads to an error comparable to the Earth-Sun distance. On the other hand, T. Ito and K. Tanikawa, performing direct numerical integrations over +-4 Gyr, found an overall stability of the planetary motion with just a moderate chaotic diffusion of the eccentricity of Mercury. The contribution of general relativity was also considered and led to substantial changes as far as the perihelion frequency of Mercury is concerned. In contrast to the Newtonian model where large chaotic zones are observed, general relativity does not present orbits trapped in a g1=g2 resonance (i.e., a resonance between the frequencies of perihelion of Mercury and Jupiter). " (some non-printable characters replaced by R.C-B)

Java N-Body Code http://introcs.cs.princeton.edu/34nbody/

N-Body simulation https://www.cambridge.org/catalogue/catalogue.asp?isbn=0521432723

 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.html

https://wwwstaff.ari.uni-heidelberg.de/mitarbeiter/spurzem/lehre/SS17/cuda/nbody6++_manual.pdf    nbody6

https://assets.cambridge.org/97805211/21538/excerpt/9780521121538_excerpt.pdf

https://developer.nvidia.com/gpugems/gpugems3/part-v-physics-simulation/chapter-31-fast-n-body-simulation-cuda gpu code

https://patrickyoussef.com/blog/nbody/

nbody simulation : methods

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/

http://numerical.recipes/

N-Body starter code https://www.ias.edu/ids/~piet/act/comp/algorithms/starter/nbody_sh1

https://cs.brown.edu/courses/csci1950-v/asgn/nbody.pdf

python code https://github.com/hsspratt/Solar-system-nbody

https://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.htm

MERCURY 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


FLASH Flash consortium galactic dynamics, accretion discs, star formation different solvers for gravity: multigrid, tree, …

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.html 

midpoint 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 codes

Quad datatype: https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format  some doubledouble: https://www.davidhbailey.com/dhbsoftware/



Astrophysics source code:

C# Astronomy Library which allows calculations of any date after noon on 1 January, 4713 BC [Scaliger: das kleinste gemeinsame Vielfache von Mondzyklus (19 Jahre), Sonnenzyklus (28 Jahre) und der Indiktion (15 Jahre) ]: https://github.com/GoodOlClint/Astronomy falls Sie einen weiteren Bereich benötigen oder in andere Kalender (chinesische, persisch/iranische!, maya, modifiziert Julianisches Datum...) umrechnen möchten : https://mathematikalpha.de/wp-content/uploads/2017/01/23-Kalenderrechnung.pdf  oder https://en.wikipedia.org/wiki/Calendrical_calculation oder https://reingold.co/cc2-paper.pdf oder https://algorist.com/problems/Calendrical_Calculations.html mit etwas längerer Wartezeit können Sie hier: https://dokumen.pub/qdownload/calendrical-calculations-the-ultimate-edition-1107057620-9781107057623.html calendrical-calculations-the-ultimate-edition herunterladen. Weitere libs: http://meteora.ucsd.edu/~pierce/calcalcs/background.html oder https://www.muquit.com/muquit/software/libcalen/libcalen.html oder https://www.iausofa.org/sofa_ts_c.pdf Holocene calendar: https://en.wikipedia.org/wiki/Holocene_calendar Peter Meyers Kalenderseiten: https://www.hermetic.ch/cal_stud/lunarcal/typesg.htm McKenna-Meyer-Göttinnenkalender: https://multi-calendar.de/Multi/Kalender/goddesslunarcalendar 

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):

the above mentioned HOPE - ease of Python and the speed of C++ https://cosmology.ethz.ch/research/software-lab/HOPE.html

Online converters, such as the JavaInUse compiler

Python to c++ 'transpiler': https://github.com/lukasmartinelli/py14

 

compiler/extensions:

Cython compiler is a C extension into Python github: https://github.com/cython/cython

Pytocs https://github.com/uxmal/pytocs to c#

Transcrypt. can transform Python code to C++ with a straightforward command line interface

Nukita is a compiler that can convert a Python code into C/C++

 

Java to cpp:

Java to cpp: https://github.com/arnetheduck/j2c

 

 

 

Data:

 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 Database

NED (NASA Extragalactic Database)

ESO (European Southern Observatory) Archive

NSSDC (National Space Science Data Center)

PDS (Planetary Data System)

Heavens 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.

MPC's MPCORB.DAT 

Lowell's astorb.dat.

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

MAST (Mikulski Archive for Space Telescopes)

HLA (Hubble Legacy Archive)

IRSA (Infrared Science Archive)

2MASS (Two Micron All Sky Survey, also via IRSA)

HSA (Herschel Science Archive)

HEASARC (High Energy Astrophysics Archive Research Center)

LAMBDA (Legacy Archive for Microwave Background Data Analysis)

Exoplanet Archives:

NASA Exoplanet Archive

Extrasolar Planet Encyclopaedia

Exoplanet Transit Database (ETD)