2 research outputs found
GPU-Native Adaptive Mesh Refinement with Application to Lattice Boltzmann Simulations
The Lattice Boltzmann Method (LBM) has garnered significant interest in
General-Purpose Graphics Processing Unit (GPGPU) programming for computational
fluid dynamics due to its straightforward GPU parallelization and could benefit
greatly from Adaptive Mesh Refinement (AMR). AMR can assist in efficiently
resolving flows with regions of interest requiring a high degree of resolution.
An AMR scheme that could manage a computational mesh entirely on the GPU
without intermediate data transfers to/from the host device would provide a
substantial speedup to GPU-accelerated solvers, however, implementations
commonly employ CPU/hybrid frameworks instead, due to lack of a recursive data
structure. A block-based GPU-native algorithm will be presented for AMR in the
context of GPGPU programming and implemented in an open-source C++ code. The
meshing code is equipped with a Lattice Boltzmann solver for assessing
performance. Different AMR approaches and consequences in implementation are
considered before careful selection of data structures enabling efficient
refinement and coarsening compatible with single instruction multiple data
architecture is detailed. Inter-level communication is achieved by tricubic
interpolation and standard spatial averaging. Although the present open-source
implementation is tailored for LBM simulations, the outlined grid refinement
procedure is compatible with solvers for cell-centered block-structured grids.
Link to repository: https://github.com/KhodrJ/AGALComment: 30 pages, 16 figure