Skip to content

zeta1999/PetIBM

 
 

Repository files navigation

PetIBM - A PETSc-based Immersed Boundary Method code

Build Status

PetIBM solves the 2D and 3D incompressible Navier-Stokes equations using a projection method with an immersed-boundary method (IBM). Currently, two IBMs are implemented:

  • the immersed-boundary projection method (Taira and Colonius, 2007);
  • and its decoupled version (Li et al., 2016).

PetIBM works on distributed-memory architectures using the PETSc library. We use iterative solvers for the different systems of the problem. Currently, the system can be solved on CPUs using PETSc or on multiple GPUs using the Nvidia AmgX library and AmgXWrapper.

PetIBM solves the incompressible Navier-Stokes equations in two and three dimensions using the immersed boundary projection method from Taira and Colonius (2007) and is implemented using PETSc, the Portable, Extensible Toolkit for Scientific Computation.


Dependencies (last tested)

  • g++-4.9.2, g++-5.4.0
  • PETSc 3.7.4
  • Python 2.7 (optional, for pre- and post-processing)

Note: Python and libraries have been installed using conda (4.3.1).

To build PetIBM, please refer to the installation instructions.

Users-documentation is available on the Wiki page of this repository.


Contact

Please e-mail Olivier Mesnard or Pi-Yueh Chuang if you have any questions, suggestions or feedback.

To report bugs, please use the GitHub issue tracking system. We are also open to pull-requests.

References:

  • Taira, K., & Colonius, T. (2007). The immersed boundary method: a projection approach. Journal of Computational Physics, 225(2), 2118-2137.
  • Li, R. Y., Xie, C. M., Huang, W. X., & Xu, C. X. (2016). An efficient immersed boundary projection method for flow over complex/moving boundaries. Computers & Fluids, 140, 122-135.

About

Parallel immersed boundary method code.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 44.5%
  • Makefile 31.0%
  • Python 15.4%
  • Shell 7.1%
  • M4 2.0%