  The shallow water equations (SWE) are a commonly used model to study
tsunamis, tides, and coastal ocean circulation. However, there exist various
approaches to discretize and solve them efficiently. Which of them is best for
a certain scenario is often not known and, in addition, depends heavily on the
used HPC platform. From a simulation software perspective, this places a
premium on the ability to adapt easily to different numerical methods and
hardware architectures. One solution to this problem is to apply code
generation techniques and to express methods and specific hardware-dependent
implementations on different levels of abstraction. This allows for a
separation of concerns and makes it possible, e.g., to exchange the
discretization scheme without having to rewrite all low-level optimized
routines manually. In this paper, we show how code for an advanced
quadrature-free discontinuous Galerkin (DG) discretized shallow water equation
solver can be generated. Here, we follow the multi-layered approach from the
ExaStencils project that starts from the continuous problem formulation, moves
to the discrete scheme, spells out the numerical algorithms, and, finally, maps
to a representation that can be transformed to a distributed memory parallel
implementation by our in-house Scala-based source-to-source compiler. Our
contributions include: A new quadrature-free discontinuous Galerkin
formulation, an extension of the class of supported computational grids, and an
extension of our toolchain allowing to evaluate discrete integrals stemming
from the DG discretization implemented in Python. As first results we present
the whole toolchain and also demonstrate the convergence of our method for
higher order DG discretizations.
