Publications
40 results found
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
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
- Author Web Link
- Open Access Link
- Cite
- Citations: 1
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.
Homolya M, Ham DA, 2016, A Parallel Edge Orientation Algorithm for Quadrilateral Meshes, SIAM Journal on Scientific Computing, Vol: 38, Pages: S48-S61, ISSN: 1095-7197
One approach to achieving correct finite element assembly is to ensure that the local orientation of facets relative to each cell in the mesh is consistent with the global orientation of that facet. Rognes et al. have shown how to achieve this for any mesh composed of simplex elements, and deal.II contains a serial algorithm for constructing a consistent orientation of any quadrilateral mesh of an orientable manifold. The core contribution of this paper is the extension of this algorithm for distributed memory parallel computers, which facilitates its seamless application as part of a parallel simulation system. Furthermore, our analysis establishes a link between the well-known Union-Find algorithm and the construction of a consistent orientation of a quadrilateral mesh. As a result, existing work on the parallelization of the Union-Find algorithm can be easily adapted to construct further parallel algorithms for mesh orientations.
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: 1095-7197
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.
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: 16
Ham D, 2015, firedrake: an automated finite element system
Automated multiplatform code generation for the finite element method.
Heinis T, Ham DA, 2015, On-the-Fly Data Synopses: Efficient Data Exploration in the Simulation Sciences, SIGMOD RECORD, Vol: 44, Pages: 23-28, ISSN: 0163-5808
Luporini F, Varbanescu AL, Rathgeber F, et al., 2015, Cross-Loop Optimization of Arithmetic Intensity for Finite Element Local Assembly, ACM Transactions on Architecture and Code Optimization, Vol: 11, Pages: 1-25, ISSN: 1544-3566
Hill J, Popova EE, Ham DA, et al., 2014, Adapting to life: ocean biogeochemical modelling and adaptive remeshing, OCEAN SCIENCE, Vol: 10, Pages: 323-343, ISSN: 1812-0784
- Author Web Link
- Cite
- Citations: 2
Bertolli C, Betts A, Loriant N, et al., 2013, Compiler optimizations for industrial unstructured mesh CFD applications on GPUs, Pages: 112-126, ISSN: 0302-9743
Graphical Processing Units (GPUs) have shown acceleration factors over multicores for structured mesh-based Computational Fluid Dynamics (CFD). However, the value remains unclear for dynamic and irregular applications. Our motivating example is HYDRA, an unstructured mesh application used in production at Rolls-Royce for the simulation of turbomachinery components of jet engines. We describe three techniques for GPU optimization of unstructured mesh applications: a technique able to split a highly complex loop into simpler loops, a kernel specific alternative code synthesis, and configuration parameter tuning. Using these optimizations systematically on HYDRA improves the GPU performance relative to the multicore CPU. We show how these optimizations can be automated in a compiler, through user annotations. Performance analysis of a large number of complex loops enables us to study the relationship between optimizations and resource requirements of loops, in terms of registers and shared memory, which directly affect the loop performance. © Springer-Verlag Berlin Heidelberg 2013.
Du J, Fang F, Pain CC, et al., 2013, POD reduced-order unstructured mesh modeling applied to 2D and 3D fluid flow, COMPUTERS & MATHEMATICS WITH APPLICATIONS, Vol: 65, Pages: 362-379, ISSN: 0898-1221
- Author Web Link
- Cite
- Citations: 28
Farrell PE, Ham DA, Funke SW, et al., 2013, AUTOMATED DERIVATION OF THE ADJOINT OF HIGH-LEVEL TRANSIENT FINITE ELEMENT PROGRAMS, SIAM JOURNAL ON SCIENTIFIC COMPUTING, Vol: 35, Pages: C369-C393, ISSN: 1064-8275
- Author Web Link
- Open Access Link
- Cite
- Citations: 28
Ford R, Glover M, Ham D, et al., 2013, GungHo Phase 1 Computational Science Recommendations, Publisher: The Met Office, Forecasting Research Technical Report No: 587
Markall GR, Rathgeber F, Mitchell L, et al., 2013, Performance-portable finite element assembly using PyOP2 and FEniCS, Pages: 279-289, ISSN: 0302-9743
We describe a toolchain that provides a fully automated compilation pathway from a finite element domain-specific language to low-level code for multicore and GPGPU platforms. We demonstrate that the generated code exceeds the performance of the best available alternatives, without requiring manual tuning or modification of the generated code. The toolchain can easily be integrated with existing finite element solvers, providing a means to add performance portable methods without having to rebuild an entire complex implementation from scratch. © 2013 Springer-Verlag.
Markall GR, Slemmer A, Ham DA, et al., 2013, Finite element assembly strategies on multi-core and many-core architectures, INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN FLUIDS, Vol: 71, Pages: 80-97, ISSN: 0271-2091
- Author Web Link
- Cite
- Citations: 37
Rognes ME, Ham DA, Cotter CJ, et al., 2013, Automating the solution of PDEs on the sphere and other manifolds in FEniCS 1.2, GEOSCIENTIFIC MODEL DEVELOPMENT, Vol: 6, Pages: 2099-2119, ISSN: 1991-959X
- Cite
- Citations: 6
Farrell PE, Funke SW, Ham DA, et al., 2012, dolfin-adjoint
The dolfin-adjoint project automatically derives the discrete adjoint and tangent linear models from a forward finite element model written in the Python interface to Dolfin.
Hill J, Piggott MD, Ham DA, et al., 2012, On the performance of a generic length scale turbulence model within an adaptive finite element ocean model, OCEAN MODELLING, Vol: 56, Pages: 1-15, ISSN: 1463-5003
- Author Web Link
- Cite
- Citations: 5
Rathgeber F, Markall GR, Mitchell L, et al., 2012, PyOP2: A High-Level Framework for Performance-Portable Simulations on Unstructured Meshes, 25th ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC), Publisher: IEEE, Pages: 1116-1123
- Author Web Link
- Cite
- Citations: 11
Cotter CJ, Ham DA, 2011, Numerical wave propagation for the triangular P1(DG)-P2 finite element pair, JOURNAL OF COMPUTATIONAL PHYSICS, Vol: 230, Pages: 2806-2820, ISSN: 0021-9991
- Author Web Link
- Open Access Link
- Cite
- Citations: 24
Ham DA, 2010, On techniques for modelling coastal and ocean flow with unstructured meshes
Markall GR, Ham DA, Kelly PHJ, 2010, Towards generating optimised finite element solvers for GPUs from high-level specifications, International Conference on Computational Science (ICCS), Publisher: ELSEVIER SCIENCE BV, Pages: 1809-1817, ISSN: 1877-0509
- Cite
- Citations: 13
Markall GR, Ham DA, Kelly PHJ, 2010, Generating Optimised Finite Element Solvers for GPU Architectures, International Conference on Numerical Analysis and Applied Mathematics, Publisher: AMER INST PHYSICS, Pages: 787-790, ISSN: 0094-243X
We show that optimal implementations of a finite element solver written for a Graphics Processing Unit and a multicore CPU require the use of different algorithms and data formats. This motivates the use of code generation in order to produce efficient, maintainable implementations of the finite element method for GPU architectures.
Cotter CJ, Ham DA, Pain CC, 2009, A mixed discontinuous/continuous finite element pair for shallow-water ocean modelling, OCEAN MODELLING, Vol: 26, Pages: 86-90, ISSN: 1463-5003
- Author Web Link
- Open Access Link
- Cite
- Citations: 49
Cotter CJ, Ham DA, Pain CC, et al., 2009, LBB stability of a mixed Galerkin finite element pair for fluid flow simulations, JOURNAL OF COMPUTATIONAL PHYSICS, Vol: 228, Pages: 336-348, ISSN: 0021-9991
- Open Access Link
- Cite
- Citations: 36
Ham DA, Pain CC, Hanert E, et al., 2009, Special Issue: The sixth international workshop on unstructured mesh numerical modelling of coastal, shelf and ocean flows. Imperial College London, September 19-21, 2007, OCEAN MODELLING, Vol: 28, Pages: 1-1, ISSN: 1463-5003
- Author Web Link
- Cite
- Citations: 3
Ham D, Farrell P, Gorman G, et al., 2008, Spud
Spud is a generic system for defining, writing and processing options files for scientific computer models.The interfaces to scientific computer models are frequently primitive, under-documented and ad-hoc text files. This makes using and developing the model in question difficult and error-prone.With Spud, the model developer need only write a rules file (schema) which defines the options which the model takes and the relationship between them. The Spud component Diamond then provides an automatically generated graphical user interface which guides the user and validates the user's input against the schema. Diamond writes out an xml options file for use in Spud.The developer then uses libspud to read the options file into the model. Libspud can read any valid options file without further code modifications and makes the options available at any point in the model code at which they are required.Spud further provides the facility for the schema to be self-documenting and Diamond presents this documentation to the model user in a context-sensitive manner.
Ham DA, Farrell PE, Gorman GJ, et al., 2008, Spud 1.0: generalising and automating the user interfaces of scientific computer models, GEOSCI MODEL DEV, Vol: 1, Pages: 125-146, ISSN: 1991-959X
The interfaces by which users specify the scenarios to be simulated by scientific computer models are frequently primitive, under-documented and ad-hoc text files which make using the model in question difficult and error-prone and significantly increase the development cost of the model. In this paper, we present a model-independent system, Spud, which formalises the specification of model input formats in terms of formal grammars. This is combined with an automated graphical user interface which guides users to create valid model inputs based on the grammar provided, and a generic options reading module which minimises the development cost of adding model options.Together, this provides a user friendly, well documented, self validating user interface which is applicable to a wide range of scientific models and which minimises the developer input required to maintain and extend the model interface.
- Abstract
- Open Access Link
- Cite
- Citations: 1
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.