Imperial College London

DrDavidHam

Faculty of Natural SciencesDepartment of Mathematics

Senior Lecturer
 
 
 
//

Contact

 

+44 (0)20 7594 5003david.ham Website CV

 
 
//

Location

 

758Huxley BuildingSouth Kensington Campus

//

Summary

 

Publications

Publication Type
Year
to

84 results found

Gibson T, Mitchell L, Ham D, Cotter Cet al., Slate: extending Firedrake's domain-specific abstraction to hybridized solvers for geoscience and beyond, Geoscientific Model Development, 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.

Journal article

Ham DA, Mitchell L, Paganini A, Wechsung Fet al., 2019, Automated shape differentiation in the Unified Form Language, Structural and Multidisciplinary Optimization, Vol: 60, Pages: 1813-1820, ISSN: 1615-147X

Journal article

Dalcin L, Mitchell L, Brown J, Balay S, Farrell PE, Lange M, Gouarin L, Smith B, Knepley M, Karpeyev D, Zampini S, nocollier, Ham DA, Wells GN, celdred, Funke S, Wechsung F, Barral N, Ahmadia A, alejandrootero, Homolya M, Blechta J, Costamagna G, cnkin, Mather B, Cañardo Alastuey J, Guyer J, Ballarin Fet al., 2019, firedrakeproject/petsc4py: The Python interface to PETSc

firedrakeproject/petsc4py: The Python interface to PETSc

Software

Mitchell L, Ham D, Gibson TH, Rathgeber F, Homolya M, McRae ATT, Zhou F, Cotter CJ, Lange M, ksagiyam, Wechsung F, Andrej J, Luporini F, Kirby R, Sun T, APaganini, Poulin FJ, Roy T, Hawkes C, Kärnä T, Salwa T, Kalogirou A, Barral N, Greaves T, Kramer S, Gregory A, Funke SW, Büsing H, tommbendall, McBain Get al., 2019, firedrakeproject/firedrake: an automated finite element system

firedrakeproject/firedrake: an automated finite element system

Software

Logg A, Barton SN, Wells GN, Mitchell L, Homolya M, Ham D, Ring J, Blechta J, Rognes ME, Richardson C, Bergersen A, Wechsung F, Hale JS, Li L, Gibson TH, Leoni M, Barton N, Baratta I, Mardal K-A, Yashchuk I, Rathgeber F, Fauske VT, Markall G, celdred, Kirby R, Cotter CJ, maxalbert, mliertzer, Gregory A, cmauriniet al., 2019, firedrakeproject/ufl: The Unified Form Language

firedrakeproject/ufl: The Unified Form Language

Software

Rathgeber F, Mitchel L, Luporini F, Ham D, Markall G, Homolya M, Sun T, Barton SN, Dearman H, Gibson TH, gbts, Wechsung F, Kramer S, Funke SW, Shapero D, Kirby R, Lange M, Sato K, Russell F, Zhou Fet al., 2019, OP2/PyOP2: Framework for performance-portable parallel computations on unstructured meshes

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

Software

Homolya M, Mitchell L, Barton SN, Ham D, Sun T, Gibson TH, Kirby R, cyruscycheng21, Blechta J, Habera M, Kärnä T, celdredet al., 2019, firedrakeproject/tsfc: The Two Stage Form Compiler

firedrakeproject/tsfc: The Two Stage Form Compiler

Software

Homolya M, Kirby R, Blechta J, Rognes ME, Ham DA, Logg A, cyruscycheng21, Wells GN, Gibson TH, Ring J, Yashchuk I, Schlömer N, Mitchell L, Li L, Bergersen A, Cotter C, Hale JS, Richardson C, Knepley M, Rathgeber F, mliertzer, Terrel ARet al., 2019, firedrakeproject/fiat: The Finite Element Automated Tabulator

firedrakeproject/fiat: The Finite Element Automated Tabulator

Software

Ham D, Homolya M, Lange M, Kirby R, Lawrence M, cyruscycheng21, celdredet al., 2019, FInAT/FInAT: a smarter library of finite elements

