Firedrake and PyOP2 publications

Citing Firedrake

If you publish results using Firedrake, we would be grateful if you would cite the relevant papers. The simplest way to determine what these are is by asking Firedrake itself. You can ask that a list of citations relevant to your computation be printed when exiting by calling Citations.print_at_exit() after importing Firedrake:

from firedrake import *


Alternatively, you can select that this should occur by passing the command-line option -citations. In both cases, you will also obtain the correct citations for PETSc.

If you cannot use this approach, there are a number of papers. Those which are relevant depend a little on which functionality you used.

For Firedrake itself, please cite [RHM+16]. If you use the extruded mesh functionality please cite [MBM+16] and [BMH+16]. When using quadrilateral meshes, please cite [HH16] and [MBM+16].

If your work relies on the kernel-level performance optimisations that Firedrake performs using COFFEE, please cite the COFFEE papers [LVR+15] and [LHK17].

[BMH+16]Gheorghe-Teodor Bercea, Andrew T. T. McRae, David A. Ham, Lawrence Mitchell, Florian Rathgeber, Luigi Nardi, Fabio Luporini, and Paul H. J. Kelly. A structure-exploiting numbering algorithm for finite elements on extruded meshes, and its performance evaluation in firedrake. Geoscientific Model Development, 9(10):3803–3815, 2016. URL:, arXiv:1604.05937, doi:10.5194/gmd-9-3803-2016.
[HH16]Miklós Homolya and David A. Ham. A parallel edge orientation algorithm for quadrilateral meshes. SIAM Journal on Scientific Computing, 38(5):S48–S61, 2016. URL:, arXiv:1505.03357, doi:10.1137/15M1021325.
[LHK17]Fabio Luporini, David A. Ham, and Paul H. J. Kelly. An algorithm for the optimization of finite element integration loops. ACM Transactions on Mathematical Software, 44(1):3:1–3:26, 2017. arXiv:1604.05872, doi:10.1145/3054944.
[LVR+15]Fabio Luporini, Ana Lucia Varbanescu, Florian Rathgeber, Gheorghe-Teodor Bercea, J. Ramanujam, David A. Ham, and Paul H. J. Kelly. Cross-loop optimization of arithmetic intensity for finite element local assembly. ACM Transactions on Architecture and Code Optimization, 11(4):57:1–57:25, 2015. URL:, doi:10.1145/2687415.
[MBM+16](1, 2) Andrew T. T. McRae, Gheorghe-Teodor Bercea, Lawrence Mitchell, David A. Ham, and Colin J. Cotter. Automated generation and symbolic manipulation of tensor product finite elements. SIAM Journal on Scientific Computing, 38(5):S25–S47, 2016. URL:, arXiv:1411.2940, doi:10.1137/15M1021167.
[MK17]Lawrence Mitchell and Robert C. Kirby. Solver composition across the PDE/linear algebra barrier. 2017. URL:, arXiv:1706.01346.
[RHM+16]Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini, Andrew T. T. Mcrae, Gheorghe-Teodor Bercea, Graham R. Markall, and Paul H. J. Kelly. Firedrake: automating the finite element method by composing abstractions. ACM Trans. Math. Softw., 43(3):24:1–24:27, 2016. URL:, arXiv:1501.01809, doi:10.1145/2998441.

Citing other packages

Firedrake relies heavily on PETSc, which you should cite appropriately. Additionally, if you talk about UFL in your work, please cite the UFL paper.

Making your simulations reproducible with Zenodo integration

In addition to citing the work you use, you will want to provide references to the exact versions of Firedrake and its dependencies which you used. Firedrake supports this through Zenodo integration.

Journal papers and conference proceedings about Firedrake

Journal papers and conference proceedings using Firedrake

If you have published work using Firedrake that does not appear below, we would love to hear about it.