## Publications

71 results found

Iglesia Dolci D, Maddison J, Ham D,
et al., 2024, checkpoint_schedules: schedules for incremental checkpointing of adjoint simulations, *Journal of Open Source Software*, ISSN: 2475-9066

Nixon-Hill RW, Shapero D, Cotter CJ, et al., 2023, Point Data Assimilation in Firedrake and Icepack

<jats:p>We present methods and tools which significantly improve the ability to estimate quantities and fields which are difficult to directly measure at large scales, such as the fluidity of ice, using point data sources from remote sensing. Our tools work with both sparse and dense point data with estimated quantities and fields becoming more accurate as the number of measurements are increased. These are often used as input variables to mathematical models that are used to make predictions so improving their accuracy is of vital importance.&#160;The tool we introduce, Firedrake, generates highly optimised code for solving PDEs via the finite element method. It is easy to use, can be integrated with other python libraries, and is scalable for use on high performance computers. As proof, we highlight Icepack, a Python library for solving the equations of motion of glacier flow, which is written using Firedrake. Firedrake has an interface to the dolfin-adjoint/pyadjoint tool which allows these data assimilation problems to be solved with just a few lines of code by automatically generating the adjoint system of PDEs.&#160;By carefully considering the nature of finite element method solutions, we show, using Firedrake and Icepack, how the choice of misfit functional (i.e. objective function) significantly impacts our inferred fields. This required the development of new infrastructure not previously available in these automated code generation tools.</jats:p>

Ham DA, Kelly PHJ, Mitchell L, et al., 2023, Firedrake user manual, Firedrake User Manual

Wallwork JG, Barral N, Ham DA,
et al., 2022, Goal-oriented error estimation and mesh adaptation for tracer transport modelling, *Computer-Aided Design*, Vol: 145, Pages: 1-21, ISSN: 0010-4485

This paper applies metric-based mesh adaptation methods to advection-dominated tracer transport modelling problems in two and three dimensions, using the finite element package Firedrake. In particular, the mesh adaptation methods considered are built upon goal-oriented estimates for the error incurred in evaluating a diagnostic quantity of interest (QoI). In the motivating example of modelling to support desalination plant outfall design, such a QoI could be the salinity at the plant inlet, which could be negatively impacted by the transport of brine from the plant’s outfall. Four approaches are considered, one of which yields isotropic meshes. The focus on advection-dominated problems means that flows are often anisotropic; thus, three anisotropic approaches are also considered. Meshes resulting from each of the four approaches yield solutions to the tracer transport problem which give better approximations to QoI values than uniform meshing, for a given mesh size. The methodology is validated using an existing 2D tracer transport test case with a known analytical solution. Goal-oriented meshes for an idealised time-dependent desalination outfall scenario are also presented.

Crum J, Cheng C, Ham DA,
et al., 2022, Bringing trimmed serendipity methods to computational practice in Firedrake, *ACM Transactions on Mathematical Software*, Vol: 48, ISSN: 0098-3500

We present an implementation of the trimmed serendipity finite element family, using the open-source finite element package Firedrake. The new elements can be used seamlessly within the software suite for problems requiring H1, H(curl), or H(div)-conforming elements on meshes of squares or cubes. To test how well trimmed serendipity elements perform in comparison to traditional tensor product elements, we perform a sequence of numerical experiments including the primal Poisson, mixed Poisson, and Maxwell cavity eigenvalue problems. Overall, we find that the trimmed serendipity elements converge, as expected, at the same rate as the respective tensor product elements, while being able to offer significant savings in the time or memory required to solve certain problems.

Wallwork J, Barral N, Ham D, et al., 2022, Goal-Oriented Error Estimation and Mesh Adaptation for Tracer Transport Modelling

