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", ACM Transactions on Mathematical Software, 2017