PUSPH is a open-source SPH solver that is optimized to run on multi-node multi-GPU clusters. It features a wide variety of different boundary conditions and physics. The code is developed jointly by several universities and industrial partners. I am currently involved in developing the semi-analytical boundaries that are part of this code. In particular I am implementing open boundaries to simulate in- and outflow.
The website www.gpusph.org
provides further information and the possibility to download the code.