{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,26]],"date-time":"2026-03-26T10:00:29Z","timestamp":1774519229584,"version":"3.50.1"},"reference-count":43,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2016,12,21]],"date-time":"2016-12-21T00:00:00Z","timestamp":1482278400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100000266","name":"EPSRC","doi-asserted-by":"crossref","award":["EP\/I00677X\/1, EP\/L000407\/1, EP\/I012036\/1"],"award-info":[{"award-number":["EP\/I00677X\/1, EP\/L000407\/1, EP\/I012036\/1"]}],"id":[{"id":"10.13039\/501100000266","id-type":"DOI","asserted-by":"crossref"}]},{"name":"NERC","award":["NE\/G523512\/1, NE\/I021098\/1, NE\/K006789\/1, NE\/K008951\/1"],"award-info":[{"award-number":["NE\/G523512\/1, NE\/I021098\/1, NE\/K006789\/1, NE\/K008951\/1"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Math. Softw."],"published-print":{"date-parts":[[2017,9,30]]},"abstract":"<jats:p>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 centered on the composition of several existing and new abstractions for particular aspects of scientific computing. The result is a more complete separation of concerns that eases the incorporation of separate contributions from computer scientists, numerical analysts, and application specialists. These contributions may add functionality or improve performance.<\/jats:p>\n          <jats:p>Firedrake benefits from automatically applying new optimizations. This includes factorizing mixed function spaces, transforming and vectorizing 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 of pure variational formulations, such as flux limiters.<\/jats:p>","DOI":"10.1145\/2998441","type":"journal-article","created":{"date-parts":[[2016,12,21]],"date-time":"2016-12-21T14:45:06Z","timestamp":1482331506000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":363,"title":["Firedrake"],"prefix":"10.1145","volume":"43","author":[{"given":"Florian","family":"Rathgeber","sequence":"first","affiliation":[{"name":"Imperial College London"}]},{"given":"David A.","family":"Ham","sequence":"additional","affiliation":[{"name":"Imperial College London, London, United Kingdom"}]},{"given":"Lawrence","family":"Mitchell","sequence":"additional","affiliation":[{"name":"Imperial College London, London, United Kingdom"}]},{"given":"Michael","family":"Lange","sequence":"additional","affiliation":[{"name":"Imperial College London, London, United Kingdom"}]},{"given":"Fabio","family":"Luporini","sequence":"additional","affiliation":[{"name":"Imperial College London, London, United Kingdom"}]},{"given":"Andrew T. T.","family":"Mcrae","sequence":"additional","affiliation":[{"name":"Imperial College London"}]},{"given":"Gheorghe-Teodor","family":"Bercea","sequence":"additional","affiliation":[{"name":"Imperial College London"}]},{"given":"Graham R.","family":"Markall","sequence":"additional","affiliation":[{"name":"Imperial College London"}]},{"given":"Paul H. J.","family":"Kelly","sequence":"additional","affiliation":[{"name":"Imperial College London, London, United Kingdom"}]}],"member":"320","published-online":{"date-parts":[[2016,12,21]]},"reference":[{"key":"e_1_2_1_1_1","series-title":"Lecture Notes in Computational Science and Engineering","volume-title":"UFC: A finite element code generation interface. In Automated Solution of Differential Equations by the Finite Element Method","author":"Aln\u00e6s Martin S.","year":"2012","unstructured":"Martin S. Aln\u00e6s , Anders Logg , and Kent-Andre Mardal . 2012 . UFC: A finite element code generation interface. In Automated Solution of Differential Equations by the Finite Element Method . Lecture Notes in Computational Science and Engineering , Vol. 84 . Springer , 283--302. Martin S. Aln\u00e6s, Anders Logg, and Kent-Andre Mardal. 2012. UFC: A finite element code generation interface. In Automated Solution of Differential Equations by the Finite Element Method. Lecture Notes in Computational Science and Engineering, Vol. 84. Springer, 283--302."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2566630"},{"key":"e_1_2_1_3_1","volume-title":"Cray XC30 Architecture Overview. Retrieved","author":"Andersson Stefan","year":"2016","unstructured":"Stefan Andersson . 2014. Cray XC30 Architecture Overview. Retrieved November 3, 2016 , from http:\/\/www.archer.ac.uk\/training\/courses\/craytools\/pdf\/architecture-overview.pdf. Stefan Andersson. 2014. Cray XC30 Architecture Overview. Retrieved November 3, 2016, from http:\/\/www.archer.ac.uk\/training\/courses\/craytools\/pdf\/architecture-overview.pdf."},{"key":"e_1_2_1_4_1","volume-title":"Technical Report ANL-95\/11\u2014Revision 3.5. Argonne National Laboratory","author":"Balay Satish","year":"2014","unstructured":"Satish Balay , Shrirang Abhyankar , Mark F. Adams , Jed Brown , Peter Brune , Kris Buschelman , Victor Eijkhout , 2014 . PETSc Users Manual . Technical Report ANL-95\/11\u2014Revision 3.5. Argonne National Laboratory , Lemont, IL . http:\/\/www.mcs.anl.gov\/petsc. Satish Balay, Shrirang Abhyankar, Mark F. Adams, Jed Brown, Peter Brune, Kris Buschelman, Victor Eijkhout, et al. 2014. PETSc Users Manual. Technical Report ANL-95\/11\u2014Revision 3.5. Argonne National Laboratory, Lemont, IL. http:\/\/www.mcs.anl.gov\/petsc."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1268776.1268779"},{"key":"e_1_2_1_6_1","volume-title":"Young","author":"Bangerth Wolfgang","year":"2013","unstructured":"Wolfgang Bangerth , Timo Heister , Luca Heltai , Guido Kanschat , Martin Kronbichler , Matthias Maier , Bruno Turcksin , and Toby D . Young . 2013 . The de al.II library, version 8.1. arXiv:1312.2266v4. http:\/\/arxiv.org\/abs\/1312.2266v4. Wolfgang Bangerth, Timo Heister, Luca Heltai, Guido Kanschat, Martin Kronbichler, Matthias Maier, Bruno Turcksin, and Toby D. Young. 2013. The deal.II library, version 8.1. arXiv:1312.2266v4. http:\/\/arxiv.org\/abs\/1312.2266v4."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5194\/gmd-9-3803-2016"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1137\/130921842"},{"key":"e_1_2_1_9_1","volume-title":"The Finite Element Method for Elliptic Problems","author":"Ciarlet Philippe G.","unstructured":"Philippe G. Ciarlet . 1978. The Finite Element Method for Elliptic Problems . Elsevier . Philippe G. Ciarlet. 1978. The Finite Element Method for Elliptic Problems. Elsevier."},{"key":"e_1_2_1_10_1","unstructured":"Lisandro Dalcin Lawrence Mitchell Jed Brown Patrick E. Farrell Michael Lange Barry Smith Dmitry Karpeyev etal 2016. petsc4py: The Python Interface to PETSc. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56639#.WBvQ0y0rLg8  Lisandro Dalcin Lawrence Mitchell Jed Brown Patrick E. Farrell Michael Lange Barry Smith Dmitry Karpeyev et al. 2016. petsc4py: The Python Interface to PETSc. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56639#.WBvQ0y0rLg8"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.advwatres.2011.04.013"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00607-010-0110-3"},{"key":"e_1_2_1_13_1","series-title":"Lecture Notes in Computational Science and Engineering","volume-title":"Numerical Solution of Partial Differential Equations on Parallel Computers","author":"Falgout Robert D.","unstructured":"Robert D. Falgout , Jim E. Jones , and Ulrike Meier Yang . 2006. The design and implementation of hypre, a library of parallel high performance preconditioners . In Numerical Solution of Partial Differential Equations on Parallel Computers . Lecture Notes in Computational Science and Engineering , Vol. 51 . Springer , 267--294. Robert D. Falgout, Jim E. Jones, and Ulrike Meier Yang. 2006. The design and implementation of hypre, a library of parallel high performance preconditioners. In Numerical Solution of Partial Differential Equations on Parallel Computers. Lecture Notes in Computational Science and Engineering, Vol. 51. Springer, 267--294."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1137\/120900745"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1137\/120873558"},{"key":"e_1_2_1_16_1","volume-title":"Farrell","author":"Funke Simon W.","year":"2013","unstructured":"Simon W. Funke and Patrick E . Farrell . 2013 . A framework for automated PDE-constrained optimisation. arXiv:1302.3894. Simon W. Funke and Patrick E. Farrell. 2013. A framework for automated PDE-constrained optimisation. arXiv:1302.3894."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/bxr062"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1515\/jnum-2012-0013"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1089014.1089021"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.6028\/jres.049.044"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1039813.1039820"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1137\/040607824"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1155\/2009\/948613"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1137\/15M1026092"},{"key":"e_1_2_1_25_1","volume-title":"Marie E. Rognes, Andrew T. T. McRae, Garth N. Wells, Johannes Ring","author":"Logg Anders","year":"2016","unstructured":"Anders Logg , Martin Sandve Alns , Marie E. Rognes, Andrew T. T. McRae, Garth N. Wells, Johannes Ring , Lawrence Mitchell , et al. 2016 . ffc: The FEniCS Form Compiler. Retrieved November 3, 2016, from https:\/\/zenodo.org\/record\/56643#.WBvSxi0rLg8 Anders Logg, Martin Sandve Alns, Marie E. Rognes, Andrew T. T. McRae, Garth N. Wells, Johannes Ring, Lawrence Mitchell, et al. 2016. ffc: The FEniCS Form Compiler. Retrieved November 3, 2016, from https:\/\/zenodo.org\/record\/56643#.WBvSxi0rLg8"},{"key":"e_1_2_1_26_1","doi-asserted-by":"crossref","unstructured":"Anders Logg Kent-Andre Mardal and Garth N. Wells (Eds.). 2012. Automated Solution of Differential Equations by the Finite Element Method. Springer.   Anders Logg Kent-Andre Mardal and Garth N. Wells (Eds.). 2012. Automated Solution of Differential Equations by the Finite Element Method. Springer.","DOI":"10.1007\/978-3-642-23099-8"},{"key":"e_1_2_1_27_1","volume-title":"Wells","author":"Logg Anders","year":"2012","unstructured":"Anders Logg , Kristian B. \u00d8lgaard , Marie E. Rognes , and Garth N . Wells . 2012 a. FFC : The FEniCS Form Compiler. In Automated Solution of Differential Equations by the Finite Element Method. Lecture Notes in Computational Science and Engineering, Vol. 84 . Springer , 227--238. Anders Logg, Kristian B. \u00d8lgaard, Marie E. Rognes, and Garth N. Wells. 2012a. FFC: The FEniCS Form Compiler. In Automated Solution of Differential Equations by the Finite Element Method. Lecture Notes in Computational Science and Engineering, Vol. 84. Springer, 227--238."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1731022.1731030"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-23099-8"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1137\/09076920X"},{"key":"e_1_2_1_31_1","volume-title":"COFFEE: A Compiler for Fast Expression Evaluation. Retrieved","author":"Luporini Fabio","year":"2016","unstructured":"Fabio Luporini , Lawrence Mitchell , Mikls Homolya , Florian Rathgeber , Andrew T. T. McRae , David A. Ham , Michael Lange , Graham Markall , and Francis Russell . 2016 . COFFEE: A Compiler for Fast Expression Evaluation. Retrieved November 3, 2016, from https:\/\/www.zenodo.org\/record\/58659#.WBvwCC0rLg8 Fabio Luporini, Lawrence Mitchell, Mikls Homolya, Florian Rathgeber, Andrew T. T. McRae, David A. Ham, Michael Lange, Graham Markall, and Francis Russell. 2016. COFFEE: A Compiler for Fast Expression Evaluation. Retrieved November 3, 2016, from https:\/\/www.zenodo.org\/record\/58659#.WBvwCC0rLg8"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2687415"},{"key":"e_1_2_1_33_1","volume-title":"David A. Ham, and Paul H. J. Kelly.","author":"Markall Graham R.","year":"2013","unstructured":"Graham R. Markall , Florian Rathgeber , Lawrence Mitchell , Nicolas Loriant , Carlo Bertolli , David A. Ham, and Paul H. J. Kelly. 2013 . Performance-portable finite element assembly using PyOP2 and FEniCS. In Supercomputing. Lecture Notes in Computer Science, Vol. 7905 . Springer , 279--289. Graham R. Markall, Florian Rathgeber, Lawrence Mitchell, Nicolas Loriant, Carlo Bertolli, David A. Ham, and Paul H. J. Kelly. 2013. Performance-portable finite element assembly using PyOP2 and FEniCS. In Supercomputing. Lecture Notes in Computer Science, Vol. 7905. Springer, 279--289."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1137\/15M1021167"},{"key":"e_1_2_1_35_1","unstructured":"Andrew T. T. McRae Marie E. Rognes Anders Logg David A. Ham Mikls Homolya Jan Blechta Nico Schlmer etal 2016b. fiat: The Finite Element Automated Tabulator. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56637#.WBvxjC0rLg8  Andrew T. T. McRae Marie E. Rognes Anders Logg David A. Ham Mikls Homolya Jan Blechta Nico Schlmer et al. 2016b. fiat: The Finite Element Automated Tabulator. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56637#.WBvxjC0rLg8"},{"key":"e_1_2_1_36_1","unstructured":"Lawrence Mitchell David A. Ham Florian Rathgeber Mikls Homolya Andrew T. T. McRae Gheorghe-Teodor Bercea Michael Lange etal 2016. firedrake: An automated finite element system. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56640#.WBvx5y0rLg8  Lawrence Mitchell David A. Ham Florian Rathgeber Mikls Homolya Andrew T. T. McRae Gheorghe-Teodor Bercea Michael Lange et al. 2016. firedrake: An automated finite element system. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56640#.WBvx5y0rLg8"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1644001.1644009"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.Companion.2012.134"},{"key":"e_1_2_1_40_1","volume-title":"firedrake-bench: Benchmarks for Firedrake. Retrieved","author":"Rathgeber Florian","year":"2016","unstructured":"Florian Rathgeber and Lawrence Mitchell . 2016. firedrake-bench: Benchmarks for Firedrake. Retrieved November 3, 2016 , from https:\/\/zenodo.org\/record\/56646#.WBvzji0rLg8 Florian Rathgeber and Lawrence Mitchell. 2016. firedrake-bench: Benchmarks for Firedrake. Retrieved November 3, 2016, from https:\/\/zenodo.org\/record\/56646#.WBvzji0rLg8"},{"key":"e_1_2_1_41_1","unstructured":"Florian Rathgeber Lawrence Mitchell Fabio Luporini Graham Markall David A. Ham Gheorghe-Teodor Bercea Mikls Homolya etal 2016. PyOP2: Framework for performance-portable parallel computations on unstructured meshes. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56635#.WBv0Ey0rLg8  Florian Rathgeber Lawrence Mitchell Fabio Luporini Graham Markall David A. Ham Gheorghe-Teodor Bercea Mikls Homolya et al. 2016. PyOP2: Framework for performance-portable parallel computations on unstructured meshes. Retrieved November 3 2016 from https:\/\/zenodo.org\/record\/56635#.WBv0Ey0rLg8"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.5194\/gmd-6-2099-2013"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1137\/10081962X"},{"key":"e_1_2_1_44_1","volume-title":"Hong Zhang, Peter Brune, et al.","author":"Smith Barry","year":"2016","unstructured":"Barry Smith , Satish Balay , Matthew Knepley , Jed Brown , Lois Curfman McInnes , Hong Zhang, Peter Brune, et al. 2016 . petsc: Portable, Extensible Toolkit for Scientific Computation. Retrieved November 3, 2016, from https:\/\/zenodo.org\/record\/56641#.WBv0hC0rLg8 Barry Smith, Satish Balay, Matthew Knepley, Jed Brown, Lois Curfman McInnes, Hong Zhang, Peter Brune, et al. 2016. petsc: Portable, Extensible Toolkit for Scientific Computation. Retrieved November 3, 2016, from https:\/\/zenodo.org\/record\/56641#.WBv0hC0rLg8"}],"container-title":["ACM Transactions on Mathematical Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2998441","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2998441","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:50:35Z","timestamp":1750218635000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2998441"}},"subtitle":["Automating the Finite Element Method by Composing Abstractions"],"short-title":[],"issued":{"date-parts":[[2016,12,21]]},"references-count":43,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2017,9,30]]}},"alternative-id":["10.1145\/2998441"],"URL":"https:\/\/doi.org\/10.1145\/2998441","relation":{},"ISSN":["0098-3500","1557-7295"],"issn-type":[{"value":"0098-3500","type":"print"},{"value":"1557-7295","type":"electronic"}],"subject":[],"published":{"date-parts":[[2016,12,21]]},"assertion":[{"value":"2015-01-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-09-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-12-21","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}