Firedrake: Automating the finite element method by composing abstractions
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 n...
Main Authors: | , , , , , , , , |
---|---|
פורמט: | Journal article |
יצא לאור: |
Association for Computing Machinery
2017
|
_version_ | 1826293344705183744 |
---|---|
author | Rathgeber, F Ham, D Mitchell, L Lange, M Luporini, F Mcrae, A Bercea, G Markall, G Kelly, P |
author_facet | Rathgeber, F Ham, D Mitchell, L Lange, M Luporini, F Mcrae, A Bercea, G Markall, G Kelly, P |
author_sort | Rathgeber, F |
collection | OXFORD |
description | 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. 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. |
first_indexed | 2024-03-07T03:28:40Z |
format | Journal article |
id | oxford-uuid:b9eed7aa-beb8-44b2-8ba7-d882c3551205 |
institution | University of Oxford |
last_indexed | 2024-03-07T03:28:40Z |
publishDate | 2017 |
publisher | Association for Computing Machinery |
record_format | dspace |
spelling | oxford-uuid:b9eed7aa-beb8-44b2-8ba7-d882c35512052022-03-27T05:06:26ZFiredrake: Automating the finite element method by composing abstractionsJournal articlehttp://purl.org/coar/resource_type/c_dcae04bcuuid:b9eed7aa-beb8-44b2-8ba7-d882c3551205Symplectic Elements at OxfordAssociation for Computing Machinery2017Rathgeber, FHam, DMitchell, LLange, MLuporini, FMcrae, ABercea, GMarkall, GKelly, PFiredrake 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. 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. |
spellingShingle | Rathgeber, F Ham, D Mitchell, L Lange, M Luporini, F Mcrae, A Bercea, G Markall, G Kelly, P Firedrake: Automating the finite element method by composing abstractions |
title | Firedrake: Automating the finite element method by composing abstractions |
title_full | Firedrake: Automating the finite element method by composing abstractions |
title_fullStr | Firedrake: Automating the finite element method by composing abstractions |
title_full_unstemmed | Firedrake: Automating the finite element method by composing abstractions |
title_short | Firedrake: Automating the finite element method by composing abstractions |
title_sort | firedrake automating the finite element method by composing abstractions |
work_keys_str_mv | AT rathgeberf firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT hamd firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT mitchelll firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT langem firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT luporinif firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT mcraea firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT berceag firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT markallg firedrakeautomatingthefiniteelementmethodbycomposingabstractions AT kellyp firedrakeautomatingthefiniteelementmethodbycomposingabstractions |