Creation of a hybrid CFD solver from two existing high-order SBP frameworks
||Creation of a hybrid CFD solver from two existing high-order SBP frameworks|
||SNIC Small Compute|
||Andrew Ross Winters <firstname.lastname@example.org>|
||2019-06-04 – 2020-07-01|
Simulation of complex fluid flows, such as airflow over a car, contains a multitude of scales in space and time. Moreover, the evolving fluid can exhibit a wide range of phenomena, like turbulence. To accurately model such complicated flow structures high-order numerical methods are often required because of their inherent ability to resolve these phenomena on a modest number of degrees of freedom (DOFs) compared to low-order numerical methods. Additionally, there exist a multitude of high-order methods, e.g. nodal discontinuous Galerkin, compact finite difference, etc., with very weak coupling of the algorithms between compute blocks. That is, there is a large amount of local computation compared to the data communication between blocks (sometimes called elements). This grants these high-order methods better computational efficiency that is particularly well-suited for high performance computing.
This resolution power typically comes at the cost of more delicate stability for the CFD solver. That is, artificial instabilities can be introduced, e.g. by aliasing errors, that grow in time and can even lead to complete failure of the method (i.e. the code crashes). However, a particular class of high-order methods built from summation-by-parts (SBP) derivative operators can circumvent these stability issues. This is because the numerical scheme is constructed to discretely respect stability estimates of the continuous partial differential equation that governs the model.
While enhanced discrete stability is a common feature among these methods there can still be differences with respect to how a SBP method approximates the solution, e.g. the propagation of waves. That is, the dissipation and dispersion properties of a discretization can vary depending on their underlying construction, e.g. discontinuous Galerkin versus finite difference. As with anything, there are advantages and disadvantages of either discretization technique which are largely dependent on the underlying physics and/or the mathematical model under consideration.
There exist two high-order SBP codes, FLUXO and ESSENSE, that have been used on HPC clusters for CFD computations. The first is build from a nodal discontinuous Galerkin spectral element method and the second is constructed from compact finite difference approximations. Both codes fundamentally rely on the SBP derivative operator ansatz in their approximation as well as the implementation of boundary conditions.
The goal of this project is to combine these two SBP codes into a hybrid CFD solver. This hybrid code will retain the beneficial properties of the respective underlying schemes, e.g. geometric flexibility from both codes, small dispersion errors from FLUXO, and sparse matrix structure from ESSENSE, as well as maintain strong scaling parallel performance. In particular, accomplishing this task will require careful design of load balancing strategies as the hybrid solver should adaptively select between the SBP ansatz of either FLUXO or ESSENSE depending on specific flow characteristics.