OpenSBLI: Automated code-generation for heterogeneous computing architectures applied to compressible fluid dynamics on structured grids
arXiv:2007.14933 · doi:10.1016/j.cpc.2021.108063
Abstract
OpenSBLI is an open-source code-generation system for compressible fluid dynamics (CFD) on heterogeneous computing architectures. Written in Python, OpenSBLI is an explicit high-order finite-difference solver on structured curvilinear meshes. Shock-capturing is performed by a choice of high-order Weighted Essentially Non-Oscillatory (WENO) or Targeted Essentially Non-Oscillatory (TENO) schemes. OpenSBLI generates a complete CFD solver in the Oxford Parallel Structured (OPS) domain specific language. The OPS library is embedded in C code, enabling massively-parallel execution of the code on a variety of high-performance-computing architectures, including GPUs. The present paper presents a code base that has been completely rewritten from the earlier proof of concept (Jacobs et al, JoCS 18 (2017), 12-23), allowing shock capturing, coordinate transformations for complex geometries, and a wide range of boundary conditions, including solid walls with and without heat transfer. A suite of validation and verification cases are presented, plus demonstration of a large-scale Direct Numerical Simulation (DNS) of a transitional Shockwave Boundary Layer Interaction (SBLI). The code is shown to have good weak and strong scaling on multi-GPU clusters. We demonstrate that code-generation and domain specific languages are suitable for performing efficient large-scale simulations of complex fluid flows on emerging computing architectures.
Submitted to Computer Physics Communications
References in corpus (3)
- Grid-converged Solution and Analysis of the Unsteady Viscous Flow in a Two-dimensional Shock Tube
- OpenSBLI: A framework for the automated derivation and parallel execution of finite difference solvers on a range of computer architectures
- STREAmS: a high-fidelity accelerated solver for direct numerical simulation of compressible turbulent flow
Cited by in corpus (4)
- WaterLily.jl: A differentiable and backend-agnostic Julia solver for incompressible viscous flow around dynamic bodies
- Effect of Tripping and Domain-Width on Transonic Buffet on Periodic NASA-CRM Airfoils
- GPU-based compressible lattice Boltzmann simulations on non-uniform grids using standard C++ parallelism: From best practices to aerodynamics, aeroacoustics and supersonic flow simulations
- Scale-resolving simulations and data-driven modal analysis of turbulent transonic buffet cells on infinite swept wings