Diagram showing the mean free surface height H (also known as the depth or the distance to the seabed, shaded gray) and the free surface perturbation h, within the shallow water model.

Diagram showing the mean free surface height H (also known as the depth or the distance to the seabed, shaded gray) and the free surface perturbation h, within the shallow water model.

Source publication
Article
Full-text available
This model description paper introduces a new finite element model for the simulation of non-linear shallow water flows, called Firedrake-Fluids. Unlike traditional models that are written by hand in static, low-level programming languages such as Fortran or C, Firedrake-Fluids uses the Firedrake framework to automatically generate the model's code...

Context in source publication

Context 1
... analytical solutions are given by Bermudez and Vazquez (1994) and almost completely overlap the numerical solutions. Note that the free surface plot (a) includes the mean free surface height, such that the y axis represents h + H. Figure 11 once again demonstrates a good match between Figure 10. Numerical solutions from the tidal flow simulation over a regular bed, at t = 9117.5 ...

Citations

... The first phase of the project involved building upon some recently completed proof-of-concept work (Jacobs and Piggott, 2015) on the use of Firedrake to solve idealised shallow water (SW) problems, to replicate Fluidity's current SW solver using code generation techniques. This model comprises a collection of files, mostly written in the high-level Unified Form Language (Alnaes et al., 2014) which describes the governing equations in their 'weak/variational form'. ...
Technical Report
Full-text available
1. Abstract Fluidity (fluidity-project.org) is a fully-featured, open source, computational fluid dynamics (CFD) framework. It comprises several advanced numerical models based on the finite element method as well as a number of novel numerical features (e.g. mesh adaptivity) making it suitable for multi-scale simulations (Piggott et al., 2008). It is largely unique in its abilities to also solve large-scale geophysical/oceanographic problems. Key examples include marine renewable energy, tsunami simulation and inundation, and palaeo-tidal simulations for hydrocarbon exploration (Martin-Short et al., 2015; Mitchell et al., 2010; Mitchell et al., 2011; Oishi et al., 2013; Shaw et al., 2008). The current Fluidity codebase comprises handwritten Fortran code to perform the finite element discretisation. Not only is this handwritten code potentially sub-optimal, it presents issues regarding its maintainability and longevity; should one want to run Fluidity on a newer hardware architecture more suited to larger scale problems in the future, then the entire codebase may have to be rewritten. Furthermore, the need for numerical modellers to not only be experts in their field of science, but also be well-versed in parallel programming and code optimisation, is unsustainable in the long-term. This eCSE project delivers a step-change in the performance and functionality of the shallow water model within Fluidity, accomplished by using the Firedrake (firedrakeproject.org) framework for the automated solution of partial differential equations using code generation techniques (Rathgeber et al., Submitted). A key aim is to remove Fluidity's existing handwritten Fortran finite
... Firedrake has reached a level of maturity and feature parity with DOLFIN which make it suitable for third parties to use and build upon. Jacobs and Piggott [2014] in the Applied Modelling and Computation Group (AMCG) ...
Thesis
Full-text available
In an ideal world, scientific applications are computationally efficient, maintainable and composable and allow scientists to work very productively. We argue that these goals are achievable for a specific application field by choosing suitable domain-specific abstractions that encapsulate domain knowledge with a high degree of expressiveness. This thesis demonstrates the design and composition of domain-specific abstractions by abstracting the stages a scientist goes through in formulating a problem of numerically solving a partial differential equation. Domain knowledge is used to transform this problem into a different, lower level representation and decompose it into parts which can be solved using existing tools. A system for the portable solution of partial differential equations using the finite element method on unstructured meshes is formulated, in which contributions from different scientific communities are composed to solve sophisticated problems. The concrete implementations of these domain-specific abstractions are Firedrake and PyOP2. Firedrake allows scientists to describe variational forms and discretisations for linear and non-linear finite element problems symbolically, in a notation very close to their mathematical models. PyOP2 abstracts the performance-portable parallel execution of local computations over the mesh on a range of hardware architectures, targeting multi-core CPUs, GPUs and accelerators. Thereby, a separation of concerns is achieved, in which Firedrake encapsulates domain knowledge about the finite element method separately from its efficient parallel execution in PyOP2, which in turn is completely agnostic to the higher abstraction layer. As a consequence of the composability of those abstractions, optimised implementations for different hardware architectures can be automatically generated without any changes to a single high-level source. Performance matches or exceeds what is realistically attainable by hand-written code. Firedrake and PyOP2 are combined to form a tool chain that is demonstrated to be competitive with or faster than available alternatives on a wide range of different finite element problems.