7 research outputs found
Spud 1.0: generalising and automating the user interfaces of scientific computer models
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, libspud, which minimises the development cost of adding model options. <br><br> 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
Shingle 2.0: generalising self-consistent and automated domain discretisation for multi-scale geophysical models
The approaches taken to describe and develop spatial discretisations of the
domains required for geophysical simulation models are commonly ad hoc, model
or application specific and under-documented. This is particularly acute for
simulation models that are flexible in their use of multi-scale, anisotropic,
fully unstructured meshes where a relatively large number of heterogeneous
parameters are required to constrain their full description. As a consequence,
it can be difficult to reproduce simulations, ensure a provenance in model data
handling and initialisation, and a challenge to conduct model intercomparisons
rigorously. This paper takes a novel approach to spatial discretisation,
considering it much like a numerical simulation model problem of its own. It
introduces a generalised, extensible, self-documenting approach to carefully
describe, and necessarily fully, the constraints over the heterogeneous
parameter space that determine how a domain is spatially discretised. This
additionally provides a method to accurately record these constraints, using
high-level natural language based abstractions, that enables full accounts of
provenance, sharing and distribution. Together with this description, a
generalised consistent approach to unstructured mesh generation for geophysical
models is developed, that is automated, robust and repeatable, quick-to-draft,
rigorously verified and consistent to the source data throughout. This
interprets the description above to execute a self-consistent spatial
discretisation process, which is automatically validated to expected discrete
characteristics and metrics.Comment: 18 pages, 10 figures, 1 table. Submitted for publication and under
revie
Multilayered abstractions for partial differential equations
How do we build maintainable, robust, and performance-portable scientific
applications? This thesis argues that the answer to this software engineering
question in the context of the finite element method is through the use of
layers of Domain-Specific Languages (DSLs) to separate the various concerns in
the engineering of such codes.
Performance-portable software achieves high performance on multiple diverse
hardware platforms without source code changes. We demonstrate that finite
element solvers written in a low-level language are not performance-portable,
and therefore code must be specialised to the target architecture by a code
generation framework. A prototype compiler for finite element variational forms
that generates CUDA code is presented, and is used to explore how good
performance on many-core platforms in automatically-generated finite element
applications can be achieved. The differing code generation requirements for
multi- and many-core platforms motivates the design of an additional
abstraction, called PyOP2, that enables unstructured mesh applications to be
performance-portable.
We present a runtime code generation framework comprised of the Unified Form
Language (UFL), the FEniCS Form Compiler, and PyOP2. This toolchain separates
the succinct expression of a numerical method from the selection and
generation of efficient code for local assembly. This is further decoupled from
the selection of data formats and algorithms for efficient parallel
implementation on a specific target architecture.
We establish the successful separation of these concerns by demonstrating the
performance-portability of code generated from a single high-level source code
written in UFL across sequential C, CUDA, MPI and OpenMP targets. The
performance of the generated code exceeds the performance of comparable
alternative toolchains on multi-core architectures.Open Acces
Modelling the transient drainage of liquid in foams
Froth flotation is the largest tonnage separation process worldwide and is used for
paper deinking, water purification and, particularly, mineral separation. One of the key
aspects of the performance of
flotation cells is the behaviour of the liquid within the
froth, as it is crucial to the purity of the product and a major influence on the overall
recovery. Nonlinearities in models for liquid motion in the froth make them complex to
solve and existing numerical solutions have been in two dimensions at most. In order to
predict the performance of industrial
flotation cell designs, a three-dimensional solution
for these equations is desirable. Moreover, the understanding of the process would be
enhanced if a transient model were used to predict the dynamics of foam drainage.
In this work, the equations for the liquid drainage have been rearranged in order to
make them analogous to a compressible version of the Navier-Stokes equations, coupled
to an equation of state. A model for predicting the movement of the flowing foam
has also been developed, which is able to solve for the foam velocity in two and three
dimensions. This has allowed the transient behaviour of liquid in flotation foams to
be modelled using Fluidity, a general purpose finite element method code that allows
simulations to be carried out on unstructured adaptive meshes. This is an important
feature for improving the computational cost of modelling these systems, as there are
boundary layers present in the process, whose size is independent of the scale of the
flotation system being modelled.
These models have allowed, for the first time, to carry out numerical investigations
of drainage for arbitrary
flotation tank geometries in up to three dimensions, and have
been verified against analytical solutions and compared to laboratory scale experiments
with satisfactory agreement
Modelling multiple-material flows on adaptive unstructured meshes.
The ability to distinguish between regions with different material properties is essential
when numerically modelling many physical systems. Using a dual control volume
mesh that avoids the problem of corner coupling, the HyperC face value scheme is extended
to multiple dimensions and applied as a device for material advection on unstructured
simplex meshes. The new scheme performs well at maintaining sharp interfaces
between materials and is shown to produce small advection errors, comparable to those
of standard material advection methods on structured meshes. To further minimise numerical
diffusion of material interfaces a total variation bounded
flux limiter, UltraC, is
defined using a normalised variable diagram.
Combining the material tracking scheme with dynamically adapting meshes, the use
of a minimally dissipative bounded projection algorithm for interpolating fields from
the old mesh to the new, optimised mesh is demonstrated that conserves the mass of
each material. More generally, material conservation during the advection process is
ensured through the coupling of the material tracking scheme to the momentum and mass
equations. A new element pair for the discretisation of velocity and pressure is proposed
that maintains the stability of the system while conserving the mass of materials.
When modelling multiple materials the use of independent advection algorithms for
each material can lead to the problem of non-physical material overlap. A novel coupled
flux limiter is developed to overcome this problem. This automatically generalises
to arbitrary numbers of materials. Using the fully coupled (and rigorously verified)
multi-material model, several geophysically relevant simulations are presented examining
the generation of waves by landslides. The model is validated by demonstrating
close agreement between model predictions and experimental results of wave generation,
propagation and run-up. The simulations also showcase the powerful capabilities of an
unstructured, adaptive multi-material model in real world scenarios