Firedrake: automating the finite element method by composing abstractions
arXiv:1501.01809 · doi:10.1145/2998441
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.
Minor revisions to v2
References in corpus (3)
Cited by in corpus (116)
- MOOSE: Enabling Massively Parallel Multiphysics Simulation
- Construction of arbitrary order finite element degree-of-freedom maps on polygonal and polyhedral cell meshes
- Devito (v3.1.0): an embedded domain-specific language for finite differences and geophysical exploration
- Thetis coastal ocean model: discontinuous Galerkin discretization for the three-dimensional hydrostatic equations
- Fast matrix-free evaluation of discontinuous Galerkin finite element operators
- LFRic: Meeting the challenges of scalability and performance portability in Weather and Climate models
- preCICE v2: A Sustainable and User-Friendly Coupling Library
- Multiscale finite element calculations in Python using SfePy
- Topology optimization for the design of porous electrodes
- An augmented Lagrangian preconditioner for the 3D stationary incompressible Navier-Stokes equations at high Reynolds number
- OpenSBLI: A framework for the automated derivation and parallel execution of finite difference solvers on a range of computer architectures
- Solver composition across the PDE/linear algebra barrier
- TSFC: a structure-preserving form compiler
- A Simflowny-based finite-difference code for high-performance computing in Relativity
- Medusa: A C++ Library for solving PDEs using Strong Form Mesh-Free methods
- Higher-order compatible finite element schemes for the nonlinear rotating shallow water equations on the sphere
- A Reynolds-robust preconditioner for the Scott-Vogelius discretization of the stationary incompressible Navier-Stokes equations
- Compatible finite element spaces for geophysical fluid dynamics
- Energy-enstrophy conserving compatible finite element schemes for the rotating shallow water equations with slip boundary conditions
- Structural Landscapes in Geometrically Frustrated Smectics
- PCPATCH: software for the topological construction of multigrid relaxation methods
- A variational H(div) finite element discretisation approach for perfect incompressible fluids
- Stochastic mesoscale circulation dynamics in the thermal ocean
- The ultraspherical spectral element method
- Automated shape differentiation in the Unified Form Language
- Variational inequality approach to enforce the non-negative constraint for advection-diffusion equations
- Stride: a flexible platform for high-performance ultrasound computed tomography
- Shape optimisation with nearly conformal transformations
- Experiences with efficient methodologies for teaching computer programming to geoscientists
- A structure-exploiting numbering algorithm for finite elements on extruded meshes, and its performance evaluation in Firedrake
- An algorithm for the optimization of finite element integration loops
- Differentiable Programming for Earth System Modeling
- A block preconditioner for non-isothermal flow in porous media
- Numerical approximation of viscous contact problems applied to glacial sliding
- A Mathematical Guide to Operator Learning
- High level implementation of geometric multigrid solvers for finite element problems: applications in atmospheric modelling
- Energy conserving upwinded compatible finite element schemes for the rotating shallow water equations
- HDGlab: An open-source implementation of the hybridisable discontinuous Galerkin method in MATLAB
- A Compatible Finite Element Discretisation for the Moist Compressible Euler Equations
- Deflation-based Identification of Nonlinear Excitations of the 3D Gross--Pitaevskii equation
- Multigrid preconditioners for the mixed finite element dynamical core of the LFRic atmospheric model
- Code generation for generally mapped finite elements
- An augmented Lagrangian preconditioner for the magnetohydrodynamics equations at high Reynolds and coupling numbers
- Phase-field modeling of multivariant martensitic transformation at finite-strain: computational aspects and large-scale finite-element simulations
- A study of vectorization for matrix-free finite element methods
- Slate: extending Firedrake's domain-specific abstraction to hybridized solvers for geoscience and beyond
- Scale-selective dissipation in energy-conserving finite element schemes for two-dimensional turbulence
- Learned multiphysics inversion with differentiable programming and machine learning
- Deflation for semismooth equations
- Reconstructing relaxed configurations in elastic bodies: Mathematical formulations and numerical methods for cardiac modeling
- Dual field structure-preserving discretization of port-Hamiltonian systems using finite element exterior calculus
- Monolithic multigrid for implicit Runge-Kutta discretizations of incompressible fluid flow
- Port-Hamiltonian flexible multibody dynamics
- A scalable variational inequality approach for flow through porous media models with pressure-dependent viscosity
- Maximum-principle-satisfying discontinuous Galerkin methods for incompressible two-phase immiscible flow
- Discontinuous Galerkin discretization for two-equation turbulence closure model
- Analysis and Numerical Approximation of Stationary Second-Order Mean Field Game Partial Differential Inclusions
- A scalable and robust vertex-star relaxation for high-order FEM
- The scaling and skewness of optimally transported meshes on the sphere
- Gaussian processes for Bayesian inverse problems associated with linear partial differential equations
- A stabilized mixed discontinuous Galerkin formulation for double porosity/permeability model
- Vertical slice modelling of nonlinear Eady waves using a compatible finite element method
- On constraining the mesoscale eddy energy dissipation time-scale
- Advanced Automatic Code Generation for Multiple Relaxation-Time Lattice Boltzmann Methods
- Robust multigrid methods for nearly incompressible elasticity using macro elements
- fenicsR13: A Tensorial Mixed Finite Element Solver for the Linear R13 Equations Using the FEniCS Computing Platform
- Low-order preconditioning of the Stokes equations
- Indentation-induced martensitic transformation in SMAs: insights from phase-field simulations
- Large scale simulation of pressure induced phase-field fracture propagation using Utopia
- The Recovered Space Advection Scheme for Lowest-Order Compatible Finite Element Methods
- Control of bifurcation structures using shape optimization
- CUQIpy: II. Computational uncertainty quantification for PDE-based inverse problems in Python
- A scalable DG solver for the electroneutral Nernst-Planck equations
- A shared compilation stack for distributed-memory parallelism in stencil DSLs
- Composable block solvers for the four-field double porosity/permeability model
- Finite element approximation of time-dependent mean field games with nondifferentiable Hamiltonians
- Robust and efficient primal-dual Newton-Krylov solvers for viscous-plastic sea-ice models
- Goal-Oriented Error Estimation for the Automatic Variationally Stable FE Method for Convection-Dominated Diffusion Problems
- Optimal Control of the Sabatier Process in Microchannel Reactors
- Parallel block preconditioners for virtual element discretizations of the time-dependent Maxwell equations
- A finite element method for simulating soft active non-shearable rods immersed in generalized Newtonian fluids
- A fast dynamic smooth adaptive meshing scheme with applications to compressible flow
- Bifurcation analysis of a two-dimensional magnetic Rayleigh-Bénard problem
- Bringing Trimmed Serendipity Methods to Computational Practice in Firedrake
- A Stable FE Method For the Space-Time Solution of the Cahn-Hilliard Equation
- Two-Component 3D Atomic Bose-Einstein Condensates Support Complex Stable Patterns
- Accelerating innovation with software abstractions for scalable computational geophysics
- Ion-dependent DNA Configuration in Bacteriophage Capsids
- Optimization of Hopf bifurcation points
- Extending FEniCS to Work in Higher Dimensions Using Tensor Product Finite Elements
- Discrete conservation laws for finite element discretisations of multisymplectic PDEs
- Hybridization and postprocessing in finite element exterior calculus
- Local parameter selection in the interior penalty method for the biharmonic equation
- Coupling chemotaxis and growth poromechanics for the modelling of feather primordia patterning
- New twofold saddle-point formulations for Biot poroelasticity with porosity-dependent permeability
- A differentiable programming framework for spin models
- A nonconforming primal hybrid finite element method for the two-dimensional vector Laplacian
- Principled interpolation of Green's functions learned from data
- Robust parallel nonlinear solvers for implicit time discretizations of the Bidomain equations
- Near and full quasi-optimality of finite element approximations of stationary second-order mean field games
- A linearly-implicit energy-momentum preserving scheme for geometrically nonlinear mechanics based on non-canonical Hamiltonian formulations
- Efficient N-to-M Checkpointing Algorithm for Finite Element Simulations
- SymX: Energy-based Simulation from Symbolic Expressions
- A Stable Mixed FE Method for Nearly Incompressible Linear Elastostatics
- Automated Generation of High-Performance Computational Fluid Dynamics Codes
- A domain decomposition strategy for natural imposition of mixed boundary conditions in port-Hamiltonian systems
- Bifurcation analysis of two-dimensional Rayleigh--Bénard convection using deflation
- Step-based checkpointing with high-level algorithmic differentiation
- Automatic Variationally Stable Analysis for Finite Element Computations: Transient Convection-Diffusion Problems
- Improving the accuracy of discretisations of the vector transport equation on the lowest-order quadrilateral Raviart-Thomas finite elements
- Structure Matters: A Scale-Resolved Numerical Operando Approach for Lithium-Sulfur Batteries
- Regularity for quasilinear vectorial elliptic systems through an iterative scheme with numerical applications
- FIAT: improving performance and accuracy for high-order finite elements
- Numerical approximation of a thermodynamically complete rate-type model for the elastic--perfectly plastic response
- Point Movement in a DSL for Higher-Order FEM Visualization
- GPU Support for Automatic Generation of Finite-Differences Stencil Kernels