<jats:p>This paper applies metric-based mesh adaptation methods to advection-dominated tracer transport modelling problems in two and three dimensions, using the finite element package Firedrake. In particular, the mesh adaptation methods considered are built upon goal-oriented estimates for the error incurred in evaluating a diagnostic quantity of interest (QoI). In the motivating example of modelling to support desalination plant outfall design, such a QoI could be the salinity at the plant inlet, which could be negatively impacted by the transport of brine from the plant's outfall. Four approaches are considered, one of which yields isotropic meshes. The focus on advection-dominated problems means that flows are often anisotropic; thus, three anisotropic approaches are also considered. Meshes resulting from each of the four approaches yield solutions to the tracer transport problem which give better approximations to QoI values than uniform meshing, for a given mesh size. The methodology is validated using an existing 2D tracer transport test case with a known analytical solution. Goal-oriented meshes for an idealised time-dependent desalination outfall scenario are also presented.</jats:p>

Ham D, 2021, Object-oriented Programming in Python for Mathematicians, ISBN: 979-8775892142

This book is for mathematicians, scientists, and engineers who have learned the very basics of programming in Python, and who would like to become more capable programmers. In addition to covering higher level programming concepts such as objects, inheritance, and abstract data types, emphasis is placed on programming skills such as interpreting and debugging errors. If you find yourself baffled by the pages of error messages that Python emits, and would like to make sense of them, then this book is for you.The book takes a mathematician's view of programming, introducing higher level programming abstractions by analogy with the abstract objects that make up higher mathematics. Examples and exercises are chosen from across mathematics, though the actual mathematical knowledge required to understand this book is limited to differentiating functions of one variable.

Betteridge JD, Farrell PE, Ham DA, 2021, Code generation for productive, portable, and scalable finite element simulation in Firedrake, *Computing in Science and Engineering*, Vol: 23, Pages: 8-17, ISSN: 1521-9615

Creating scalable, high performance PDE-based simulations requires a suitablecombination of discretizations, differential operators, preconditioners andsolvers. The required combination changes with the application and with theavailable hardware, yet software development time is a severely limitedresource for most scientists and engineers. Here we demonstrate that generatingsimulation code from a high-level Python interface provides an effectivemechanism for creating high performance simulations from very few lines of usercode. We demonstrate that moving from one supercomputer to another can requiresignificant algorithmic changes to achieve scalable performance, but that thecode generation approach enables these algorithmic changes to be achieved withminimal development effort.

Sun T, Mitchell L, Kulkarni K,
et al., 2020, A study of vectorization for matrix-free finite element methods, *International Journal of High Performance Computing Applications*, Vol: 34, Pages: 629-644, ISSN: 1094-3420

Vectorization is increasingly important to achieve high performance on modern hardware with SIMD instructions. Assembly of matrices and vectors in the finite element method, which is characterized by iterating a local assembly kernel over unstructured meshes, poses difficulties to effective vectorization. Maintaining a user-friendly high-level interface with a suitable degree of abstraction while generating efficient, vectorized code for the finite element method is a challenge for numerical software systems and libraries. In this work, we study cross-element vectorization in the finite element framework Firedrake via code transformation and demonstrate the efficacy of such an approach by evaluating a wide range of matrix-free operators spanning different polynomial degrees and discretizations on two recent CPUs using three mainstream compilers. Our experiments show that our approaches for cross-element vectorization achieve 30% of theoretical peak performance for many examples of practical significance, and exceed 50% for cases with high arithmetic intensities, with consistent speed-up over (intra-element) vectorization restricted to the local assembly kernels.

Wallwork JG, Barral N, Kramer SC,
et al., 2020, Goal-oriented error estimation and mesh adaptation for shallow water modelling, *SN Applied Sciences*, Vol: 2, Pages: 1-11, ISSN: 2523-3971

This study presents a novel goal-oriented error estimate for the nonlinear shallow water equations solved using a mixed discontinuous/continuous Galerkin approach. This error estimator takes account of the discontinuities in the discrete solution and is used to drive two metric-based mesh adaptation algorithms: one which yields isotropic meshes and another which yields anisotropic meshes. An implementation of these goal-oriented mesh adaptation algorithms is described, including a method for approximating the adjoint error term which arises in the error estimate. Results are presented for simulations of two model tidal farm configurations computed using the Thetis coastal ocean model (Kärnä et al. in Geosci Model Dev 11(11):4359–4382, 2018). Convergence analysis indicates that meshes resulting from the goal-oriented adaptation strategies permit accurate QoI estimation using fewer computational resources than uniform refinement.

Shipton J, Cotter C, Bendall T, et al., 2020, Compatible finite element methods and parallel-in-time schemes for numerical weather prediction.

<jats:p> &lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;I will describe Gusto, a dynamical core toolkit built on top of the Fire- drake finite element library; present recent results from a range of test cases and outline our plans for future code development.&lt;/p&gt;&lt;p&gt;Gusto uses compatible finite element methods, a form of mixed finite element methods (meaning that different finite element spaces are used for different fields) that allow the exact representation of the standard vector calculus identities div-curl=0 and curl-grad=0. The popularity of these methods for numerical weather prediction is due to the flexibility to run on non-orthogonal grid, thus avoiding the communication bottleneck at the poles, while retaining the necessary convergence and wave propagation prop- erties required for accuracy.&lt;/p&gt;&lt;p&gt;Although the flexibility of the compatible finite element spatial discreti- sation improves the parallel scalability of the model it does not solve the parallel scalability problem inherent in spatial domain decomposition: we need to find a way to perform parallel calculations in the time domain. Ex- ponential integrators, approximated by a near optimal rational expansion, offer a way to take large timesteps and form the basis for parallel timestep- ping schemes based on wave averaging. I will describe the progress we have made towards implementing these schemes in Gusto.&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; </jats:p>

Kärnä T, Kramer S, Mitchell L, et al., 2020, thetisproject/thetis: Thetis coastal ocean model

This version is used in paper "A comparison of Bayesian inference and gradient-based approaches for friction parameter estimation."This release is specifically created to document the version of Thetis used in a particular set of experiments. Please do not cite this as a general source for Thetis. See https://thetisproject.org/publications.html for how to cite Thetis in your work.

Gibson T, Mitchell L, Ham D,
et al., 2020, Slate: extending Firedrake's domain-specific abstraction to hybridized solvers for geoscience and beyond, *Geoscientific Model Development*, Vol: 13, Pages: 735-761, ISSN: 1991-959X

Within the finite element community, discontinuous Galerkin (DG) and mixed finite element methods have becomeincreasingly popular in simulating geophysical flows. However, robust and efficient solvers for the resulting saddle-point andelliptic systems arising from these discretizations continue to be an on-going challenge. One possible approach for addressingthis issue is to employ a method known as hybridization, where the discrete equations are transformed such that classic staticcondensation and local post-processing methods can be employed. However, it is challenging to implement hybridization as performant parallel code within complex models, whilst maintaining separation of concerns between applications scientistsand software experts. In this paper, we introduce a domain-specific abstraction within the Firedrake finite element library thatpermits the rapid execution of these hybridization techniques within a code-generating framework. The resulting frameworkcomposes naturally with Firedrake’s solver environment, allowing for the implementation of hybridization and static condensa-tion as runtime-configurable preconditioners via the Python interface to PETSc, petsc4py. We provide examples derived from second order elliptic problems and geophysical fluid dynamics. In addition, we demonstrate that hybridization shows greatpromise for improving the performance of solvers for mixed finite element discretizations of equations related to large-scalegeophysical flows.

Wallwork JG, Barral N, Ham DA, et al., 2020, Anisotropic goal-oriented mesh adaptation in firedrake, IMR28 2019, Pages: 83-100

We consider metric-based mesh adaptation methods for steady-state partial differential equations (PDEs), solved using the finite element method in Firedrake. In this work, a number of mesh-adaptive methods are implemented within this framework, each enabling accurate approximation of a scalar quantity of interest (QoI). Through the QoI we define adjoint equations, with which we may gain understanding of its sensitivities to aspects of the PDE solution. Dual weighted residual type error estimation techniques are utilised in order to enable a goal-oriented strategy. Isotropic and anisotropic approaches are considered, both of which are able to achieve the same relative error in approximating the QoI as with uniform refinement, but using fewer elements. For validation purposes, we compare QoI values resulting from these approaches against analytical values which may be extracted for a particular advection-diffiusion based test case. Potential applications in desalination plant outfall modelling are discussed.

Shapero D, Lilien D, Ham D, et al., 2019, icepack/icepack: icepack: glacier flow modeling with the finite element method in Python

This is the beta release of icepack, a new software package for modeling the flow of glaciers and ice sheets in Python. The main design goal of icepack is to be easy to use for practicing glaciologists, whether they are experts or novices in computational physics and high-performance computing.

Logg A, Barton SN, Wells GN, et al., 2019, firedrakeproject/ufl: The Unified Form Language

This release is specifically created to document the version of ufl used in a particular set of experiments using Firedrake. Please do not cite this as a general source for Firedrake or any of its dependencies. Instead, refer to https://www.firedrakeproject.org/citing.html

Homolya M, Kirby R, Blechta J, et al., 2019, firedrakeproject/fiat: The Finite Element Automated Tabulator

This release is specifically created to document the version of fiat used in a particular set of experiments using Firedrake. Please do not cite this as a general source for Firedrake or any of its dependencies. Instead, refer to https://www.firedrakeproject.org/citing.html.

Ham DA, Mitchell L, Paganini A,
et al., 2019, Automated shape differentiation in the Unified Form Language, *STRUCTURAL AND MULTIDISCIPLINARY OPTIMIZATION*, Vol: 60, Pages: 1813-1820, ISSN: 1615-147X

- Author Web Link
- Cite
- Citations: 10

