N-body code: Gravity solver + Integrator Gravity solver must be fast and handle close encounters Special hardware (N 2 ): Grape, GPS Tree (N log N): PKDGRAV, Gadget Integrator must take a large time step with good accuracy Bulirsch-Stoer Hermite: often used with Grape Mixed Variable Symplectic (MVS) integrators: SYMBA, Mercury This work: Implementation of SYMBA to PKDGRAV
Developed by Stadel (2001) Source is open in The astro-code wiki Tree gravity: 4 th order multiple moments Adaptive to various parallel environments (shared memory, mpi) Different functions and integrators Collisions (Richardson et al. 2000) SPH (Wadsley et al. 2004) Fragmentation (Leinhardt & Richardson 2005) SYMBA integrator (Morishima et al. 2010)
Up to 4 th order (Hexadecapole) Error estimation from cosmological simulations
k-D TreeSpatial binary tree Spatial binary tree can reduce the higher order multi-pole moments It is also as efficient as k-D tree in neighboring search.
Mater layer Controls overall flows of program Processor Set Tree (PST) layer Assigns tasks to processors Parallel KD layers Executes tasks in each core Machine dependent layers Interface to parallel primitives (e.g. MPI) call One needs to understand PST format but not parallel primitives such as MPI call
Specialized for systems with a massive central body Mixed variables: Cartesian and Keplerian co-ordinates A large time step along Keplerian orbit Time-reversible (no secular error) Handling close encounters: SYMBA (Duncan et al. 1998) Mercury (Chambers 1999) Most of N-body simulations for planet formation have been performed by these two codes in last decade But both codes use N 2 gravity calculations
Democratic co-ordinate Heliocentric position + barycentric velocity H kep >>H int (if there is no close encounter) H kep >>H sun
Potential (or Force) decomposition based on mutual distance normalized by the Hill radius A higher order potential component is calculated with a small block-sized time step Kick (F 0 ) Kepler Drift with F 1
The time step size needs to be determined by the minimum mutual distance during particle drift. This distance must be estimated by using particle co- ordinates at the beginning and ending of particle drift symmetrically (e.g. Hut et al. 1995).
1. Half kick ( 0 /2) due to Sun’s motion 2. Half Kick ( 0 /2) due to force F 0 from other particles 3. Kepler drift ( 0 ) for all particles 4. Tree build and neighboring search (after drift) 5. Particles in close encounters 1. Sent back to pre-drift positions and velocities 2. Put into a single core (domain decomposition) 3. SYMBA multiple time stepping 4. Collisions are also handled here 6. Tree build and gravity calculation and neighboring search (before drift) 7. 2 and 1