1: \begin{abstract}
2: 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
3: 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
4: 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
5: 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
6: it possible, e.g., to exchange the discretization scheme without having to rewrite all low-level optimized routines manually.
7: 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
8: approach from the ExaStencils project that starts from the continuous problem formulation, moves to the discrete scheme, spells out the numerical algorithms, and, finally,
9: maps to a representation that can be transformed to a distributed memory parallel implementation by our in-house Scala-based source-to-source compiler.
10: Our contributions include: A~new quadrature-free discontinuous Galerkin formulation, an~extension of the class of supported computational grids, and an~extension of
11: our toolchain allowing to evaluate discrete integrals stemming from the DG discretization implemented in Python.
12: As first results we present the whole toolchain and also demonstrate the convergence of our method for higher order DG discretizations.
13: %
14: \keywords{shallow water equations \and local discontinuous Galerkin discretization \and mixed formulation \and quadrature-free \and domain specific languages \and python \and code generation}
15: \end{abstract}
16: