PDExa: Research directions and software
The project PDExa develops novel software technologies for the simulation of partial differential equations on exascale supercomputers. Our contributions are added to the widely used open-source projects listed below, splitting the efforts into the development of mathematical concepts for finite-element methods, solvers for the application in the context of computational fluid dynamics (CFD), and linear algebra tools.
The deal.II finite element library
deal.II is a C++ software library supporting the creation of finite element codes and an open community of users and developers, hosted on github.com/dealii/dealii and with extensive online documentation at dealii.org. It aims to provide well-document high-performance building blocks for a broad variety of PDEs from laptops to supercomputer.
The application code ExaDG
ExaDG is hosted on github.com/exadg/exadg and aims to provide next generation's fluid dynamics solvers by the use of novel discretization techniques (discontinuous Galerkin methods) and efficient matrix-free algorithms leading to fast PDE solvers. ExaDG's core module is a high-performance incompressible Navier-Stokes solver. The project targets scale-resolving simulations of turbulent flows (LES and DNS) with unprecendented accuracy and computational efficiency. LES solvers have fallen behind the expectations in providing efficient solvers applicable to industrial problems, and still require a huge amount of computational resources and simulation time. At the same time, computer hardware has undergone a significant evolution over the last decades towards multicore chips with increasing SIMD parallelism and increasing Flop-to-Byte ratio. ExaDG wants to relax the limitations of state-of-the-art CFD software by innovative concepts from computer science, mathematics, and numerical discretization methods.
ExaDG's range of applicability also covers coupled flow-transport problems, moving domains and meshes, fluid-structure interaction, and compressible flows. There will be a continued effort in broadening ExaDG's range of applicability towards a general-purpose CFD software. ExaDG is highly-efficient on structured and unstructured meshes for high-order approximation spaces through the use of on-the-fly matrix-free evaluation of discretized operators. In the context of this project, ExaDG's capabilities are extended from conforming meshes composed of quadrilateral/hexahedral elements towards dynamic adaptivity and simplicial meshes.
The Ginkgo library
Ginkgo is a high-performance linear algebra library for manycore systems, with a focus on solution of sparse linear systems. It is implemented using modern C++ (you will need at least a C++14 compliant compiler to build it), with GPU kernels implemented in CUDA (for NVIDIA devices), HIP (for AMD devices) and SYCL/DPC++ (for Intel devices and other supported hardware). It is hosted on github.com/ginkgo-project/ginkgo. For further information, see Ginkgo's web page.