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) = 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 setprob.data file that is read in where needed.
This test problem has been used in several other papers too.