Skip to content

GraviDy: Gravitational Dynamics -- A GPU modular, parallel direct-summation N−body integrator

License

Notifications You must be signed in to change notification settings

cmaureir/gravidy

Repository files navigation

GraviDy - Gravitational Dynamics

Build Status

The astrophysics "N-body problem" consist in a dynamical N celestial bodies model which interact gravitationally.

Solving this problem implies understand and predict the movement of the system components, for example, the Solar System, a stars cumulus, or a galaxy.

To systems with more than 3 bodies, which are most of the interesting astronomical systems, the problem do not have an analytic solution, and it is necessary to use computational methods, which are progresively more expensives to largest values of N.

GraviDy is a new GPU, direct-summation N-body integrator written from scratch and based on the Hermite scheme. The most important features of the code are:

  • Written in C/C++,
  • Using parallel computing techniques and libraries like OpenMP, MPI and CUDA,
  • full double-precision resolution,
  • its high modularity, which allows users to readily introduce new physics into it,
  • the exploitation of all high-performance computing resources available,
  • its maintenance and improvement cycle,
  • the fact that the code is publicly released under a BSD license and will be maintained via planned, public, regular updates.

Publication reference

Maureira-Fredes, C and Amaro-Seoane, P. "GraviDy, a GPU modular, parallel direct-summation N−body integrator: Dynamics with softening", MNRAS, vol. 473, pp. 3113-3127, Jan . 2018.

Requirements

Software Version Description
GCC v4.4.7 or greater Compiler
boost::program_options v1.52.0 or greater command-line options
OpenMPI v1.8.8 or greater MPI implementation
CUDA v5.5 or greater GPU implementation

Install

Enter the src directory and proceed to edit the Makefile with the Boost, CUDA and OpenMPI paths if they are not installed on the system, otherwise the flags are not needed.

Every version can be generated by:

  • CPU version
    • make pn
  • MPI version
    • make mpi
  • GPU version
    • make gpu

demo

Input submodule

The example initial conditions are in a different git respository, that it can be cloned through the setup-submodule script, in the root of the repository. If you do not have a Gitlab account, you can clone the repository directly:

git clone https://gitlab.com/cmaureir/gravidy-input.git

Example execution

demo

Licence

Copyright 2014 Cristián Maureira-Fredes

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

About

GraviDy: Gravitational Dynamics -- A GPU modular, parallel direct-summation N−body integrator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published