src/Inciter/ALECG.hpp file

ALECG for a PDE system with continuous Galerkin + ALE + RK.


ALECG advances a system of partial differential equations (PDEs) using a continuous Galerkin (CG) finite element (FE) spatial discretization (using linear shapefunctions on tetrahedron elements) combined with a Runge-Kutta (RK) time stepping scheme in the arbitrary Eulerian-Lagrangian reference frame.

There are a potentially large number of ALECG Charm++ chares created by Transporter. Each ALECG 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.

ALE time-stepping is performed in an unsplit fashion, as opposed to Lagrange + remap. See also J. Waltz, N.R. Morgan, T.R. Canfield, M.R.J. Charest, L.D. Risinger, J.G. Wohlbier, A three-dimensional finite element arbitrary Lagrangian–Eulerian method for shock hydrodynamics on unstructured grids, Computers & Fluids, 92: 172-187, 2014.

The implementation uses the Charm++ runtime system and is fully asynchronous, overlapping computation and communication. The algorithm utilizes the structured dagger (SDAG) Charm++ functionality.


namespace inciter
Inciter declarations and definitions.


class inciter::ALECG
ALECG Charm++ chare array used to advance PDEs in time with ALECG+RK.