GPU Fluid Simulation using Position Based Fluids
Here is a new fluid simulation on GPU based on the PBD framework (Position Based Dynamics) that improves the SPH alogrithm by enforcing the fluid incompressibility. Position Based Fluids will be presented at SIGGRAPH 2013 and the whitpaper can be downloaded from THIS PAGE.
Position Based Dynamics (chapter 2):
Position Based Dynamics [Muller et al. 2007] provides a method for simulating dynamics in games based on Verlet integration. It solves a system of non-linear constraints using Gauss-Seidel iteration by updating particle positions directly. By eschewing forces, and deriving momentum changes implicitly from the position updates, the typical instabilities associated with explicit methods are avoided.
In fluid simulation, enforcing incompressibility is crucial for realism; it is also computationally expensive. Recent work has improved efficiency, but still requires time-steps that are impractical for real-time applications. In this work we present an iterative density solver integrated into the Position Based Dynamics framework (PBD). By formulating and solving a set of positional constraints that enforce constant density, our method allows similar incompressibility and convergence to modern smoothed particle hydrodynamic (SPH) solvers, but inherits the stability of the geometric, position based dynamics method, allowing large time steps suitable for real-time applications. We incorporate an artificial pressure term that improves particle distribution, creates surface tension, and lowers the neighborhood requirements of traditional SPH. Finally, we address the issue of energy loss by applying vorticity confinement as a velocity post process.