Publications
71 results found
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
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.
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.
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: 8
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()
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
Mitchell L, Ham D, Gibson TH, et al., 2019, firedrakeproject/firedrake: an automated finite element system
firedrakeproject/firedrake: an automated finite element system
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 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.
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
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
Kärnä T, Kramer SC, Mitchell L, et al., 2018, Thetis coastal ocean model: discontinuous Galerkin discretization for the three-dimensional hydrostatic equations, Geoscientific Model Development, Vol: 11, Pages: 4359-4382, ISSN: 1991-959X
Unstructured grid ocean models are advantageous for simulating the coastal ocean and river-estuary-plume systems. However, unstructured grid models tend to be diffusive and/or computationally expensive which limits their applicability to real life problems. In this paper, we describe a novel discontinuous Galerkin (DG) finite element discretization for the hydrostatic equations. The formulation is fully conservative and second-order accurate in space and time. Monotonicity of the advection scheme is ensured by using a strong stability preserving time integration method and slope limiters. Compared to previous DG models advantages include a more accurate mode splitting method, revised viscosity formulation, and new second-order time integration scheme. We demonstrate that the model is capable of simulating baroclinic flows in the eddying regime with a suite of test cases. Numerical dissipation is well-controlled, being comparable or lower than in existing state-of-the-art structured grid models.
Kärnä T, Kramer SC, Mitchell L, et al., 2018, Thetis coastal ocean model: discontinuous Galerkin discretization for the three-dimensional hydrostatic equations, Geoscientific Model Development, Vol: 11, Pages: 4359-4382
<jats:p>Abstract. Unstructured grid ocean models are advantageous for simulating the coastal ocean and river–estuary–plume systems. However, unstructured grid models tend to be diffusive and/or computationally expensive, which limits their applicability to real-life problems. In this paper, we describe a novel discontinuous Galerkin (DG) finite element discretization for the hydrostatic equations. The formulation is fully conservative and second-order accurate in space and time. Monotonicity of the advection scheme is ensured by using a strong stability-preserving time integration method and slope limiters. Compared to previous DG models, advantages include a more accurate mode splitting method, revised viscosity formulation, and new second-order time integration scheme. We demonstrate that the model is capable of simulating baroclinic flows in the eddying regime with a suite of test cases. Numerical dissipation is well-controlled, being comparable or lower than in existing state-of-the-art structured grid models. </jats:p>
Homolya M, Mitchell L, Luporini F, et al., 2018, TSFC: a structure-preserving form compiler, SIAM Journal on Scientific Computing, ISSN: 1064-8275
A form compiler takes a high-level description of the weak form of partialdifferential equations and produces low-level code that carries out the finiteelement assembly. In this paper we present the Two-Stage Form Compiler (TSFC),a new form compiler with the main motivation to maintain the structure of theinput expression as long as possible. This facilitates the application ofoptimizations at the highest possible level of abstraction. TSFC features anovel, structure-preserving method for separating the contributions of a formto the subblocks of the local tensor in discontinuous Galerkin problems. Thisenables us to preserve the tensor structure of expressions longer through thecompilation process than other form compilers. This is also achieved in part bya two-stage approach that cleanly separates the lowering of finite elementconstructs to tensor algebra in the first stage, from the scheduling of thosetensor operations in the second stage. TSFC also efficiently traversescomplicated expressions, and experimental evaluation demonstrates goodcompile-time performance even for highly complex forms.
Wesselhoeft C, Ham DA, Misener R, 2018, Algorithms for Mixed-Integer Optimization Constrained by Partial Differential Equations, Computer Aided Chemical Engineering, Pages: 799-804
Mixed-integer, partial differential equation (PDE) constrained optimization (MIP-DECO) is a flexible modeling framework with many engineering applications, e.g. tidal and wind turbine siting, pharmaceutical business operations, disaster recovery, and solid product creation. But solving MIPDECO is daunting because it combines both integer programming and partial differential equations in a single optimization model. We consider a range of optimization algorithms for addressing MIPDECO from two applications: (i) the Source Inversion and (ii) the Tidal Stream Turbine Optimization problems. We report on the relevant merits of these approaches and make our results available as an open source extension to OpenTidalFarm.
Schwedes T, Ham DA, Funke SW, et al., 2017, Mesh dependence in PDE-constrained optimisation an application in tidal turbine array layouts, Publisher: Springer, ISBN: 9783319594835
This section verifies the iteration count estimates by solving the optimisation problem (2.2) numerically. The first experiment investigates the number of optimisation iterations required to solve (2.2) under non-uniform mesh refinement.
Luporini F, Ham DA, Kelly PHJ, 2017, An algorithm for the optimization of finite element integration loops, ACM Transactions on Mathematical Software, Vol: 44, ISSN: 0098-3500
We present an algorithm for the optimization of a class of finite element integration loop nests. This algo-rithm, which exploits fundamental mathematical properties of finite element operators, is proven to achievea locally optimal operation count. In specified circumstances the optimum achieved is global. Extensive nu-merical experiments demonstrate significant performance improvements over the state of the art in finiteelement code generation in almost all cases. This validates the effectiveness of the algorithm presented here,and illustrates its limitations.
Kalogirou A, Bokhove O, Ham D, 2017, MODELLING OF NONLINEAR WAVE -BUOY DYNAMICS USING CONSTRAINED VARIATIONAL METHODS, 36th ASME International Conference on Ocean, Offshore and Arctic Engineering, Publisher: AMER SOC MECHANICAL ENGINEERS
Rathgeber F, Ham DA, Mitchell L, et al., 2016, Firedrake: Automating the finite element method by composing abstractions, ACM Transactions on Mathematical Software, Vol: 43, ISSN: 0098-3500
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.
- Abstract
- Open Access Link
- Cite
- Citations: 288
McRae ATT, Mitchell L, Bercea, et al., 2016, Automated Generation and Symbolic Manipulation of Tensor Product Finite Elements, SIAM Journal on Scientific Computing, Vol: 38, Pages: S25-S47, ISSN: 1064-8275
We describe and implement a symbolic algebra for scalar and vector-valued finite elements, enabling the computer generation of elements with tensor product structure on quadrilateral, hexahedral, and triangular prismatic cells. The algebra is implemented as an extension to the domain-specific language UFL, the Unified Form Language. This allows users to construct many finite element spaces beyond those supported by existing software packages. We have made corresponding extensions to FIAT, the FInite element Automatic Tabulator, to enable numerical tabulation of such spaces. This tabulation is consequently used during the automatic generation of low-level code that carries out local assembly operations, within the wider context of solving finite element problems posed over such function spaces. We have done this work within the code-generation pipeline of the software package Firedrake; we make use of the full Firedrake package to present numerical examples.
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.