HIS paper presents a study of re-engineering a direct numerical simulation (DNS) code (denoted as SBLI thereafter) that was primarily developed for simulation of shock wave and turbulent boundary layer interactions [1, 2]. The SBLI code solves the three-dimensional compressible Navier-Stokes equations for the Cartesian velocity components on curvilinear grids. High-order central differencing schemes (4th-order and 6th-order) are adopted for the spatial discretizations [3] and a compact low-storage three-step Runge-Kutta algorithm (3rd-order) for the time advancement [4]. A numerical treatment based on the entropy splitting developed by Yee, Sandham and co-workers [3, 5] has been used to improve the computational stability of previous attempts at combining high accuracy codes for direct numerical simulation with those codes capable of shock capturing. When the flow contains discontinuities such as shock waves, the TVD scheme with the artificial compression method (ACM) of Yee et al.[3] is applied. The code has been parallelized using the MPI library.
Although the SBLI code was initially developed for numerical simulation of transonic flow over a bump geometry [1, 2, 6] and then used to simulate a similar problem of an oblique impinging shock interacting with a spatially-developing boundary-layer flow [7], the code has proved to be remarkably adaptable and its variants have been successfully used for simulations of a broad range of transitional and turbulent flows, including supersonic turbulent channel flow, plane jet aeroacoustics, shock wave and turbulent spot interactions [8], transitional heat transfer, jet in cross-flow simulation [9], transonic cavity flow [10], trailing-edge noise calculations [28], and most recently separation bubbles on an airfoil at incidence [11]. In addition to these case studies for understanding the physics of turbulent flows, the SBLI code has also been used as a HPC benchmark code for performance test on various HPC architectures [26] and most recently as a test code for co-array FORTRAN [29]. With the rapid expansion of user base for the SBLI code, particularly over the last three years, it has been inevitable that different versions have appeared for simulation of specific flow problems. Accordingly, there are three main variants (i) a multi-block version, initiated and developed for cavity flow simulation [10] and later for jet in cross-flow simulation [9];(ii) a large-eddy simulation (LES) variant, incorporating a suite of sub-grid-scale models that has been applied to high-Reynolds flows [12];(iii) an airfoil version with adaptations to C-type grids, specific trailing-edge treatment, and incorporating new quiet boundary conditions [11]. In addition to these, the various extensions include ad hoc modifications, leading to repeat programming of input data, boundary conditions and statistical processing. At the same time, new users increasingly have to carry out mix-and-match developments from several of the main code variants. Hence, there is need to develop a new version of the code that includes all recent developments.