Gravitational dynamics with AMUSE Simon Portegies Zwart Sterrewacht Leiden Gravitational dynamics with AMUSE Simon Portegies Zwart Sterrewacht Leiden AMUSE http://amusecode.org Layers having ● Python Script different roles Manager Written in C/C++, ● Particles Units Java Fortran and Community module Python GD HD SE RT Parentproxy pair MPI C/C++ code Fortran Code > from amuse.lab import * > bodies = Salpeter(N, Mmin, Mmax) Initialize > gravity = ph4() > gravity.add_particles(bodies) > gravity.evolve_model(t_end) Evolve > write_to_file(gravity, “bodies.hdf5”) Store data Nbody algorithms Why Nbody methods? • Free of assumptions • Allow one to study interesting problems • Physics is simple • Mathematics is simple • Computational methods are complex • Methods are applicable in other disciplines (e.g. plasma physics, molecular dynamics) 16431727 − r r n ∑ i j = G m m F i i j=1 j 3 ∣ ∣ − r r i j How are these results computed? Motion of individual particles given by Newton’s Laws Forces computed from Newton’s Law of Gravity “Just” have to solve two coupled ODEs, plus evaluate forces. Modeling Cluster Dynamics Continuum methods gas sphere (Bettwieser & Sugimoto, Spurzem) direct FokkerPlanck (Cohn, Takahashi) Particle methods Nbody “brute force”(Aarseth; NBODY6++; Starlab, pGC) Tree code (Barnes & Hut, Gadget) direct MonteCarlo (Henon, Spitzer; Freitag, Giersz, Heggie, Rasio) hybrid MonteCarlo (Giersz & Spurzem)
Description: