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] [9]
Gallery wiki | Curvature | Multi-VOF | Electrochemistry |
Online version generated in doc/sphinx.
C++14, CMake
Optional dependencies: MPI, parallel HDF5, python3, python3-numpy
Bundled optional dependencies: hypre, eigen, overlap, vofi, fpzip
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
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
Build without dependencies and tests on unix-like systems
(APHROS_PREFIX
is the installation location, with USE_MPI=1
builds
with MPI)
cd src
make -f Makefile_legacy install APHROS_PREFIX=$HOME/.local USE_MPI=0
on Windows using Microsoft C++ toolset (NMAKE, LINK, and CL):
cd src
nmake /f NMakefile
Examples of simulations visualized using ParaView and OSPRay in collaboration with Jean M. Favre at CSCS.
Coalescence of bubbles [conf] [4] | Taylor-Green vortex with bubbles [2] [5] |
Bubble trapped by vortex ring [5] | Plunging jet [2] |
Electrochemical reactor [1] | Bubbles through mesh |
Clustering of bubbles [conf] [6] [7] [9] | Foaming waterfall [conf] [8] [9] |
Bidisperse foam [conf] [9] | Microfluidic crystals [conf] [9] |
APS Gallery of Fluid Motion 2019 award winner Breaking waves: to foam or not to foam? [6] |
Aphros is developed and maintained by researchers at ETH Zurich
under the supervision of
- S. M. H. Hashemi, P. Karnakov, P. Hadikhani, E. Chinello, S. Litvinov, C. Moser, P. Koumoutsakos, and D. Psaltis, "A versatile and membrane-less electrochemical reactor for the electrolysis of water and brine", Energy & environmental science, 2019 10.1039/C9EE00219G
- P. Karnakov, F. Wermelinger, M. Chatzimanolakis, S. Litvinov, and P. Koumoutsakos, "A high performance computing framework for multiphase, turbulent flows on structured grids" in Proceedings of the platform for advanced scientific computing conference on – PASC ’19, 2019 10.1145/3324989.3325727 [pdf]
- P. Karnakov, S. Litvinov, P. Koumoutsakos "Coalescence and transport of bubbles and drops" 10th International Conference on Multiphase Flow (ICMF), 2019 [pdf]
- P. Karnakov, S. Litvinov, and P. Koumoutsakos, "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
- Z. Wan, P. Karnakov, P. Koumoutsakos, T. Sapsis, "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
- P. Karnakov, S. Litvinov, J. M. Favre, P. Koumoutsakos "V0018: Breaking waves: to foam or not to foam?" Gallery of Fluid Motion Award video article
- Annual report 2019 of the Swiss National Supercomputing Centre (cover page) [link]
- P. Karnakov, F. Wermelinger, S. Litvinov, and P. Koumoutsakos, "Aphros: High Performance Software for Multiphase Flows with Large Scale Bubble and Drop Clusters" in Proceedings of the platform for advanced scientific computing conference on – PASC ’20, 2020 10.1145/3394277.3401856 [pdf]
- P. Karnakov, S. Litvinov, P. Koumoutsakos "Computing foaming flows across scales: from breaking waves to microfluidics", 2021 arXiv:2103.01513