Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/barbagroup/PetIBM
PetIBM - toolbox and applications of the immersed-boundary method on distributed-memory architectures
https://github.com/barbagroup/PetIBM
computational-fluid-dynamics gpu-computing immersed-boundary-method nvidia-amgx petsc
Last synced: about 2 months ago
JSON representation
PetIBM - toolbox and applications of the immersed-boundary method on distributed-memory architectures
- Host: GitHub
- URL: https://github.com/barbagroup/PetIBM
- Owner: barbagroup
- License: bsd-3-clause
- Created: 2014-05-23T21:06:47.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-08-11T21:50:46.000Z (over 2 years ago)
- Last Synced: 2024-07-31T20:31:54.906Z (4 months ago)
- Topics: computational-fluid-dynamics, gpu-computing, immersed-boundary-method, nvidia-amgx, petsc
- Language: C++
- Homepage: https://barbagroup.github.io/PetIBM
- Size: 14.9 MB
- Stars: 104
- Watchers: 24
- Forks: 48
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-fluid-dynamics - barbagroup/PetIBM - PetIBM - toolbox and applications of the immersed-boundary method on distributed-memory architectures. ![C++](logo/cpp.svg) (Computational Fluid Dynamics / Immersed Boundary Methods (IBM))
README
# PetIBM - toolbox and applications of the immersed-boundary method on distributed-memory architectures
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://github.com/barbagroup/PetIBM/raw/master/LICENSE)
[![Travis](https://img.shields.io/travis/barbagroup/PetIBM/develop.svg?logo=travis)](https://travis-ci.org/barbagroup/PetIBM)
[![Docs](https://img.shields.io/badge/docs-0.4-brightgreen.svg)](https://barbagroup.github.io/PetIBM)
[![DOI](https://img.shields.io/badge/JOSS-10.21105%2Fjoss.00558-brightgreen.svg)](https://doi.org/10.21105/joss.00558)
[![CITE_BIB](https://img.shields.io/badge/Cite%20PetIBM-bibtex-blue.svg)](https://www.doi2bib.org/bib/10.21105/joss.00558)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:
* Immersed Boundary Projection Method (IBPM; Taira and Colonius, 2007);
* decoupled version of the IBPM (Li et al., 2016).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](https://barbagroup.github.io/PetIBM/modules.html) for API manual.PetIBM relies on the [PETSc](http://www.mcs.anl.gov/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](https://github.com/NVIDIA/AMGX) library.
Data transfers between PETSc and AmgX are handled by [AmgXWrapper](https://github.com/barbagroup/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](https://colonialone.gwu.edu/) and [Titan at ORNL](https://www.olcf.ornl.gov/titan/).Please see [Documentation](#documentation) for more details.
---
## Features
PetIBM supports:
* multiple immersed bodies,
* moving bodies with prescribed kinematics,
* 2D and 3D stretched Cartesian meshes,
* distributed-memory architectures,
* multiple GPUs on a single node,
* GPU clusters, and
* HDF5 I/O.---
## Documentation
* [Quick Start](doc/markdowns)
* [Dependencies and Installation](doc/markdowns/installation.md)
* [Run PetIBM](doc/markdowns/runpetibm.md)
* [Input files](doc/markdowns/inputs.md)
* [Output files](doc/markdowns/outputs.md)
* [2D Examples](doc/markdowns/examples2d.md)
* [3D Examples](doc/markdowns/examples3d.md)
* [Use PetIBM API](doc/markdowns/usepetibmapi.md)
* [Online API manual](https://barbagroup.github.io/PetIBM)
* [Change Log](CHANGELOG.md)
* [Contributing](CONTRIBUTING.md)Offline API manual can be generated with [Doxygen](http://www.stack.nl/~dimitri/doxygen/).
---
## Papers published using PetIBM
* Mesnard, O., & Barba, L. A. (2017). _Reproducible and Replicable Computational Fluid Dynamics: It's Harder Than You Think_. Computing in Science & Engineering, 19(4), 44-55, https://doi.org/10.1109/MCSE.2017.3151254.
---
## Contact
Please e-mail [Olivier Mesnard](mailto:[email protected]) or [Pi-Yueh Chuang](mailto:[email protected]) 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
* Chang, W., Giraldo, F., & Perot, B. (2002). *Analysis of an exact fractional step method*. Journal of Computational Physics, 180(1), 183-199.
* 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.
* Perot, J. B. (1993). *An analysis of the fractional step method*. Journal of Computational Physics, 108(1), 51-58.
* Taira, K., & Colonius, T. (2007). *The immersed boundary method: a projection approach*. Journal of Computational Physics, 225(2), 2118-2137.---
## 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](https://doi.org/10.21105/joss.00558)
```console
@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}
}
```