{"id":13408366,"url":"https://github.com/cselab/aphros","last_synced_at":"2026-05-03T22:31:11.007Z","repository":{"id":37575224,"uuid":"232549983","full_name":"cselab/aphros","owner":"cselab","description":"Finite volume solver for incompressible multiphase flows with surface tension. Foaming flows in complex geometries.","archived":false,"fork":false,"pushed_at":"2024-07-05T13:39:13.000Z","size":215088,"stargazers_count":389,"open_issues_count":9,"forks_count":42,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-07-31T20:30:03.308Z","etag":null,"topics":["cfd","chemical-engineering","fluid","high-performance-computing","multiphase-flow","paraview","simulation","surface-tension"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cselab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-08T11:39:44.000Z","updated_at":"2024-07-28T04:34:23.000Z","dependencies_parsed_at":"2024-10-26T04:05:59.195Z","dependency_job_id":"03902b7d-657a-4504-bc13-4e5a1c75e0ea","html_url":"https://github.com/cselab/aphros","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cselab%2Faphros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cselab%2Faphros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cselab%2Faphros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cselab%2Faphros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cselab","download_url":"https://codeload.github.com/cselab/aphros/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243584135,"owners_count":20314708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cfd","chemical-engineering","fluid","high-performance-computing","multiphase-flow","paraview","simulation","surface-tension"],"created_at":"2024-07-30T20:00:52.435Z","updated_at":"2026-05-03T22:31:05.987Z","avatar_url":"https://github.com/cselab.png","language":"C++","funding_links":[],"categories":["Computational Fluid Dynamics"],"sub_categories":["Finite Volume Methods (FVM)"],"readme":"\u003c!---DO NOT EDIT THIS FILE. Generated by README.py--\u003e\n# Aphros\n\n\u003cimg src=\"https://cselab.github.io/aphros/images/foam.png\" width=300 align=\"right\"\u003e\n\nFinite volume solver for incompressible multiphase flows with surface tension.\n\nKey features:\n\n- implementation in C++14\n- scalability to thousands of compute nodes\n- fluid solver based on SIMPLE or Bell-Colella-Glaz methods\n- advection with PLIC volume-of-fluid\n- particle method for curvature estimation accurate at low resolutions\n[[demo]](https://cselab.github.io/aphros/curv.html)\n[[4]](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103209)\n- Multi-VOF for scalable coalescence prevention\n[[demo]](https://cselab.github.io/aphros/wasm/hydro.html)\n[[8]](https://doi.org/10.1145/3394277.3401856)\n[[11]](https://doi.org/10.1126/sciadv.abm0590)\n\n## [Gallery of interactive simulations](https://github.com/cselab/aphros/wiki/Aphros-Explorer)\n\n [\u003cimg src=\"https://cselab.github.io/aphros/images/aphros_tile9.jpg\" width=120\u003e](https://github.com/cselab/aphros/wiki/Aphros-Explorer) | [\u003cimg src=\"https://cselab.github.io/aphros/images/thumb/curv.jpg\" height=120\u003e](https://cselab.github.io/aphros/curv.html) | [\u003cimg src=\"https://cselab.github.io/aphros/images/thumb/hydro.jpg\" height=120\u003e](https://cselab.github.io/aphros/wasm/hydro.html) | [\u003cimg src=\"https://cselab.github.io/aphros/images/thumb/electrochem.jpg\" height=120\u003e](https://cselab.github.io/aphros/wasm/electrochem.html) | [\u003cimg src=\"https://cselab.github.io/aphros/images/thumb/parser.jpg\" height=120\u003e](https://cselab.github.io/aphros/wasm/parser.html?config=M4UwLgBAlgdpUQAwChSQCYHsCuAjANiBOhAIwB0ArKuBAG4gDGkdZEATBAMw2TBgAnWAHMIwCGBAAPMLzGCRYgPoBbCACJkECPlghSWnXs4ASYMk1p5QmKOB4IJhCdZm5_G6JB0AhvkcAFAEmJABUHACUEXJYeIQQoihWDMwJAj50UGAAno6JQA=)\n:---:|:---:|:---:|:---:|:---:\n[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=)\n\n### Documentation\n\n[Online documentation](https://cselab.github.io/aphros/doc) and [PDF](https://cselab.github.io/aphros/aphros.pdf) generated by [doc/sphinx](doc/sphinx).\n\nDefault parameters are listed in [deploy/scripts/sim_base.conf](deploy/scripts/sim_base.conf).\n\n### Requirements\n\nC++14, CMake\n\nOptional dependencies:\nMPI,\nparallel HDF5,\npython3,\npython3-numpy\n\nBundled optional dependencies:\n[hypre](https://github.com/hypre-space/hypre),\n[overlap](https://github.com/severinstrobl/overlap),\n[fpzip](https://github.com/LLNL/fpzip)\n\n### Clone and build\n\n```\ngit clone https://github.com/cselab/aphros.git\n```\n\nFirst, follow [deploy/README.md](deploy/README.md) to\nprepare environment and install dependencies. Then build with\n\n```\ncd src\nmake\n```\n\n### Code Ocean\n\nThe [Code Ocean](https://codeocean.com/) platform hosts the following compute capsule\n\n* [Computing foaming flows across scales: from breaking waves to microfluidics](https://codeocean.com/capsule/7188369/tree/v1)\n\nwhich builds Aphros in a Linux environment, runs a set of examples, and visualizes the results.\n\n### Docker\n\nInstead of building the code in your system, you can build a Docker\ncontainer and run a simulation example\n\n```\ndocker build github.com/cselab/aphros --tag aphros\ncd examples/202_coalescence/standalone\n./conf\ndocker run -v `pwd`:`pwd` -w `pwd` aphros\n```\n\n### Minimal build without CMake\n\nBuild without dependencies and tests on Unix-like systems\n(`APHROS_PREFIX` is the installation directory, with `USE_MPI=1`,\n`USE_HDF=1`, `USE_OPENCL=1`, `USE_AVX=1` builds with MPI, parallel\nHDF5 library, OpenCL, and AVX extensions):\n\n```\ncd src\n../make/bootstrap\nmake -f Makefile_legacy install APHROS_PREFIX=$HOME/.local USE_MPI=0 USE_HDF=0 USE_OPENCL=0 USE_AVX=0\n```\n\non Windows using Microsoft C++ toolset (NMAKE, LINK, and CL):\n\n```\ncd src\n../make/bootstrap # Requires sh and awk.\nnmake /f NMakefile\n```\n\n## Videos\n\nExamples of simulations visualized using\n[ParaView](https://www.paraview.org/) and [OSPRay](https://www.ospray.org/).\nLinks `[conf]` lead to the solver configuration.\n\n|    |    |\n:---:|:---:\n[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/coalescence.jpg\" height=150\u003e](https://www.youtube.com/watch?v=pRWGhGoQjyI) | [\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/taylor_green.jpg\" height=150\u003e](https://www.youtube.com/watch?v=lCf_T0C5Kmg)\nCoalescence 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)\n[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/reactor.jpg\" height=150\u003e](https://www.youtube.com/watch?v=xEo51gqLdds) | [\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/reactor_full2.jpg\" height=150\u003e](https://www.youtube.com/watch?v=Rm-xDGpIEJA)\nBubble 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)\n[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/vortex_bubble.jpg\" height=200\u003e](https://www.youtube.com/watch?v=x9hk6pcicj0) | [\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/plunging_jet.jpg\" height=200\u003e](https://www.youtube.com/watch?v=9NPoiHHFkh0)\nBubble trapped by vortex ring [[5]](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103286) | Plunging jet [[2]](https://doi.org/10.1145/3324989.3325727)\n[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/rising_bubbles.jpg\" height=150\u003e](https://www.youtube.com/watch?v=WzOe0buD8uM) | [\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/foaming_waterfall.jpg\" height=150\u003e](https://www.youtube.com/watch?v=0Cj8pPYNJGY)\n 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)\n[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/bidisperse.jpg\" height=150\u003e](https://www.youtube.com/watch?v=2fm_JX9-Wbg) | [\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/crystal.jpg\" height=45\u003e](https://www.youtube.com/watch?v=8iPmOsXnXAM)\n 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)\n[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/lammps_polymers.jpg\" height=200\u003e](https://www.youtube.com/watch?v=scz2YVKmDaQ) | [\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/korali_pipe.jpg\" height=200\u003e](https://www.youtube.com/watch?v=O5Dhnjrfe8A)\nLAMMPS polymers in Taylor-Green vortex [[conf]](examples/212_polymers) | Bubble pipe optimization [[10]](https://doi.org/10.1016/j.cma.2021.114264)\n[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/mesh_bubbles.jpg\" height=150\u003e](https://www.youtube.com/watch?v=rs7OhSixm5c) |\nBubbles through mesh |\n\n|     |\n|:---:|\n|[\u003cimg src=\"https://cselab.github.io/aphros/videos/preview/thumb/breaking_waves.jpg\" height=300\u003e](https://www.youtube.com/watch?v=iGdphpztCJQ)|\n|APS Gallery of Fluid Motion 2019 award winner\u003cbr\u003e Breaking waves: to foam or not to foam? [[6]](https://doi.org/10.1103/APS.DFD.2019.GFM.V0018)\u003cbr\u003e Collaboration with Jean M. Favre at [CSCS](https://www.cscs.ch).|\n\n## Developers\n\nAphros is developed by researchers at [ETH Zurich](https://www.cse-lab.ethz.ch) and [Harvard University](https://cse-lab.seas.harvard.edu/)\n\n* [Petr Karnakov](https://pkarnakov.com)\n* [Sergey Litvinov](https://www.cse-lab.ethz.ch/member/sergey-litvinov)\n\nadvised by\n\n* [Prof. Petros Koumoutsakos](https://www.seas.harvard.edu/person/petros-koumoutsakos)\n\nOther contributors are: Fabian Wermelinger (Cubism backend)\n\n## Publications\n\n1. Hashemi SMH, Karnakov P, Hadikhani P, Chinello E, Litvinov S, Moser C, Koumoutsakos P, Psaltis D.\n  A versatile and membrane-less electrochemical reactor for the electrolysis of water and brine.\n  _Energy \u0026 environmental science_. 2019\n  [10.1039/C9EE00219G](https://doi.org/10.1039/C9EE00219G)\n2. Karnakov P, Wermelinger F, Chatzimanolakis M, Litvinov S, Koumoutsakos P.\n  A high performance computing framework for multiphase, turbulent flows on structured grids.\n  _Proceedings of the platform for advanced scientific computing conference on – PASC ’19_. 2019\n  [10.1145/3324989.3325727](https://doi.org/10.1145/3324989.3325727)\n  [[pdf]](https://cselab.github.io/aphros/pdf/pasc2019.pdf)\n3. Karnakov P, Litvinov S, Koumoutsakos P.\n  Coalescence and transport of bubbles and drops.\n  _10th International Conference on Multiphase Flow (ICMF)_. 2019\n  [[pdf]](https://cselab.github.io/aphros/pdf/icmf2019.pdf)\n4. Karnakov P, Litvinov S, and Koumoutsakos P.\n  A hybrid particle volume-of-fluid method for curvature estimation in multiphase flows.\n  _International journal of multiphase flow_. 2020\n  [10.1016/j.ijmultiphaseflow.2020.103209](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103209)\n  [arXiv:1906.00314](https://arxiv.org/pdf/1906.00314)\n5. Wan Z, Karnakov P, Koumoutsakos P, Sapsis T.\n  Bubbles in Turbulent Flows: Data-driven, kinematic models with history terms.\n  _International journal of multiphase flow_. 2020\n  [10.1016/j.ijmultiphaseflow.2020.103286](https://doi.org/10.1016/j.ijmultiphaseflow.2020.103286)\n  [arXiv:1910.02068](https://arxiv.org/pdf/1910.02068)\n6. Karnakov P, Litvinov S, Favre JM, Koumoutsakos P.\n  V0018: Breaking waves: to foam or not to foam?\n  _Gallery of Fluid Motion Award_\n  [video](https://doi.org/10.1103/APS.DFD.2019.GFM.V0018)\n  [article](http://dx.doi.org/10.1103/physrevfluids.5.110503)\n7. Annual report 2019 of the Swiss National Supercomputing Centre (cover page)\n  [[link]](https://www.cscs.ch/publications/annual-reports/cscs-annual-report-2019)\n8. Karnakov P, Wermelinger F, Litvinov S, Koumoutsakos P.\n  Aphros: High Performance Software for Multiphase Flows with Large Scale Bubble and Drop Clusters.\n  _Proceedings of the platform for advanced scientific computing conference on – PASC ’20_. 2020\n  [10.1145/3394277.3401856](https://doi.org/10.1145/3394277.3401856)\n  [[pdf]](https://cselab.github.io/aphros/pdf/pasc2020.pdf)\n9. Karnakov P. The multilayer volume-of-fluid method for multiphase\n  flows across scales: breaking waves, microfluidics, and membrane-less\n  electrolyzers. _PhD thesis_. ETH Zurich. 2021\n  [10.3929/ethz-b-000547518](https://doi.org/10.3929/ethz-b-000547518)\n10. Martin SM, Wälchli D, Arampatzis G, Economides AE, Karnakov P, Koumoutsakos P.\n  Korali: Efficient and scalable software framework for Bayesian uncertainty quantification and stochastic optimization.\n  _Computer Methods in Applied Mechanics and Engineering_. 2021\n  [10.1016/j.cma.2021.114264](https://doi.org/10.1016/j.cma.2021.114264)\n11. Karnakov P, Litvinov S, Koumoutsakos P.\n  Computing foaming flows across scales: from breaking waves to microfluidics.\n  _Science Advances_. 2022\n  [10.1126/sciadv.abm0590](https://doi.org/10.1126/sciadv.abm0590)\n\n## Citing\n\nIf you use Aphros in your work, please consider using the following\n```\n@article{aphros2022,\n  author = {Petr Karnakov  and Sergey Litvinov  and Petros Koumoutsakos},\n  title = {Computing foaming flows across scales: From breaking waves to microfluidics},\n  journal = {Science Advances},\n  volume = {8},\n  number = {5},\n  pages = {eabm0590},\n  year = {2022},\n  doi = {10.1126/sciadv.abm0590},\n  URL = {https://www.science.org/doi/abs/10.1126/sciadv.abm0590},\n  eprint = {https://www.science.org/doi/pdf/10.1126/sciadv.abm0590},\n}\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcselab%2Faphros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcselab%2Faphros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcselab%2Faphros/lists"}