https://github.com/cselab/aphros
Finite volume solver for incompressible multiphase flows with surface tension. Foaming flows in complex geometries.
https://github.com/cselab/aphros
cfd chemical-engineering fluid high-performance-computing multiphase-flow paraview simulation surface-tension
Last synced: about 1 month ago
JSON representation
Finite volume solver for incompressible multiphase flows with surface tension. Foaming flows in complex geometries.
- Host: GitHub
- URL: https://github.com/cselab/aphros
- Owner: cselab
- License: mit
- Created: 2020-01-08T11:39:44.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-05T13:39:13.000Z (9 months ago)
- Last Synced: 2024-07-31T20:30:03.308Z (9 months ago)
- Topics: cfd, chemical-engineering, fluid, high-performance-computing, multiphase-flow, paraview, simulation, surface-tension
- Language: C++
- Homepage:
- Size: 205 MB
- Stars: 389
- Watchers: 18
- Forks: 42
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-fluid-dynamics - cselab/aphros - Finite volume solver for incompressible multiphase flows with surface tension.  (Computational Fluid Dynamics / Finite Volume Methods (FVM))
README
# Aphros
Finite volume solver for incompressible multiphase flows with surface tension.
Key features:
- implementation in C++14
- scalability to thousands of compute nodes
- fluid solver based on SIMPLE or Bell-Colella-Glaz methods
- advection with PLIC volume-of-fluid
- particle method for curvature estimation accurate at low resolutions
[[demo]](https://cselab.github.io/aphros/curv.html)
[[4]](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103209)
- Multi-VOF for scalable coalescence prevention
[[demo]](https://cselab.github.io/aphros/wasm/hydro.html)
[[8]](https://doi.org/10.1145/3394277.3401856)
[[11]](https://doi.org/10.1126/sciadv.abm0590)## [Gallery of interactive simulations](https://github.com/cselab/aphros/wiki/Aphros-Explorer)
[
](https://github.com/cselab/aphros/wiki/Aphros-Explorer) | [
](https://cselab.github.io/aphros/curv.html) | [
](https://cselab.github.io/aphros/wasm/hydro.html) | [
](https://cselab.github.io/aphros/wasm/electrochem.html) | [
](https://cselab.github.io/aphros/wasm/parser.html?config=M4UwLgBAlgdpUQAwChSQCYHsCuAjANiBOhAIwB0ArKuBAG4gDGkdZEATBAMw2TBgAnWAHMIwCGBAAPMLzGCRYgPoBbCACJkECPlghSWnXs4ASYMk1p5QmKOB4IJhCdZm5_G6JB0AhvkcAFAEmJABUHACUEXJYeIQQoihWDMwJAj50UGAAno6JQA=)
:---:|:---:|:---:|:---:|:---:
[Gallery wiki](https://github.com/cselab/aphros/wiki/Aphros-Explorer) | [Curvature](https://cselab.github.io/aphros/curv.html) | [Multi-VOF](https://cselab.github.io/aphros/wasm/hydro.html) | [Electrochemistry](https://cselab.github.io/aphros/wasm/electrochem.html) | [Parser](https://cselab.github.io/aphros/wasm/parser.html?config=M4UwLgBAlgdpUQAwChSQCYHsCuAjANiBOhAIwB0ArKuBAG4gDGkdZEATBAMw2TBgAnWAHMIwCGBAAPMLzGCRYgPoBbCACJkECPlghSWnXs4ASYMk1p5QmKOB4IJhCdZm5_G6JB0AhvkcAFAEmJABUHACUEXJYeIQQoihWDMwJAj50UGAAno6JQA=)### Documentation
[Online documentation](https://cselab.github.io/aphros/doc) and [PDF](https://cselab.github.io/aphros/aphros.pdf) generated by [doc/sphinx](doc/sphinx).
Default parameters are listed in [deploy/scripts/sim_base.conf](deploy/scripts/sim_base.conf).
### Requirements
C++14, CMake
Optional dependencies:
MPI,
parallel HDF5,
python3,
python3-numpyBundled optional dependencies:
[hypre](https://github.com/hypre-space/hypre),
[overlap](https://github.com/severinstrobl/overlap),
[fpzip](https://github.com/LLNL/fpzip)### Clone and build
```
git clone https://github.com/cselab/aphros.git
```First, follow [deploy/README.md](deploy/README.md) to
prepare environment and install dependencies. Then build with```
cd src
make
```### Code Ocean
The [Code Ocean](https://codeocean.com/) platform hosts the following compute capsule
* [Computing foaming flows across scales: from breaking waves to microfluidics](https://codeocean.com/capsule/7188369/tree/v1)
which builds Aphros in a Linux environment, runs a set of examples, and visualizes the results.
### Docker
Instead of building the code in your system, you can build a Docker
container and run a simulation example```
docker build github.com/cselab/aphros --tag aphros
cd examples/202_coalescence/standalone
./conf
docker run -v `pwd`:`pwd` -w `pwd` aphros
```### Minimal build without CMake
Build without dependencies and tests on Unix-like systems
(`APHROS_PREFIX` is the installation directory, with `USE_MPI=1`,
`USE_HDF=1`, `USE_OPENCL=1`, `USE_AVX=1` builds with MPI, parallel
HDF5 library, OpenCL, and AVX extensions):```
cd src
../make/bootstrap
make -f Makefile_legacy install APHROS_PREFIX=$HOME/.local USE_MPI=0 USE_HDF=0 USE_OPENCL=0 USE_AVX=0
```on Windows using Microsoft C++ toolset (NMAKE, LINK, and CL):
```
cd src
../make/bootstrap # Requires sh and awk.
nmake /f NMakefile
```## Videos
Examples of simulations visualized using
[ParaView](https://www.paraview.org/) and [OSPRay](https://www.ospray.org/).
Links `[conf]` lead to the solver configuration.| | |
:---:|:---:
[](https://www.youtube.com/watch?v=pRWGhGoQjyI) | [
](https://www.youtube.com/watch?v=lCf_T0C5Kmg)
Coalescence of bubbles [[conf]](examples/202_coalescence) [[4]](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103209) | Taylor-Green vortex with bubbles [[2]](https://doi.org/10.1145/3324989.3325727) [[5]](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103286)
[](https://www.youtube.com/watch?v=xEo51gqLdds) | [
](https://www.youtube.com/watch?v=Rm-xDGpIEJA)
Bubble jump-off [[1]](https://doi.org/10.1039/C9EE00219G) | Electrochemical reactor [[conf]](examples/213_electrochem/reactor) [[9]](https://doi.org/10.3929/ethz-b-000547518)
[](https://www.youtube.com/watch?v=x9hk6pcicj0) | [
](https://www.youtube.com/watch?v=9NPoiHHFkh0)
Bubble trapped by vortex ring [[5]](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103286) | Plunging jet [[2]](https://doi.org/10.1145/3324989.3325727)
[](https://www.youtube.com/watch?v=WzOe0buD8uM) | [
](https://www.youtube.com/watch?v=0Cj8pPYNJGY)
Clustering of bubbles [[conf]](examples/205_multivof/clustering) [[6]](https://doi.org/10.1103/APS.DFD.2019.GFM.V0018) [[7]](https://www.cscs.ch/publications/annual-reports/cscs-annual-report-2019) [[11]](https://doi.org/10.1126/sciadv.abm0590) | Foaming waterfall [[conf]](examples/205_multivof/waterfall) [[8]](https://doi.org/10.1145/3394277.3401856) [[11]](https://doi.org/10.1126/sciadv.abm0590)
[](https://www.youtube.com/watch?v=2fm_JX9-Wbg) | [
](https://www.youtube.com/watch?v=8iPmOsXnXAM)
Bidisperse foam [[conf]](examples/205_multivof/bidisperse) [[11]](https://doi.org/10.1126/sciadv.abm0590) | Microfluidic crystals [[conf]](examples/205_multivof/crystal) [[11]](https://doi.org/10.1126/sciadv.abm0590)
[](https://www.youtube.com/watch?v=scz2YVKmDaQ) | [
](https://www.youtube.com/watch?v=O5Dhnjrfe8A)
LAMMPS polymers in Taylor-Green vortex [[conf]](examples/212_polymers) | Bubble pipe optimization [[10]](https://doi.org/10.1016/j.cma.2021.114264)
[](https://www.youtube.com/watch?v=rs7OhSixm5c) |
Bubbles through mesh || |
|:---:|
|[](https://www.youtube.com/watch?v=iGdphpztCJQ)|
|APS Gallery of Fluid Motion 2019 award winner
Breaking waves: to foam or not to foam? [[6]](https://doi.org/10.1103/APS.DFD.2019.GFM.V0018)
Collaboration with Jean M. Favre at [CSCS](https://www.cscs.ch).|## Developers
Aphros is developed by researchers at [ETH Zurich](https://www.cse-lab.ethz.ch) and [Harvard University](https://cse-lab.seas.harvard.edu/)
* [Petr Karnakov](https://pkarnakov.com)
* [Sergey Litvinov](https://www.cse-lab.ethz.ch/member/sergey-litvinov)advised by
* [Prof. Petros Koumoutsakos](https://www.seas.harvard.edu/person/petros-koumoutsakos)
Other contributors are: Fabian Wermelinger (Cubism backend)
## Publications
1. Hashemi SMH, Karnakov P, Hadikhani P, Chinello E, Litvinov S, Moser C, Koumoutsakos P, Psaltis D.
A versatile and membrane-less electrochemical reactor for the electrolysis of water and brine.
_Energy & environmental science_. 2019
[10.1039/C9EE00219G](https://doi.org/10.1039/C9EE00219G)
2. Karnakov P, Wermelinger F, Chatzimanolakis M, Litvinov S, Koumoutsakos P.
A high performance computing framework for multiphase, turbulent flows on structured grids.
_Proceedings of the platform for advanced scientific computing conference on – PASC ’19_. 2019
[10.1145/3324989.3325727](https://doi.org/10.1145/3324989.3325727)
[[pdf]](https://cselab.github.io/aphros/pdf/pasc2019.pdf)
3. Karnakov P, Litvinov S, Koumoutsakos P.
Coalescence and transport of bubbles and drops.
_10th International Conference on Multiphase Flow (ICMF)_. 2019
[[pdf]](https://cselab.github.io/aphros/pdf/icmf2019.pdf)
4. Karnakov P, Litvinov S, and Koumoutsakos P.
A hybrid particle volume-of-fluid method for curvature estimation in multiphase flows.
_International journal of multiphase flow_. 2020
[10.1016/j.ijmultiphaseflow.2020.103209](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103209)
[arXiv:1906.00314](https://arxiv.org/pdf/1906.00314)
5. Wan Z, Karnakov P, Koumoutsakos P, Sapsis T.
Bubbles in Turbulent Flows: Data-driven, kinematic models with history terms.
_International journal of multiphase flow_. 2020
[10.1016/j.ijmultiphaseflow.2020.103286](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103286)
[arXiv:1910.02068](https://arxiv.org/pdf/1910.02068)
6. Karnakov P, Litvinov S, Favre JM, Koumoutsakos P.
V0018: Breaking waves: to foam or not to foam?
_Gallery of Fluid Motion Award_
[video](https://doi.org/10.1103/APS.DFD.2019.GFM.V0018)
[article](http://dx.doi.org/10.1103/physrevfluids.5.110503)
7. Annual report 2019 of the Swiss National Supercomputing Centre (cover page)
[[link]](https://www.cscs.ch/publications/annual-reports/cscs-annual-report-2019)
8. Karnakov P, Wermelinger F, Litvinov S, Koumoutsakos P.
Aphros: High Performance Software for Multiphase Flows with Large Scale Bubble and Drop Clusters.
_Proceedings of the platform for advanced scientific computing conference on – PASC ’20_. 2020
[10.1145/3394277.3401856](https://doi.org/10.1145/3394277.3401856)
[[pdf]](https://cselab.github.io/aphros/pdf/pasc2020.pdf)
9. Karnakov P. The multilayer volume-of-fluid method for multiphase
flows across scales: breaking waves, microfluidics, and membrane-less
electrolyzers. _PhD thesis_. ETH Zurich. 2021
[10.3929/ethz-b-000547518](https://doi.org/10.3929/ethz-b-000547518)
10. Martin SM, Wälchli D, Arampatzis G, Economides AE, Karnakov P, Koumoutsakos P.
Korali: Efficient and scalable software framework for Bayesian uncertainty quantification and stochastic optimization.
_Computer Methods in Applied Mechanics and Engineering_. 2021
[10.1016/j.cma.2021.114264](https://doi.org/10.1016/j.cma.2021.114264)
11. Karnakov P, Litvinov S, Koumoutsakos P.
Computing foaming flows across scales: from breaking waves to microfluidics.
_Science Advances_. 2022
[10.1126/sciadv.abm0590](https://doi.org/10.1126/sciadv.abm0590)## Citing
If you use Aphros in your work, please consider using the following
```
@article{aphros2022,
author = {Petr Karnakov and Sergey Litvinov and Petros Koumoutsakos},
title = {Computing foaming flows across scales: From breaking waves to microfluidics},
journal = {Science Advances},
volume = {8},
number = {5},
pages = {eabm0590},
year = {2022},
doi = {10.1126/sciadv.abm0590},
URL = {https://www.science.org/doi/abs/10.1126/sciadv.abm0590},
eprint = {https://www.science.org/doi/pdf/10.1126/sciadv.abm0590},
}
```