TL;DR
This paper presents C++ metaprogramming techniques to accelerate linear solvers for Stokes problems, achieving significant speedups and memory savings in finite element computations.
Contribution
It introduces a policy-based design and partial template specialization in C++ to enhance solver flexibility and performance without code changes.
Findings
Up to 4x speedup in solver performance.
40% reduction in memory footprint.
Effective acceleration of iterative solvers for Stokes problems.
Abstract
The efficient solution of large sparse saddle point systems is very important in computational fluid mechanics. The discontinuous Galerkin finite element methods have become increasingly popular for incompressible flow problems but their application is limited due to high computational cost. We describe the C++ programming techniques that may help to accelerate linear solvers for such problems. The approach is based on the policy-based design pattern and partial template specialization, and is implemented in the open source AMGCL library. The efficiency is demonstrated with the example of accelerating an iterative solver of a discontinuous Galerkin finite element method for the Stokes problem. The implementation allows selecting algorithmic components of the solver by adjusting template parameters without any changes to the codebase. It is possible to switch the system matrix to use…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
