Optimizing the Evaluation of Finite Element Matrices
arXiv:1205.2980 · doi:10.1137/040607824
Abstract
Assembling stiffness matrices represents a significant cost in many finite element computations. We address the question of optimizing the evaluation of these matrices. By finding redundant computations, we are able to significantly reduce the cost of building local stiffness matrices for the Laplace operator and for the trilinear form for Navier-Stokes. For the Laplace operator in two space dimensions, we have developed a heuristic graph algorithm that searches for such redundancies and generates code for computing the local stiffness matrices. Up to cubics, we are able to build the stiffness matrix on any triangle in less than one multiply-add pair per entry. Up to sixth degree, we can do it in less than about two. Preliminary low-degree results for Poisson and Navier-Stokes operators in three dimensions are also promising.
Cited by in corpus (15)
- Firedrake: automating the finite element method by composing abstractions
- A compiler for variational forms
- Optimisations for quadrature representations of finite element tensors through automated code generation
- Efficient Assembly of H(div) and H(curl) Conforming Finite Elements
- Automating the Finite Element Method
- Automated code generation for discontinuous Galerkin methods
- Numerical integration on GPUs for higher order finite elements
- Efficient Compilation of a Class of Variational Forms
- COFFEE: an Optimizing Compiler for Finite Element Local Assembly
- A FEniCS-Based Programming Framework for Modeling Turbulent Flow by the Reynolds-Averaged Navier-Stokes Equations
- Finite element numerical integration for first order approximations on multi-core architectures
- Topological Optimization of the Evaluation of Finite Element Matrices
- Code generation for generally mapped finite elements
- Benchmarking Domain-Specific Compiler Optimizations for Variational Forms
- Fast hardware-aware matrix-free algorithm for higher-order finite-element discretized matrix multivector products on distributed systems