2 research outputs found

    GPU-Native Adaptive Mesh Refinement with Application to Lattice Boltzmann Simulations

    Full text link
    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
    corecore