Sergey Zabelok, Robert Arslanbekov, Vladimir Kolobov, Adaptive kinetic-fluid solvers for heterogeneous computing architectures, Journal of Computational Physics, Volume 303, 15 December 2015, Pages 455-469, ISSN 0021-9991, http://dx.doi.org/10.1016/j.jcp.2015.10.003.
Abstract: We show feasibility and benefits of porting an adaptive multi-scale kinetic-fluid code to CPU–GPU systems. Challenges are due to the irregular data access for adaptive Cartesian mesh, vast difference of computational cost between kinetic and fluid cells, and desire to evenly load all CPUs and GPUs during grid adaptation and algorithm refinement. Our Unified Flow Solver (UFS) combines Adaptive Mesh Refinement (AMR) with automatic cell-by-cell selection of kinetic or fluid solvers based on continuum breakdown criteria. Using GPUs enables hybrid simulations of mixed rarefied-continuum flows with a million of Boltzmann cells each having a 24 × 24 × 24 velocity mesh. We describe the implementation of CUDA kernels for three modules in UFS: the direct Boltzmann solver using the discrete velocity method (DVM), the Direct Simulation Monte Carlo (DSMC) solver, and a mesoscopic solver based on the Lattice Boltzmann Method (LBM), all using adaptive Cartesian mesh. Double digit speedups on single GPU and good scaling for multi-GPUs have been demonstrated.
Keywords: Unified Flow Solver; Adaptive Mesh Refinement; Discrete velocity method; Boltzmann kinetic equation; Direct Simulation Monte Carlo; Lattice Boltzmann Method; Graphics processing units; CUDA; MPI