English

Firedrake: automating the finite element method by composing abstractions

Mathematical Software 2017-01-06 v3 Numerical Analysis Numerical Analysis

Abstract

Firedrake is a new tool for automating the numerical solution of partial differential equations. Firedrake adopts the domain-specific language for the finite element method of the FEniCS project, but with a pure Python runtime-only implementation centred on the composition of several existing and new abstractions for particular aspects of scientific computing. The result is a more complete separation of concerns which eases the incorporation of separate contributions from computer scientists, numerical analysts and application specialists. These contributions may add functionality, or improve performance. Firedrake benefits from automatically applying new optimisations. This includes factorising mixed function spaces, transforming and vectorising inner loops, and intrinsically supporting block matrix operations. Importantly, Firedrake presents a simple public API for escaping the UFL abstraction. This allows users to implement common operations that fall outside pure variational formulations, such as flux-limiters.

Keywords

Cite

@article{arxiv.1501.01809,
  title  = {Firedrake: automating the finite element method by composing abstractions},
  author = {Florian Rathgeber and David A. Ham and Lawrence Mitchell and Michael Lange and Fabio Luporini and Andrew T. T. McRae and Gheorghe-Teodor Bercea and Graham R. Markall and Paul H. J. Kelly},
  journal= {arXiv preprint arXiv:1501.01809},
  year   = {2017}
}

Comments

Minor revisions to v2

R2 v1 2026-06-22T07:54:56.477Z