Ham D, van Sebille E, Delandmeter P, et al., 2019, OceanParcels/parcels: Parcels v2.1.2: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.1.2 is a quick release build on previous versions v2.1.1. In particular:It fixes a serious bug on some systems with floating point accuracy, that could lead to incorrect output files (see #670 and solution at #672). For this reason, all users are encouraged to use this new version v2.1.2 instead of v2.1.1.It also fixes a smaller bug (#676) with the timestamps argument in Field.from_netcdf()

Mitchell L, Ham D, Gibson TH, et al., 2019, firedrakeproject/firedrake: an automated finite element system

firedrakeproject/firedrake: an automated finite element system

Rathgeber F, Mitchel L, Luporini F, et al., 2019, OP2/PyOP2: Framework for performance-portable parallel computations on unstructured meshes

OP2/PyOP2: Framework for performance-portable parallel computations on unstructured meshes

Homolya M, Mitchell L, Barton SN, et al., 2019, firedrakeproject/tsfc: The Two Stage Form Compiler

firedrakeproject/tsfc: The Two Stage Form Compiler

Ham D, Homolya M, Lange M, et al., 2019, FInAT/FInAT: a smarter library of finite elements

FInAT/FInAT: a smarter library of finite elements

Ham D, Hargreaves JC, Kerkweg A,
et al., 2019, Editorial: The publication of geoscientific model developments v1.2, *Geoscientific Model Development*, Vol: 12, Pages: 2215-2225, ISSN: 1991-959X

. Version 1.1 of the editorial of Geoscientific ModelDevelopment (GMD), published in 2015 (GMD ExecutiveEditors, 2015), introduced clarifications to the policy on publication of source code and input data for papers publishedin the journal. Three years of working with this policy hasrevealed that it is necessary to be more precise in the requirements of the policy and in the narrowness of its exceptions. Furthermore, the previous policy was not specific inthe requirements for suitable archival locations. Best practice in code and data archiving continues to develop andis far from universal among scientists. This has resulted inmany manuscripts requiring improvement in code and dataavailability practice during the peer-review process. New researchers continually start their professional lives, and it remains the case that not all authors fully appreciate why codeand data publication is necessary. This editorial provides anopportunity to explain this in the context of GMD.The changes in the code and data policy are summarisedas follows:– The requirement for authors to publish source code, unless this is impossible for reasons beyond their control,is clarified. The minimum requirements are strengthened such that all model code must be made accessible during the review process to the editor and to potentially anonymous reviewers. Source code that can bemade public must be made public, and embargoes arenot permitted. Identical requirements exist for input dataand model evaluation data sets in the model experimentdescriptions.The scope of the code and data required to be publishedis described. In accordance with Copernicus’ own datapolicy, we now specifically strongly encourage all codeand data used in any analyses be made available. Thiswill have particular relevance for some model evaluation papers where editors may now strongly request thismaterial be made available.– The requirements of suitable archival locations are specified, along with the recomm

Gibson TH, Mitchell L, Ham DA, et al., 2019, Slate: extending Firedrake's domain-specific abstraction tohybridized solvers for geoscience and beyond

<jats:p>Abstract. Within the finite element community, discontinuous Galerkin (DG) and mixed finite element methods have become increasingly popular in simulating geophysical flows. However, robust and efficient solvers for the resulting saddle-point and elliptic systems arising from these discretizations continue to be an on-going challenge. One possible approach for addressing this issue is to employ a method known as hybridization, where the discrete equations are transformed such that classic static condensation and local post-processing methods can be employed. However, it is challenging to implement hybridization as performant parallel code within complex models, whilst maintaining separation of concerns between applications scientists and software experts. In this paper, we introduce a domain-specific abstraction within the Firedrake finite element library that permits the rapid execution of these hybridization techniques within a code-generating framework. The resulting framework composes naturally with Firedrake's solver environment, allowing for the implementation of hybridization and static condensation as runtime-configurable preconditioners via the Python interface to PETSc, petsc4py. We provide examples derived from second order elliptic problems and geophysical fluid dynamics. In addition, we demonstrate that hybridization shows great promise for improving the performance of solvers for mixed finite element discretizations of equations related to large-scale geophysical flows. </jats:p>

Gibson T, McRae ATT, Cotter C, et al., 2019, Compatible finite element methods for geophysical flows: Automation and implementation using Firedrake, Publisher: Springer International Publishing, ISBN: 9783030239565

This book introduces recently developed mixed finite element methods for large-scale geophysical flows that preserve essential numerical properties for accurate simulations. The methods are presented using standard models of atmospheric flows and are implemented using the Firedrake finite element library. Examples guide the reader through problem formulation, discretisation, and automated implementation.The so-called “compatible” finite element methods possess key numerical properties which are crucial for real-world operational weather and climate prediction. The authors summarise the theory and practical implications of these methods for model problems, introducing the reader to the Firedrake package and providing open-source implementations for all the examples covered.Students and researchers with engineering, physics, mathematics, or computer science backgrounds will benefit from this book. Those readers who are less familiar with the topic are provided with an overview of geophysical fluid dynamics.

Ham D, Dalcin L, Mitchell L, et al., 2018, firedrakeproject/petsc4py: The Python interface to PETSc

This release is specifically created to document the version of petsc4py used in a particular set of experiments using Firedrake. Please do not cite this as a general source for Firedrake or any of its dependencies. Instead, refer to https://www.firedrakeproject.org/citing.html

Homolya M, Mitchell L, Barton NS, et al., 2018, firedrakeproject/tsfc: The Two Stage Form Compiler

This release is specifically created to document the version of tsfc used in a particular set of experiments using Firedrake. Please do not cite this as a general source for Firedrake or any of its dependencies. Instead, refer to https://www.firedrakeproject.org/citing.html

This data is extracted from the Web of Science and reproduced under a licence from Thomson Reuters. You may not copy or re-distribute this data in whole or in part without the written consent of the Science business of Thomson Reuters.