FInAT/FInAT: a smarter library of finite elements

Software

van Sebille E, Delandmeter P, Lange M, Rath W, Scutt Phillips J, Simnator101, pdnooteboom, Kronborg J, Thomas-95, Wichmann D, Tarshish N, Busecke J, Edwards R, Sterl M, Walbridge S, Kaandorp M, Hart-Davis, Miron P, Glissenaar I, Vettoretti G, Ham Det al., 2019, OceanParcels/parcels: Parcels v2.0.0: a Lagrangian Ocean Analysis tool for the petascale age

Parcels v2.0.0 builds on previous versions v2.0.0.beta and v2.0.0.beta2. It's the release which is fully described in the paper The Parcels v2.0 Lagrangian framework: new field interpolation schemes, by Delandmeter and van Sebille, 2019, GMD.The major changes of v2.0.0 compared to v1.1.1 are1) The order of arguments for Field interpolation has changed. This is now field[time, depth, lat, lon], which is consistent with the dimension order in which data is stored in the field.data numpy array (#503 and #276).2) The dt argument has been dropped from Kernel definitions, so that the only arguments allowed in a Kernel are def kernelfunc(fieldset, particle, time) (#503)3) Interpolation for C-grids is now done in a fluxes framework, instead of a velocity framework (#499 and #494).4) Interpolation for B-grids (#573)5) Support for np.float64 accuracy of particle locations. This can be set using the lonlatdepth_dtype argument in ParticleSet construction. Default is np.float64 for C-grids, and np.float32 for all other grids (#552 and #557)Note also a number of other minor development:See v2.0.0.betaSee v2.0.0.beta2Unpinning netcdf4 1.4.1 (#597)Numerous bug fixes

Software

Ham D, Hargreaves JC, Kerkweg A, Roche DM, Sander Ret 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

Journal article

Ham D, Homolya M, Lange M, Kirby R, Mitchell Let al., 2019, FInAT/FInAT: a smarter library of finite elements

This release is specifically created to document the version of FInAT 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

Software

Ham D, Sheppard K, Duvenhage B, de Buyl Pet al., 2019, bashtage/randomgen: Release 1.16.2

Updated Xoroshiro120 to use AUthor's latest parameterizationClosely synchronized with the version of randomgen being integrated into NumPy, including removing:random_raw, which have been moved to the individual basic RNGsrandom_uintegers, which can be replaced with randint.Added RandomState as a clone of NumPy's RandomState.Removed LegacyGenerator since this is nolonger neededFixed many small bugs, including in cffi and ctype interfaces

Software

Rathgeber F, Mitchell L, Luporini F, Ham D, Markall G, Homolya M, tj-sun, Barton N, Dearman H, Gibson T, gbts, Wechsung F, Kramer S, Funke SW, Shapero D, Kirby R, Lange M, Sato K, Russell F, Fangyi Zet al., 2019, OP2/PyOP2: Framework for performance-portable parallel computations on unstructured meshes

This release is specifically created to document the version of PyOP2 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

Software

Gibson T, McRae ATT, Cotter C, Mitchell L, Ham Det 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.

Book

Ham D, van Sebille E, Delandmeter P, Lange M, Rath W, Phillips JS, Kronborg J, Wichmann D, Edwards R, Sterl M, Walbridge S, Vettoretti Get al., 2018, OceanParcels/parcels: Parcels v2.0.0-beta: a Lagrangian Ocean Analysis tool for the petascale age

