SoftwareX (Jan 2022)

Quail: A lightweight open-source discontinuous Galerkin code in Python for teaching and prototyping

  • Eric J. Ching,
  • Brett Bornhoft,
  • Ali Lasemi,
  • Matthias Ihme

Journal volume & issue
Vol. 17
p. 100982

Abstract

Read online

In this paper, we present Quail, a lightweight discontinuous Galerkin solver written in Python. The aim of this code is to serve not only as a teaching tool for newcomers to the rapidly growing field, but also as a prototyping platform for testing algorithms, physical models, and other features in the discontinuous Galerkin framework. Code readability, modularity, and ease of use are emphasized. Currently, Quail solves first- and second-order partial differential equations on 1D and 2D unstructured meshes. A variety of time stepping schemes, quadrature rules, basis types, equation sets, and other features are included. The structure and capabilities of the code, as well as representative examples involving propagation of a 2D isentropic vortex and a 2D Riemann problem with a gravity source term, will be discussed.

Keywords