src/Inciter/DiagCG.hpp file

DiagCG for a PDE system with continuous Galerkin without a matrix.


DiagCG advances a system of partial differential equations (PDEs) using continuous Galerkin (CG) finite element (FE) spatial discretization (using linear shapefunctions on tetrahedron elements) combined with a time stepping scheme that is equivalent to the Lax-Wendroff (LW) scheme within the unstructured-mesh FE context and treats discontinuities with flux-corrected transport (FCT). The left-hand side (lumped-mass) matrix is diagonal thus this scheme does not use a matrix-based linear solver.

There are a potentially large number of DiagCG Charm++ chares created by Transporter. Each DiagCG gets a chunk of the full load (part of the mesh) and does the same: initializes and advances a number of PDE systems in time.

The implementation uses the Charm++ runtime system and is fully asynchronous, overlapping computation and communication. The algorithm utilizes the structured dagger (SDAG) Charm++ functionality. The high-level overview of the algorithm structure and how it interfaces with Charm++ is discussed in the Charm++ interface file src/Inciter/


namespace inciter
Inciter declarations and definitions.


class inciter::DiagCG
DiagCG Charm++ chare array used to advance PDEs in time with DiagCG+LW+FCT.