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 3D moving mesh hydrodynamics on NVIDIA GH200 as well as discrete NVIDIA GPUs. A multithreaded CPU version, 2D and static meshes are supported. 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
