GADGET is a freely available code for cosmological N-body/SPH simulations on massively parallel computers with distributed memory. GADGET uses an explicit communication model that is implemented with the standardized MPI communication interface. The code can be run on essentially all supercomputer systems presently in use, including clusters of workstations or individual PCs. GADGET computes gravitational forces with a hierarchical tree algorithm (optionally in combination with a particle-mesh scheme for long-range gravitational forces) and represents fluids by means of smoothed particle hydrodynamics (SPH). The code can be used for studies of isolated systems, or for simulations that include the cosmological expansion of space, both with or without periodic boundary conditions. In all these types of simulations, GADGET follows the evolution of a self-gravitating collisionless N-body system, and allows gas dynamics to be optionally included. Both the force computation and the time stepping of GADGET are fully adaptive, with a dynamic range which is, in principle, unlimited.
GADGET can therefore be used to address a wide array of astrophysically interesting problems, ranging from colliding and merging galaxies, to the formation of large-scale structure in the Universe. With the inclusion of additional physical processes such as radiative cooling and heating, GADGET can also be used to study the dynamics of the gaseous intergalactic medium, or to address star formation and its regulation by feedback processes. Features Hierarchical multipole expansion (based on a geometrical oct-tree) for gravitational forces. Optional TreePM method, where the tree is used for short-range gravitational forces only while long-range forces are computed with a FFT-based particle-mesh (PM) scheme. A second PM layer can be placed on a high-resolution region in 'zoom'-simulations. Periodic boundary conditions, either by means of the Ewald summation technique or based on the FFT algorithm used in the TreePM scheme. Simulations that only follow gas dynamics without self-gravity can be run in periodic boxes with arbitrary aspect ratios, and also in 2D, if desired.
Smoothed particle hydrodynamics with fully adaptive smoothing lengths and a novel entropy conserving formulation of SPH. Signal-velocity parameterisation of the artificial viscosity, as suggested by Monaghan. Individual timesteps for all particles. In the TreePM scheme, long-range and short-range forces are integrated with different timesteps. Work-load balanced domain decomposition and dynamic tree updates. Efficient cell-opening criteria for the gravitational tree-walk. Support for parallel I/O and a number of different output formats, including the HDF5 format. Flexible control of all code options by a free-format parameterfile. Portable, well documented and easily extendible code, relying only on standard ANSI C language features and MPI-1.0 communication calls. High raw computational speed and comparatively low memory consumption. In particular, significant improvements in resource consumption compared with GADGET-1 have been achieved. The code may be run on an arbitrary number of processors, with a restriction to powers of two. It may also be run on a single CPU in serial mode. Fast method for the generation of a gravitational `glass'. SPH simulations can be run in periodic boxes of arbitrary aspect ratio, or in 2D, if desired. There have also been older versions of the code that supported the special-purpose hardware GRAPE, in the form of GRAPE-3 and GRAPE-6.
However, this functionality is not included in the current version at the moment. Authors and History GADGET has been written by Volker Springel over the last couple of years. The first public version (GADGET-1, released in March 2000), was created as part of Volker's PhD project at the Max-Planck-Institute for Astrophysics, Garching, Germany, under the supervision of Simon White. Later, the code was continuously impoved during postdocs of Volker Springel at the CfA and the MPA, in collaboration with Simon White and Lars Hernquist. The second public version (GADGET-2, released in May 2005), contains most of these improvements, except the numerous physics modules developed for the code that go beyond gravity and ordinary gas-dynamics. The first versions of the code in 1998 were originally designed for serial machines only, targeting primarily problems of galaxy collisions and interactions, which explains GADGET's somewhat contrived acronym. The parallel tree code was also developed during the year 1998, with the first parallel version of SPH added during the end of 1999. For the latter part, Naoki Yoshida (at the time another PhD-student at MPA) joined Volker Springel's efforts, and helped developing and testing the parallel SPH algorithms. In 2001-2003, GADGET-2 was created. The new code forms a nearly complete rewrite of GADGET-1, including a replacement of all core algorithms with new methods. The most important changes lie in a new time integration model, a new tree-code module, a new communication scheme for gravitational and SPH forces, a new domain decomposition strategy, a novel SPH formulation based on entropy as indepedent variable, and finally, in the addition of the TreePM functionality. Acknowledgments The author acknowledges many helpful discussions he had with Simon White, Lars Hernquist, Naoki Yoshida, Klaus Dolag, Liang Gao, Martin Jubelgas, Debora Sijacki, Christoph Pfrommer, Stefano Borgani, Martin White, Adrian Jenkins, Jasjeet Bagla, Matthias Steinmetz, and Julio Navarro.