Firedrake is an automated system for the solution of partial differential equations using the finite element method (FEM). Firedrake uses sophisticated code generation to provide mathematicians, scientists, and engineers with a very high productivity way to create sophisticated high performance simulations.
Features:
- Expressive specification of any PDE using the Unified Form Language from the FEniCS Project.
- Sophisticated, programmable solvers through seamless coupling with PETSc.
- Triangular, quadrilateral, and tetrahedral unstructured meshes.
- Layered meshes of triangular wedges or hexahedra.
- Vast range of finite element spaces.
- Sophisticated automatic optimisation, including sum factorisation for high order elements, and vectorisation.
- Geometric multigrid.
- Customisable operator preconditioners.
- Support for static condensation, hybridisation, and HDG methods.
Firedrake is used in Thetis for coastal ocean modelling (eg for tidal power), in Gusto for prototyping novel methods for atmospheric modelling in weather and climate simulation, and icepack, for modelling the flow of ice sheets and glaciers.
Firedrake works with the dolfin-adjoint project to derive discrete adjoint and tangent linear models from a forward model, entirely automatically.
Publications about Firedrake, and from users of Firedrake, are collected here.