Sloshing water in a parabolic bowl

Waves in a parabolic bowl with a flat surface sloshing around. An exact analytic solution is known in which the surface stays flat.

To create the topo file before running the code:

make topo

In this code, x and y are in meters (coordinate_system=1 in

Topography: B(x, y) = h0((x2 + y2) ⁄ a2 − 1),

Depth: h(x, y, t) = max(0, (σh0 ⁄ a2)(2xcos(ωt) + 2ysin(ωt) − σ) − B(x, y))

Velocities: u(x, y, t) =  − σωsin(ωt),  v(x, y, t) = σωcos(ωt).

where ω = (2gh0) ⁄ a.

The period of oscillation is T = 2π ⁄ ω.

The following parameters are currently hardwired several places:

a = 1, σ = 0.5, h = 0.1, g = 9.81

This should be cleaned up: better to put them in a file that is read in where needed.


  • W. C. Thacker, Some exact solutions to the nonlinear shallow water wave equations, J. Fluid Mech. 107 (1981), 499-508.
  • J.M. Gallardo, C. Pares, and M. Castro, On a well-balanced high-order finite volume scheme for shallow water equations with topography and dry areas, J. Comput. Phys. 227(2007) 574-601.
  • Y. Xing, X. Zhang and C.-W. Shu, Positivity preserving high order well balanced discontinuous Galerkin methods for the shallow water equations , Advances in Water Resources 33 (2010), pp. 1476-1493.

This test problem has been used in several other papers too.