Firedrake: automating the finite element method by composing abstractions
File(s)a24-rathgeber.pdf (1.36 MB)
Published version
Author(s)
Type
Journal Article
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.
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.
Date Issued
2017-01-01
Date Acceptance
2016-09-01
Citation
ACM Transactions on Mathematical Software, 2017, 43 (3), pp.1-27
ISSN
1557-7295
Publisher
Association for Computing Machinery
Start Page
1
End Page
27
Journal / Book Title
ACM Transactions on Mathematical Software
Volume
43
Issue
3
Copyright Statement
This work is licensed under a Creative Commons Attribution International 4.0 License.
License URL
Sponsor
Engineering & Physical Science Research Council (EPSRC)
Natural Environment Research Council (NERC)
Engineering & Physical Science Research Council (EPSRC)
Natural Environment Research Council (NERC)
Natural Environment Research Council (NERC)
Engineering & Physical Science Research Council (EPSRC)
Engineering & Physical Science Research Council (EPSRC)
Identifier
http://arxiv.org/abs/1501.01809
Grant Number
EP/I00677X/1
NE/I021098/1
EP/I012036/1
NE/K008951/1
NE/K006789/1
EP/L000407/1
EP/M011054/1
Subjects
Science & Technology
Technology
Physical Sciences
Computer Science, Software Engineering
Mathematics, Applied
Computer Science
Mathematics
Abstraction
code generation
UFL
PARALLEL
cs.MS
cs.MS
cs.NA
math.NA
G.1.8; G.4
Numerical & Computational Mathematics
0802 Computation Theory and Mathematics
0806 Information Systems
Publication Status
Published
Article Number
ARTN 24
Date Publish Online
2016-12-21