Computational Fluid dynamics (CFD) is widely used in the automotive, aeronautical and heavy engineering industries, as well as being a staple of the academic community. Modelling for example, advanced aerodynamics processes in cars and casing and completion tool processes for the oil and gas industry, the impact CFD is huge. The renewable energy sector is increasing looking at CFD to model, for example, the impact of both wind and tidal effects on the super-structure of off-shore wind turbines.

Within CRESTA, we targeted two CFD codes, OpenFOAM and NEK5000.

CRESTA utilised OpenFOAM, an open-source toolbox for computational fluid dynamics (CFD), to simulate fluid flow through hydraulic systems in hydro power plants. OpenFOAM provides generic tools to simulate complex physics for fluid flows involving chemical reactions, turbulence and/or heat transfer, in addition to solid dynamics and electromagnetism. The Institute of Fluid Mechanics and Hydraulic Machinery (IHS) of University of Stuttgart is investigating the capabilities of OpenFOAM in the field of numerical simulations of a complete hydraulic system in hydro power plants. Fluid flow through the hydraulic system in water power plant is a very complex turbulent flow. The possibility to predict and understand turbulent flows are very important during the design process. OpenFOAM has already demonstrated scalability of up to 2K processors. In addition to limitations in the algorithms, mesh generation is a limiting factor. For off-shore wind turbines, complex meshes are required. For an accurate model, meshes of many millions and millions of cells are required. Typically, a million cells in a mesh require approximately 1GB of memory – and 20 million cells for a large scale model is average. Clearly, exascale memory requirements are needed to compute meshes.

Nek5000 is a highly scalable open-source simulation code for the simulation of incompressible flows in moderately complex geometries. Nek5000 is maintained at Argonne National Laboratories (USA) and is used at many universities in Europe, including e.g. KTH Stockholm, and ETH Zürich. The KTH FLOW group has extensive collaborations with the Nek5000 development team. Since its beginning, Nek5000 was designed to be a code to employ large-scale parallelism. The Nek5000 code has a long history of HPC development, including a 1999 Gordon Bell Award, and successful scaling to 290,000 processors on the Julich BG/P.  The Nek5000 kernel has been fully characterised, the kernel arithmetic is dominated by matrix products and well suited to anticipated exascale architectures.  For fluid-dynamics simulations, the CRESTA KTH team extend Nek5000 to support variable approximation order adaptivity.  Variable-order adaptivity will allow regions of flow that display significant error to be locally refined, such that the overall grid is balanced, i.e., the error is uniformly distributed without wasteful over-resolution in some regions. Learn more in this video: