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 on 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 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 be sure MFC knows what compilers to use by appending and sourcing your ~/.profile
file via this command
echo -e "export CC=gcc-13 \nexport CXX=g++-13 \nexport FC=gfortran-13" >> ~/.profile
source ~/.profile
then you can build MFC and run the test suite!
./mfc.sh build -j $(nproc)
./mfc.sh test -j $(nproc)
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 as:
@article{Bryngelson_2021,
title = {{MFC: A}n open-source high-order multi-component, multi-phase, and multi-scale compressible flow solver},
author = {S. H. Bryngelson and K. Schmidmayer and V. Coralic and J. C. Meng and K. Maeda and T. Colonius},
journal = {Computer Physics Communications},
year = {2021},
volume = {266},
pages = {107396},
doi = {10.1016/j.cpc.2020.107396}
}
@article{Radhakrishnan_2024,
title = {Method for portable, scalable, and performant {GPU}-accelerated simulation of multiphase compressible flow},
author = {A. Radhakrishnan and H. {Le Berre} and B. Wilfong and J.-S. Spratt and M. {Rodriguez Jr.} and T. Colonius and S. H. Bryngelson},
journal = {Computer Physics Communications},
year = {2024},
volume = {302},
pages = {109238},
doi = {10.1016/j.cpc.2024.109238}
}
Copyright 2021-2024 Spencer Bryngelson and Tim Colonius. MFC is under the MIT license (see LICENSE 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 have used many supercomputing systems. A partial list is below