Fast and accurate shallow water simulations are vital for predictions on flooding, tsunamis, storm surges, and dam breaks, and we have developed a state-of-the-art simulator running on GPUs. Our simulator has been validated against the 1959 Malpasset dam break in south-eastern France, showing its ability to accurately predict real-world events.
The shallow water equations are a set of hyperbolic partial differential equations, consisting of three coupled equations. They describe the time-dependent motion of a free water surface under the influence of gravity, and can be used to simulate events such as dam breaks, tsunamis, floods, and storm surges, by adding source terms for bed slope and bed friction.
Because the equations are hyperbolic, we can use explcit time-stepping methods to evolve the solution in time instead of implicit methods. While implicit methods rely on efficient implementations of linear algebra operations, explicit methods reduce the problem to a set of stencil operations that are embarrassingly parrallel, and thus well suited for the execution method of GPUs. However, there is a trade-off, since explicit methods do not allow as large time-step sizes as implicit methods.
Our shallow water simulator implements the Kurganov-Petrova scheme, which is a second-order accurate well-balanced finite volume scheme with central-upwind fluxes. The scheme furthermore supports dry-states in a way well suited for GPUs. When implemented on the GPU, our simulator achieves faster-than-real-time performance, as illustrated in the video bellow.