A Fast Monotone Discretization of the Rotating Shallow Water Equations
AbstractThis paper presents a new discretization of the rotating shallow water
equations and a set of decisions, ranging from a simplification of the
continuous equations down to the implementation level, yielding a code
that is fast and accurate. Accuracy is reached by using WENO
reconstructions on the mass flux and on the nonlinear Coriolis term. The
results show that the build-in mixing and dissipation, provided by the
discretization, allow a very good material conservation of potential
vorticity and a minimal energy dissipation. Numerical experiments are
presented to assess the accuracy, which include a resolution
convergence, a sensitivity on the the free-slip vs. no-slip boundary
conditions, a study on the separation of waves from vortical motions.
Speed is achieved by a series of choices rather than a single recipe.
The main choice is to discretize the covariant form written in index
coordinates. This form, rooted in the discrete differential geometry,
removes most of the grid scale terms from the equations, and keep them
only where they should be. The model objects appearing in resulting
continuous equations have a natural correspondence with the grid cell
features. The other choices are guided by the maximization of the
arithmetic intensity. Finally this paper also proves that a pure Python
implementation is not only possible but also very fast, thanks to the
possibility of having compiled Python. As a result, the code performs 2
TFlop per second using thousand cores.