This is the beta-release of Parcels v2. Compared to the last v1.1.1 release, there are three important changes1) The order of arguments for Field interpolation has changed. This is now field[time, depth, lat, lon], which is consistent with the dimension order in which data is stored in the field.data numpy array (#503 and #276).2) The dt argument has been dropped from Kernel definitions, so that the only arguments allowed in a Kernel are def kernelfunc(fieldset, particle, time) (#503)3) Interpolation for C-grids is now done in a fluxes framework, instead of a velocity framework. The details of this will be presented in a manuscript, to be submitted soon (#499 and #494)Note that 1) and 2) above mean that Kernels written for Parcels v1 will break in this Parcels v2. If you're updating to this v2.0.0beta, therefore please update your custom Kernels.Other updates since v1.1.1 are:New FieldSet.from_xarray_dataset() method to directly read xarray.DataSet objects (#476)An optional argument in Field.show() to control which depth level to plot (#478)ParticleSet.from_field() now also implemented for Curvilinear Fields (#496)And numerous small bug fixes

Software

Logg A, Barton N, Wells G, Homolya M, Mitchell L, Ham D, Ring J, Blechta J, Rognes M, Bergersen A, Richardson C, Wechsung F, Li L, Gibson T, Hale J, Leoni M, Barton N, Baratta I, mardal K-A, Yashchuck I, Rathgeber F, Fauske VT, Markall G, Kirby R, Cotter C, Albert M, Liertzer M, Gregory A, Hake J, Maurini Cet al., 2018, 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

Software

Ham D, Dalcin L, Mitchell L, Brown J, Farrell P, Lange M, Gouarin L, Smith B, Balay S, Karpayev D, Zampini S, Knepley M, Wells G, Funke SW, Barral N, Manoel T, Ahmadia A, Homolya M, Blechta J, Hisch T, Alastuey JC, Guyer J, Ballarin F, Nilsen R, Soprana ABet 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

Software

Mitchell L, Ham D, Gibson T, Rathgeber F, Homolya M, McRae ATT, Fangyi Z, Cotter CJ, Lange M, Andrej J, Luporini F, Kirby R, Wechsung F, Paganini A, Poulin FJ, Roy T, Hawkes C, Salwa T, Kalogirou A, Karna T, Greaves T, tj-sun, Gregory A, Kramer S, Funke SW, Busing H, McBain G, Mueller EHet al., 2018, firedrakeproject/firedrake: an automated finite element system

This release is specifically created to document the version of firedrake 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

Software

Ham D, Luporini F, Mitchell L, Homolya M, Gibson TH, Barton N, Rathgeber F, Lange M, Markall G, tj-sun, Blechta J, Russell F, Engwer Cet al., 2018, coneoproject/COFFEE: A Compiler for Fast Expression Evaluation

This release is specifically created to document the version of COFFEE 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

Software

Homolya M, Kirby R, Blechta J, Rognes ME, Ham D, Logg A, Wells GN, Gibson TH, Ring J, Yaschuck I, Schlomer N, Mitchell L, Li L, Bergerson A, Cotter CJ, Richardson C, Knepley M, Hale JS, Rathberger F, Liertzer M, Terrel ARet al., 2018, 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

Software

Homolya M, Mitchell L, Barton NS, Ham D, tj-sun, Gisbson TH, Kirby R, Blechta J, Karna Tet 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

Software

Kärnä T, Kramer SC, Mitchell L, Ham DA, Piggott MD, Baptista AMet 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.

Journal article

Kärnä T, Kramer SC, Mitchell L, Ham DA, Piggott MD, Baptista AMet al., 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>

Journal article

Homolya M, Mitchell L, Luporini F, Ham DAet al., 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.

Journal article

Wesselhoeft C, Ham DA, Misener R, 2018, Algorithms for Mixed-Integer Optimization Constrained by Partial Differential Equations, Computer Aided Chemical Engineering, Pages: 799-804

© 2018 Elsevier B.V. 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.

Book chapter

Schwedes T, Ham DA, Funke SW, Piggott MDet 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.

Book

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.

Journal article

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

Conference paper

Rathgeber F, Ham DA, Mitchell L, Lange M, Luporini F, McRae ATT, Bercea GT, Markall GR, Kelly PHJet 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.

Journal article

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.

Request URL: http://wlsprd.imperial.ac.uk:80/respub/WEB-INF/jsp/search-html.jsp Request URI: /respub/WEB-INF/jsp/search-html.jsp Query String: respub-action=search.html&id=00464536&limit=30&person=true