Lattice Boltzman Method with Adaptative Mesh Refinement strategy to solve the transport equation
Résumé
Introduction
The Lattice Boltzmann Method (LBM) is a widely
used method for solving the transport equation in
media with complex geometry. This popularity stems
both from its simplicity of implementation and from
its intrinsically parallelizable algorithm, which makes
it a highly efficient High-Performance Computing
(HPC) numerical method.
The main drawback of this method, in its basic form,
is the use of a lattice similar to a regular Cartesian
mesh, which can lead to use a large number of sites
with a level of discretization that is much too high in
areas of low interest. We propose here to use an
Adaptive Mesh Refinement method for the LBM with
the strong objective of not reducing the HPC
efficiency of LBM.
HPC strategy
Our main objective is to develop a high-level
language portable simulation tool on different parallel
CPU and GPU architectures without having to rewrite
it with each new processors technological advance.
To do this, we have developed our code in C++
coupled with the Kokkos library that allows us to
obtain an executable that runs on several kinds of
architectures (as multicores x86 multicores, GPU
NVIDIA®, AMD GPU or ARM processor) [1,2].
LBM on non-conformal grids
In order to modify a LB numerical scheme to a nonconforming
lattice, we choose to use a Lax-Wendroff
discretization approach for replacing the streaming
step. The LB algorithm then reads (1) for collision
step where Ωi is the transport collision operator and
(2) for the streaming step.
$f^*_i (x,t) = f_i (x,t) - \Omega_i$ (1)
$f_i (x, t+\Delta t) = f^*_i (x,t) - \chi(f^*_i (x,t) - f^*_i (x-e_i \Delta x,t)) - 0.5 \chi (1-\chi)(f^*_i (x+e_i \Delta x,t) - 2f^*_i (x,t) + f^*_i (x-e_i \Delta x,t))$
(2)_
This scheme is stable for $\chi<1$, which we impose by
choice of Δt on the finest network and thus guarantee
stability on all refinement levels.
The mesh is organised in blocks of a given number of
cells in an octree structure. The communication
between neighboring blocks is done via ghost cells.
For neighboring blocks of different refinement level,
the ghost layers are filled using quadratic
interpolation.
Adaptive Mesh Refinement criteria
In order to compute the transport as accurately as
possible, we have chosen to refine as much as
possible the high concentration gradient zones and
have therefore chosen to use a criterion based on the
gradient to refine or to coarsen each block component
of the lattice.
When the mesh adaptation criteria requires to refine a
given block, the values to be assigned to the refined
lattice are obtained by projection and when the
criterion value asks for coarsening, the value to be
assigned is obtained by averaging.
References
[1] Compatibilities of kokkos library (2020).
https://github.com/kokkos/kokkos/wiki/Compiling
(Web link accessible on March 8, 2022).
[2] Verdier, W., Kestener, P., & Cartalade, A. (2020).
Performance portability of lattice Boltzmann
methods for two-phase flows with phase change.
Computer Methods in Applied Mechanics and
Engineering, 370, 113266.