We present STREAmS-2.0, an updated version of the flow solver STREAmS, first introduced in Bernardini et al. (2021) [1]. STREAmS-2.0 has an object-oriented design which separates the physics equations from the specific back-end, making the code more suitable for future expansions, such as porting to novel computing architectures or implementation of additional flow physics. Similarly to the previous version, STREAmS-2.0 supports NVIDIA-GPU and CPU back-ends. Additionally, this version features improvements of the input/output data management, new energy and entropy preserving schemes for the discretization of the convective fluxes, recycling/rescaling inflow boundary condition, and a model for thermally perfect gases with variable specific heats. New version program summaryProgram Title: STREAmSCPC Library link to program files:https://doi.org/10.17632/hdcgjpzr3y.2Developer's repository link:https://github.com/STREAmS-CFD/STREAmS-2Licensing provisions: GPLv3Programming language: Fortran, CUDAJournal reference of previous version: M. Bernardini, D. Modesti, F. Salvadore, and S. Pirozzoli. STREAmS: a high-fidelity accelerated solver for direct numerical simulation of compressible turbulent flows. Comput. Phys. Commun. 263 (2021) 107906.Does the new version supersede the previous version?: Yes.Reasons for the new version: New code structure and release of new features.Summary of revisions:•The original solver [1] has been rewritten following an object-oriented design implemented through Fortran derived types that include variables and type bound procedures. The new software architecture has been designed to increase modularity and extensibility of the code, allowing users to add new back-ends and physics equations while maintaining the same code structure. This allows users to reuse portions of the code that are independent of the physics equations, the back-end, or both. The layer of computing procedures maintains a lean structure that can be highly optimized with respect to the implemented back-end.•Input handling is now based on the classic .ini format improving both user readability and input data management.•A family of new kinetic energy and entropy preserving schemes (KEEP) are now available and can be selected for stable, non-dissipative and accurate spatial discretization of the convective terms of the Navier–Stokes equations in smooth flow regions [2]. Concerning the shock-capturing flux, the improved low-dissipative WENO-Z scheme proposed by [3] is now available.•New inflow boundary conditions based on the recycling/rescale approach [4] have been implemented for the simulation of spatially evolving compressible turbulent boundary layers. Moreover, a new inflow condition based on the solution of the compressible Blasius equation is available to take into account the case of laminar boundary layers.•The constitutive relations have been generalized to take into account thermally perfect gases with variable specific heats, approximated with polynomial functions of the temperature that can be specified by the user [5].•A new stretching function has been implemented to improve the distribution of grid nodes for the computation of wall-bounded turbulent flows. The formulation blends uniform near-wall spacing with uniform resolution in terms of Kolmogorov units in the outer wall layer, guaranteeing accuracy with higher computational efficiency [6].Nature of problem: The code solves the compressible Navier–Stokes equations in Cartesian coordinates for a thermally perfect gas. The solver is designed for direct numerical simulation (DNS) of compressible supersonic turbulent boundary layers and various canonical configurations are supported, including turbulent channel flow, laminar and turbulent boundary layer and shock-wave/boundary layer interaction.Solution method: The equations are discretized using high-order finite difference approximations with hybrid low-dissipative/shock-capturing capabilities and the time advancement is performed using a Runge–Kutta scheme.
Read full abstract