Skip to main content

Research Repository

Advanced Search

Firedrake: automating the finite element method by composing abstractions

Rathgeber, Florian; Ham, David A.; Mitchell, Lawrence; Lange, Michael; Luporini, Fabio; Mcrae, Andrew T.T.; Bercea, Gheorghe-Teodor; Markall, Graham R.; Kelly, Paul H.J.

Firedrake: automating the finite element method by composing abstractions Thumbnail


Authors

Florian Rathgeber

David A. Ham

Lawrence Mitchell

Michael Lange

Fabio Luporini

Andrew T.T. Mcrae

Gheorghe-Teodor Bercea

Graham R. Markall

Paul H.J. Kelly



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 centered on the composition of several existing and new abstractions for particular aspects of scientific computing. The result is a more complete separation of concerns that 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 optimizations. This includes factorizing mixed function spaces, transforming and vectorizing 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 of pure variational formulations, such as flux limiters.

Citation

Rathgeber, F., Ham, D. A., Mitchell, L., Lange, M., Luporini, F., Mcrae, A. T., …Kelly, P. H. (2017). Firedrake: automating the finite element method by composing abstractions. ACM Transactions on Mathematical Software, 43(3), Article 24. https://doi.org/10.1145/2998441

Journal Article Type Article
Acceptance Date Sep 15, 2016
Online Publication Date Dec 22, 2016
Publication Date Jan 16, 2017
Deposit Date Aug 1, 2018
Publicly Available Date Aug 2, 2018
Journal ACM Transactions on Mathematical Software
Print ISSN 0098-3500
Electronic ISSN 1557-7295
Publisher Association for Computing Machinery (ACM)
Peer Reviewed Peer Reviewed
Volume 43
Issue 3
Article Number 24
DOI https://doi.org/10.1145/2998441
Related Public URLs https://arxiv.org/pdf/1501.01809.pdf

Files




You might also like



Downloadable Citations