Creation of a hybrid DG/FD solver for CFD
||Creation of a hybrid DG/FD solver for CFD|
||SNIC Small Compute|
||Andrew Ross Winters <firstname.lastname@example.org>|
||2021-07-01 – 2022-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.
A new high-order computational framework for fluid dynamics, Trixi.jl (https://github.com/trixi-framework/Trixi.jl), has been developed. Written in Julia, this code is built from a nodal discontinuous Galerkin spectral element method that relies on the SBP derivative operator ansatz in their approximation for stability, shock capturing and boundary condition treatments. Recently, SBP finite differences capabilities have been added as an experimental feature in Trixi.jl.
The goal of this continued project is to combine these two SBP solver capabilities, which already exist within the Trixi.jl code framework, and create a hybrid CFD solver. Further, the project will address the parallel performance (via multi-threading or MPI) of the novel Julia computational framework. Of particular interest is load balancing as Trixi.jl also has the capability of using p4est (https://github.com/cburstedde/p4est) for adaptive mesh refinement. An interesting question for the hybrid solver would be to not only adaptively change the mesh for the flow approximation but also the type of high-order SBP discretisation within each element depending on specific flow characteristics/geometric requirements.