Home

Awesome

PetIBM - toolbox and applications of the immersed-boundary method on distributed-memory architectures

License Travis Docs DOI CITE_BIB

PetIBM implements immersed-boundary methods to solve 2D and 3D incompressible Navier-Stokes on stretched Cartesian grids using a projection approach.

Currently, two immersed boundary methods are implemented:

With object-oriented design, the objects and classes in PetIBM can be re-used to develop other solvers easily, as long as the numerical methods used can fit into Perot's framework (Perot, 1993; Chang et. al, 2002). See Doxygen pages for API manual.

PetIBM relies on the PETSc library for data structures and parallel routines. Linear systems can be solved either on CPUs using PETSc KSP objects or on multiple CUDA-capable GPU devices using the NVIDIA AmgX library. Data transfers between PETSc and AmgX are handled by AmgXWrapper.

PetIBM runs only on Unix-based systems (no support on Windows) and was last tested on Ubuntu 16.04, MacOS Sierra 10.12.6, and Arch Linux. PetIBM was also tested on the following HPC systems: GW ColonialOne and Titan at ORNL.

Please see Documentation for more details.


Features

PetIBM supports:


Documentation

Offline API manual can be generated with Doxygen.


Papers published using PetIBM


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


How to cite PetIBM

If PetIBM contributes to a project that leads to a scientific publication, please cite the project. You can use this citation or the BibTeX entry below.

Pi-Yueh Chuang, Olivier Mesnard, Anush Krishnan, Lorena A. Barba (2018). PetIBM: toolbox and applications of the immersed-boundary method on distributed-memory architectures. Journal of Open Source Software, 3(25), 558, doi:10.21105/joss.00558

@article{chuang2018petibm,
  doi = {10.21105/joss.00558},
  url = {https://doi.org/10.21105/joss.00558},
  year = {2018},
  month = {may},
  publisher = {The Open Journal},
  volume = {3},
  number = {25},
  pages = {558},
  author = {Pi-Yueh Chuang and Olivier Mesnard and Anush Krishnan and Lorena A. Barba},
  title = {{PetIBM}: toolbox and applications of the immersed-boundary method on distributed-memory architectures},
  journal = {The Journal of Open Source Software}
}