TSFC: a structure-preserving form compiler
arXiv:1705.03667 · doi:10.1137/17M1130642
Abstract
A form compiler takes a high-level description of the weak form of partial differential equations and produces low-level code that carries out the finite element assembly. In this paper we present the Two-Stage Form Compiler (TSFC), a new form compiler with the main motivation to maintain the structure of the input expression as long as possible. This facilitates the application of optimizations at the highest possible level of abstraction. TSFC features a novel, structure-preserving method for separating the contributions of a form to the subblocks of the local tensor in discontinuous Galerkin problems. This enables us to preserve the tensor structure of expressions longer through the compilation process than other form compilers. This is also achieved in part by a two-stage approach that cleanly separates the lowering of finite element constructs to tensor algebra in the first stage, from the scheduling of those tensor operations in the second stage. TSFC also efficiently traverses complicated expressions, and experimental evaluation demonstrates good compile-time performance even for highly complex forms.
Accepted version. 28 pages plus 5 pages supplement
References in corpus (4)
- Optimisations for quadrature representations of finite element tensors through automated code generation
- Automated code generation for discontinuous Galerkin methods
- High-performance Implementation of Matrix-free High-order Discontinuous Galerkin Methods
- Exposing and exploiting structure: optimal code generation for high-order finite element methods
Cited by in corpus (18)
- Thetis coastal ocean model: discontinuous Galerkin discretization for the three-dimensional hydrostatic equations
- An augmented Lagrangian preconditioner for the 3D stationary incompressible Navier-Stokes equations at high Reynolds number
- Higher-order compatible finite element schemes for the nonlinear rotating shallow water equations on the sphere
- Energy conserving upwinded compatible finite element schemes for the rotating shallow water equations
- Code generation for generally mapped finite elements
- Yet Another Tensor Toolbox for discontinuous Galerkin methods and other applications
- A study of vectorization for matrix-free finite element methods
- Slate: extending Firedrake's domain-specific abstraction to hybridized solvers for geoscience and beyond
- Maximum-principle-satisfying discontinuous Galerkin methods for incompressible two-phase immiscible flow
- The scaling and skewness of optimally transported meshes on the sphere
- A scalable and robust vertex-star relaxation for high-order FEM
- Composable block solvers for the four-field double porosity/permeability model
- Bringing Trimmed Serendipity Methods to Computational Practice in Firedrake
- Atomistically-informed continuum modeling and isogeometric analysis of 2D materials over holey substrates
- Compiling Diderot: From Tensor Calculus to C
- Variational multiscale modeling with discretely divergence-free subscales
- Full waveform inversion using triangular waveform adapted meshes
- UFL Dual Spaces, a proposal