cuIBM - A GPU-based Immersed Boundary Method code