We develop novel numerical methods and apply them to solve challenging fluid flow problems in various areas of science, engineering, and medicine. We are particularly interested in theoretical aspects of high-order numerical methods for unstructured grids, as well as their implementation for a range of modern hardware platforms.


'Turbulent Channel Flow' - Checkout our latest paper on identifying eigenmodes of averaged small-amplitude perturbations to turbulent channel flow

'Step Inside a Jet Engine' - Results from our latest PyFR simulations of flow over low pressure turbine blades on show at the Imperial Fringe

'Implant may Offer Kidney Patients Easier Dialysis' - Our latest work on suppressing unsteady flow in arterio-venous fistulae featured in the Times

'New Symmetric Quadrature Rules' - Checkout our latest paper on identification of symmetric quadrature rules for finite element methods


Recent Papers

Cache Blocking Strategies Applied to Flux Reconstruction. S. Akkurt, F. D. Witherden, P. E. Vincent. Accepted for publication in Computer Physics Communications.
Abstract: On modern hardware architectures, the performance of Flux Reconstruction (FR) methods can be limited by memory bandwidth. In a typical implementation, these methods are implemented as a chain of distinct kernels. Often, a dataset which has just been written in the main memory by a kernel is read back immediately by the next kernel. One way to avoid such a redundant expenditure of memory bandwidth is kernel fusion. However, on a practical level kernel fusion requires that the source for all kernels be available, thus preventing calls to certain third-party library functions. Moreover, it can add substantial complexity to a codebase. An alternative to full kernel fusion is cache blocking. But for this to be effective, CPU cache has to be meaningfully big. Historically, size of L1 and L2 caches prevented cache blocking for high-order CFD applications. However in recent years, size of L2 cache has grown from around 0.25 MiB to 1.25 MiB, and made it possible to apply cache blocking for high-order CFD codes. In this approach, kernels remain distinct, and are executed one after another on small chunks of data that can fit in the cache, as opposed to on full datasets. These chunks of data stay in the cache and whenever a kernel requests access to data that is already in the cache, memory bandwidth is conserved. In this study, a data structure that facilitates cache blocking is considered, and a range of kernel grouping configurations for an FR based Euler solver are examined. A theoretical study is conducted for hexahedral elements with no anti-aliasing at p = 3 and p = 4 in order to determine the predicted performance of a few kernel grouping configurations. Then, these candidates are implemented in the PyFR solver and the performance gains in practice are compared with the theoretical estimates that range between 2.05x and 2.50x. An inviscid Taylor-Green Vortex test case is used as a benchmark, and the most performant configuration leads to a speedup of approximately 2.81x in practice.

Synthetic Turbulence Generation for High-Order Scale-Resolving Simulations on Unstructured Grids. G. Giangaspero, F. D. Witherden, P. E. Vincent. Accepted for publication in AIAA Journal.
Abstract: An extended version of the Synthetic Eddy Method for generation of synthetic turbulence has been developed via a source term formulation and implemented in the open-source crossplatform solver PyFR. The method caters for the full space-dependent anisotropy of the target turbulent length scales and it is agnostic of the space and time discretization of the underlying solver, which can be incompressible or compressible. Moreover, the method does not require each solution point to communicate with nearest neighbours thus it is well suited for modern, massively parallel, high-order unstructured codes which support mixed and possibly curved elements. The method has been applied to two test cases: the classical incompressible flow problem of plane turbulent channel flow at Reτ = 180 and the compressible flow over the SD7003 wing at Re = 66000, Ma = 0.2 and α = 4. This test case has been run on three topologically different meshes composed of hexahedra, prisms and a combination of prisms and tetrahedra, respectively. Almost identical results have been obtained on the three meshes. Results also show that taking into account the anisotropy of the turbulent length scales can reduce the development length. For the SD7003 wing, the injection of synthetic turbulence improves the agreement between numerical and experimental results.



PhD Studentship - Development of In-situ Visualisation and Analysis Technology for High-Fidelity Computational Fluid Dynamics
Summary: A PhD Studentship is currently available. The project, will involve addition of 'in-situ' visualisation, processing, and analysis technology to PyFR, an open-source high-order massively-parallel CFD platform, as well as its application to solve a range of challenging unsteady flow problems. Candidates should hold, or expect to obtain, an undergraduate degree in a numerate discipline. Previous programming experience is important (ideally Python, C++ and CUDA).


Recent Seminars

Towards Green Aviation with Python at Petascale. P. E. Vincent. Tokyo University of Science, Tokyo, Japan. December 2017.
Next Generation CFD: High-Order Accurate Simulations using Many-Core Platforms. P. E. Vincent. Swiss National Supercomputing Center, Lugano, Switzerland. August 2016.