Software Open Access
Krishnan, Anush; Mesnard, Olivier; Barba, Lorena A.
cuIBM solves the two-dimensional Navier-Stokes equations with an immersed-boundary method on structured Cartesian grids.
With this solution approach, we remove the constraint for the computational grid to fit to the surface of a body immersed in a fluid.
This has the advantage of requiring simple and easy-to-generate fixed Cartesian grids.
cuIBM can be used to simulate the flow around fixed or moving bodies without the need to re-generate grids.
Example applications may include flapping airfoils for the study of animal flight or fish locomotion.
The equations are spatially discretized with a finite-difference technique and temporally integrated via a projection approach seen as an approximate block-LU decomposition (Perot, 1993).
cuIBM implements various immersed-boundary techniques that fit into the framework of Perot's projection method.
Among them are the immersed-boundary projection approach from Taira and Colonius (2007), the direct-forcing method from Fadlun et al. (2000), and a second-order accurate direct-forcing method (Krishnan, 2015).
cuIBM is written in C++ and exploits NVIDIA GPU hardware using CUDA and CUSP (https://github.com/cusplibrary/cusplibrary), an open-source C++ library for sparse linear algebra on CUDA-capable GPUs.
cuIBM solves the linear systems of equations and applies stencil operations on a single GPU device.