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 setrun.py).

Topography: *B*(*x*, *y*) = *h*_{0}((*x*^{2} + *y*^{2}) ⁄ *a*^{2} − 1),

Depth: *h*(*x*, *y*, *t*) = max(0, (*σ**h*_{0} ⁄ *a*^{2})(2*x*cos(*ω**t*) + 2*y*sin(*ω**t*) − *σ*) − *B*(*x*, *y*))

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

where *ω* = √(2*gh*_{0}) ⁄ *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 setprob.data 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.