Proteus is a GPU accelerated moving mesh hydrodynamics code.
It combines the algorithmic approach of "Meshless Voronoi on the GPU" [Ray et. al 2018] with a moving mesh hydro solver similar to "AREPO" [Springel 2010] ported to GPU.
Note
The current version runs 2D/3D static/moving mesh hydrodynamics multithreaded on CPU, as well as on a single NVIDIA GPU. Optimizations are ongoing.
This project is being done during my master's thesis, supervised by Dylan Nelson, at the Institute of Theoretical Astrophysics, Heidelberg University.
- After cloning the repo select your system in
Makefile.systype(or add your own to theMakefile) - Configure compilation flags in
Config.shand build withmake - Use a
create.pyscript for IC generation and specify simulation parameters inparam.txt - Run the simulation with
./ProteusGPU [./ics/param.txt] [restart_flag]If the restart_flag is set the simulation continues from the last snapshot in the output_folder.
- HDF5 (
libhdf5-devon Ubuntu, via Homebrew on macOS) - CUDA Toolkit (for GPU mode, requires NVIDIA GPU)
- v0.1 - kNN and Voronoi mesh construction (2D and 3D, CPU)
- v0.2 - first order FV hydro (static mesh, 2D and 3D, CPU)
- v0.3 - second order FV hydro (static mesh, 2D and 3D, CPU)
- v0.4 - moving mesh hydro (2D, CPU)
- v0.5 - moving mesh hydro (3D, CPU)
- v0.6 - GPU initial port (moving mesh hydro)
- v0.7 - single GPU optimization
- v0.8 - multi-GPU, single node
- v0.9 - multi-node MPI
- v1.0 - support for inhomogenous particle distributions
