https://1library.org/document/qmj2dd7q-firedrake-numerical-modelling-performance-portable-automated-solution-framework.html