Exascale multiphase flow simulation
Welcome to the home of MFC! MFC simulates compressible multi-component and multi-phase flows, amongst other things. It scales ideally to exascale; tens of thousands of GPUs on NVIDIA- and AMD-GPU machines, like Oak Ridge Summit and Frontier. MFC is written in Fortran and makes use of metaprogramming to keep the code short (about 20K lines).
Get in touch with the maintainers, like Spencer, if you have questions! We have an active Slack channel and development team. MFC has high-level documentation, visualizations, and more on its website.
We keep many examples.
Here's one!
MFC can execute high-fidelity simulations of shock-droplet interaction (see examples/3d_shockdroplet
)
Another example is the high-Mach flow over an airfoil, shown below.
You can navigate to this webpage to get started using MFC! It's rather straightforward. We'll give a brief intro. here for MacOS. Using brew, install MFC's modest set of dependencies:
brew install wget python cmake gcc@13 mpich
You're now ready to build and test MFC! Put it to a convenient directory via
git clone https://github.com/mflowcode/MFC.git
cd MFC
and make sure MFC knows what compilers to use by putting the following in your ~/.profile
export CC=gcc-13
export CXX=g++-13
export FC=gfortran-13
and source that file, build, and test!
source ~/.profile
./mfc.sh build -j 8
./mfc.sh test -j 8
And... you're done!
You can learn more about MFC's capabilities via its documentation or play with the examples located in the examples/
directory (some are shown here)!
The shock-droplet interaction case above was run via
./mfc.sh run ./examples/3d_shockdroplet/case.py -n 8
where 8
is the number of cores the example will run on.
You can visualize the output data, located in examples/3d_shockdroplet/silo_hdf5
, via Paraview, Visit, or your other favorite software.
OLCF Frontier is the first exascale supercomputer. The weak scaling of MFC on this machine is below, showing near-ideal utilization.
MFC has many features. They are organized below, just click the drop-downs!
If you use MFC, consider citing it:
@article{Bryngelson_2021,
title = {{MFC: A}n open-source high-order multi-component, multi-phase, and multi-scale compressible flow solver},
author = {Spencer H. Bryngelson and Kevin Schmidmayer and Vedran Coralic and Jomela C. Meng and Kazuki Maeda and Tim Colonius},
journal = {Computer Physics Communications},
doi = {10.1016/j.cpc.2020.107396},
year = {2021},
pages = {107396},
}
Copyright 2021-2024 Spencer Bryngelson and Tim Colonius. MFC is under the MIT license (see LICENSE file for full text).
Multiple federal sponsors have supported MFC development, including the US Department of Defense (DOD), National Institutes of Health (NIH), Department of Energy (DOE), and National Science Foundation (NSF). MFC computations use OLCF Frontier, Summit, and Wombat under allocation CFD154 (PI Bryngelson) and ACCESS-CI under allocations TG-CTS120005 (PI Colonius) and TG-PHY210084 (PI Bryngelson).