SkillAgentSearch skills...

Aphros

Finite volume solver for incompressible multiphase flows with surface tension. Foaming flows in complex geometries.

Install / Use

/learn @cselab/Aphros

README

<!---DO NOT EDIT THIS FILE. Generated by README.py-->

Aphros

<img src="https://cselab.github.io/aphros/images/foam.png" width=300 align="right">

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] [4]
  • Multi-VOF for scalable coalescence prevention [demo] [8] [11]

Gallery of interactive simulations

<img src="https://cselab.github.io/aphros/images/aphros_tile9.jpg" width=120> | <img src="https://cselab.github.io/aphros/images/thumb/curv.jpg" height=120> | <img src="https://cselab.github.io/aphros/images/thumb/hydro.jpg" height=120> | <img src="https://cselab.github.io/aphros/images/thumb/electrochem.jpg" height=120> | <img src="https://cselab.github.io/aphros/images/thumb/parser.jpg" height=120> :---:|:---:|:---:|:---:|:---: Gallery wiki | Curvature | Multi-VOF | Electrochemistry | Parser

Documentation

Online documentation and PDF generated by doc/sphinx.

Default parameters are listed in deploy/scripts/sim_base.conf.

Requirements

C++14, CMake

Optional dependencies: MPI, parallel HDF5, python3, python3-numpy

Bundled optional dependencies: hypre, overlap, fpzip

Clone and build

git clone https://github.com/cselab/aphros.git

First, follow deploy/README.md to prepare environment and install dependencies. Then build with

cd src
make

Code Ocean

The Code Ocean platform hosts the following compute capsule

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 and OSPRay. Links [conf] lead to the solver configuration.

| | | :---:|:---: <img src="https://cselab.github.io/aphros/videos/preview/thumb/coalescence.jpg" height=150> | <img src="https://cselab.github.io/aphros/videos/preview/thumb/taylor_green.jpg" height=150> Coalescence of bubbles [conf] [4] | Taylor-Green vortex with bubbles [2] [5] <img src="https://cselab.github.io/aphros/videos/preview/thumb/reactor.jpg" height=150> | <img src="https://cselab.github.io/aphros/videos/preview/thumb/reactor_full2.jpg" height=150> Bubble jump-off [1] | Electrochemical reactor [conf] [9] <img src="https://cselab.github.io/aphros/videos/preview/thumb/vortex_bubble.jpg" height=200> | <img src="https://cselab.github.io/aphros/videos/preview/thumb/plunging_jet.jpg" height=200> Bubble trapped by vortex ring [5] | Plunging jet [2] <img src="https://cselab.github.io/aphros/videos/preview/thumb/rising_bubbles.jpg" height=150> | <img src="https://cselab.github.io/aphros/videos/preview/thumb/foaming_waterfall.jpg" height=150> Clustering of bubbles [conf] [6] [7] [11] | Foaming waterfall [conf] [8] [11] <img src="https://cselab.github.io/aphros/videos/preview/thumb/bidisperse.jpg" height=150> | <img src="https://cselab.github.io/aphros/videos/preview/thumb/crystal.jpg" height=45> Bidisperse foam [conf] [11] | Microfluidic crystals [conf] [11] <img src="https://cselab.github.io/aphros/videos/preview/thumb/lammps_polymers.jpg" height=200> | <img src="https://cselab.github.io/aphros/videos/preview/thumb/korali_pipe.jpg" height=200> LAMMPS polymers in Taylor-Green vortex [conf] | Bubble pipe optimization [10] <img src="https://cselab.github.io/aphros/videos/preview/thumb/mesh_bubbles.jpg" height=150> | Bubbles through mesh |

| | |:---:| |<img src="https://cselab.github.io/aphros/videos/preview/thumb/breaking_waves.jpg" height=300>| |APS Gallery of Fluid Motion 2019 award winner<br> Breaking waves: to foam or not to foam? [6]<br> Collaboration with Jean M. Favre at CSCS.|

Developers

Aphros is developed by researchers at ETH Zurich and Harvard University

advised by

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
  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 [pdf]
  3. Karnakov P, Litvinov S, Koumoutsakos P. Coalescence and transport of bubbles and drops. 10th International Conference on Multiphase Flow (ICMF). 2019 [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 arXiv: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 [arXiv:1910.02068](https:/
View on GitHub
GitHub Stars450
CategoryDevelopment
Updated6d ago
Forks51

Languages

C++

Security Score

100/100

Audited on Mar 18, 2026

No findings