https://hgpu.org/?p=8587
Developing Extensible Lattice-Boltzmann Simulators for General-Purpose Graphics-Processing Units