TL;DR
Firedrake automates finite element PDE solutions through a Python-based abstraction framework, enabling flexible, optimized, and extensible scientific computing with a clear separation of concerns.
Contribution
It introduces a Python-centric implementation of the FEniCS domain-specific language, enhancing modularity, optimization, and user extensibility in finite element computations.
Findings
Supports automatic optimizations like loop vectorization and block matrix operations
Provides a simple API for custom operations outside variational formulations
Facilitates collaboration among computer scientists, numerical analysts, and application specialists
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
