Skip to content

Commit 11a29c3

Browse files
sbryngelsonclaude
andcommitted
Restructure README: lead with impact, add Why MFC, fix broken links
- Add tagline and hero blockquote (Gordon Bell, 200T grid points, exascale) - Promote shock-droplet image to hero position - Add "Why MFC?" section with 6 key differentiators - Streamline "Try MFC" with direct Codespace link and first-simulation command - Remove redundant Getting Started section (Codespaces detail, macOS from-source) - Deduplicate citation block and star CTA (each appeared twice) - Move star history chart to bottom - Fix 3 broken doc links: md_examples, md_running, md_getting-started Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4c52155 commit 11a29c3

1 file changed

Lines changed: 62 additions & 145 deletions

File tree

README.md

Lines changed: 62 additions & 145 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
</a>
55
</p>
66

7+
<h3 align="center">An exascale many-physics flow solver</h3>
8+
79
<p align="center">
810
<a href="https://github.com/MFlowCode/MFC/actions">
911
<img src="https://img.shields.io/github/actions/workflow/status/mflowcode/mfc/test.yml?style=flat&label=Tests&color=slateblue%09"/>
@@ -37,174 +39,64 @@
3739
</a>
3840
<a href="https://hub.docker.com/r/sbryngelson/mfc">
3941
<img src="https://img.shields.io/badge/dockerhub-images-important.svg?logo=Docker&style=flat" />
40-
</a>
41-
42+
</a>
4243
<a href="https://github.com/MFlowCode/homebrew-mfc">
4344
<img src="https://img.shields.io/badge/homebrew-mflowcode%2Fmfc%2Fmfc-brown?logo=homebrew&style=flat" />
44-
</a>
45+
</a>
4546
</p>
4647

48+
> **2025 Gordon Bell Prize Finalist** - MFC simulates compressible multi-phase flows at exascale, using [Fypp](https://fypp.readthedocs.io/en/stable/fypp.html) metaprogramming in ~40K lines of Fortran. It conducted the [largest known public CFD simulation](https://arxiv.org/abs/2505.07392) at **200 trillion grid points** and 1 quadrillion degrees of freedom, scaling ideally to >43K AMD APUs on [El Capitan](https://hpc.llnl.gov/hardware/compute-platforms/el-capitan) and >33K AMD GPUs on [Frontier](https://www.olcf.ornl.gov/frontier/).
49+
4750
<p align="center">
48-
<a href="https://star-history.com/#MFlowCode/MFC&Date">
49-
<picture>
50-
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=MFlowCode/MFC&type=Date&theme=dark" />
51-
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=MFlowCode/MFC&type=Date" />
52-
<img src="https://api.star-history.com/svg?repos=MFlowCode/MFC&type=Date&theme=dark" alt="Star History Chart" width="600"/>
53-
</picture>
54-
</a>
51+
<img src="docs/res/shockdrop.png" alt="Shock-droplet interaction simulated with MFC" width="700"/>
5552
</p>
5653

57-
> **If MFC helps your work, please ⭐ the repo and cite it!**
54+
## Why MFC?
5855

59-
### Who uses MFC
56+
- **Exascale GPU performance** - Ideal weak scaling to 43K+ GPUs. Near compute-roofline behavior. [Compile-time case optimization](https://mflowcode.github.io/documentation/running.html) for up to 10x speedup.
57+
- **Compact codebase** - ~40K lines of Fortran with [Fypp](https://fypp.readthedocs.io/en/stable/fypp.html) metaprogramming. Small enough to read and modify; powerful enough for [Gordon Bell](https://awards.acm.org/bell).
58+
- **Native multi-phase** - 4, 5, and 6-equation models, phase change, surface tension, bubble dynamics, and Euler-Lagrange particle tracking, all built in.
59+
- **Portable** - NVIDIA and AMD GPUs, CPUs, laptops to exascale. Docker, Codespaces, Homebrew, and [16+ HPC system templates](https://mflowcode.github.io/documentation/running.html).
60+
- **Tested** - 500+ regression tests per PR with line-level [coverage](https://app.codecov.io/gh/MFlowCode/MFC) across GNU, Intel, Cray, and NVIDIA compilers.
61+
- **Truly open** - MIT license, active [Slack](https://join.slack.com/t/mflowcode/shared_invite/zt-y75wibvk-g~zztjknjYkK1hFgCuJxVw), and responsive development team.
6062

61-
MFC runs at exascale on the world's fastest supercomputers:
62-
- **OLCF Frontier** (>33K AMD MI250X GPUs)
63-
- **LLNL El Capitan** (>43K AMD MI300A APUs)
64-
- **LLNL Tuolumne**, **CSCS Alps**, and many others
63+
> If MFC is useful to your work, please ⭐ star the repo and [cite it](#citation)!
6564
66-
### Try MFC
65+
## Try MFC
6766

6867
| Path | Command |
6968
| --- | --- |
70-
| **Codespaces** (fastest) 💨 | Click the "Codespaces" badge above to launch in 1 click |
69+
| **Codespaces** (fastest) 💨 | [Open a Codespace](https://github.com/codespaces/new?hide_repo_select=true&ref=master&repo=MFlowCode%2FMFC) - pre-built, zero install |
7170
| **Docker** 🐳 | `docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu` |
72-
| **Homebrew** (macOS) 🍺 | `brew install mflowcode/mfc/mfc && mfc $(brew --prefix mfc)/examples/1D_sodshocktube/case.py -n 2` |
73-
| **Local build** 💻 | `./mfc.sh build -j $(nproc) && ./mfc.sh test -j $(nproc)` |
74-
75-
**Welcome!**
76-
MFC simulates compressible multi-phase flows, [among other things](#what-else-can-this-thing-do).
77-
It uses metaprogramming and is short (~40K lines of Fortran) and portable.
78-
MFC conducted the largest known CFD simulation at <a href="https://arxiv.org/abs/2505.07392" target="_blank">200 trillion grid points</a>, and 1 quadrillion degrees of freedom (as of September 2025).
79-
MFC is a 2025 Gordon Bell Prize Finalist.
80-
81-
<p align="center">
82-
<a href="https://doi.org/10.1016/j.cpc.2026.110055" target="_blank">
83-
<img src="https://img.shields.io/badge/DOI-10.1016/j.cpc.2026.110055-thistle.svg"/>
84-
</a>
85-
<a href="https://doi.org/10.5281/zenodo.17049757" target="_blank">
86-
<img src="https://zenodo.org/badge/DOI/10.5281/zenodo.17049757.svg"/>
87-
</a>
88-
<a href="https://github.com/MFlowCode/MFC/stargazers" target="_blank">
89-
<img src="https://img.shields.io/github/stars/MFlowCode/MFC?style=flat&color=maroon"/>
90-
</a>
91-
92-
</br>
93-
Is MFC useful for you? Consider citing it or giving a star!
94-
</p>
71+
| **Homebrew** (macOS) 🍺 | `brew install mflowcode/mfc/mfc` |
72+
| **From source** 💻 | `git clone https://github.com/MFlowCode/MFC && cd MFC && ./mfc.sh build -j $(nproc)` |
9573

96-
```bibtex
97-
@article{wilfong26,
98-
Author = {Benjamin Wilfong and Henry {Le Berre} and Anand Radhakrishnan and Ansh Gupta and Daniel J. Vickers and Diego Vaca-Revelo and Dimitrios Adam and Haocheng Yu and Hyeoksu Lee and Jose Rodolfo Chreim and Mirelys {Carcana Barbosa} and Yanjun Zhang and Esteban Cisneros-Garibay and Aswin Gnanaskandan and Mauro {Rodriguez Jr.} and Reuben D. Budiardja and Stephen Abbott and Tim Colonius and Spencer H. Bryngelson},
99-
Title = {{MFC 5.0: A}n exascale many-physics flow solver},
100-
journal = {Computer Physics Communications},
101-
year = {2026},
102-
volume = {322},
103-
pages = {110055},
104-
doi = {10.1016/j.cpc.2026.110055},
105-
}
74+
Your first simulation:
75+
```bash
76+
./mfc.sh run examples/3d_shockdroplet/case.py -n $(nproc)
10677
```
78+
Visualize the output in `examples/3d_shockdroplet/silo_hdf5/` with ParaView, VisIt, or your favorite tool.
79+
For detailed build instructions (Linux, macOS, Windows/WSL, HPC clusters), see the [Getting Started guide](https://mflowcode.github.io/documentation/getting-started.html).
10780

108-
MFC is used on the latest leadership-class supercomputers.
109-
It scales <b>ideally to exascale</b>; [tens of thousands of GPUs on NVIDIA- and AMD-GPU machines](#is-this-really-exascale) on Oak Ridge Frontier, LLNL El Capitan, CSCS Alps, among others.
110-
MFC is a SPEChpc benchmark candidate, part of the JSC JUPITER Early Access Program, and used OLCF Frontier and LLNL El Capitan early access systems.
111-
11281
Get in touch with <a href="mailto:shb@gatech.edu">Spencer</a> if you have questions!
11382
We have an [active Slack channel](https://join.slack.com/t/mflowcode/shared_invite/zt-y75wibvk-g~zztjknjYkK1hFgCuJxVw) and development team.
11483
MFC has high- and low-level documentation, visualizations, and more on [its website](https://mflowcode.github.io/).
11584

116-
## An example
117-
118-
We keep many examples.
119-
Here are some of them!
120-
MFC can execute high-fidelity simulations of shock-droplet interaction (see `examples/3d_shockdroplet`)
121-
122-
<p align="center">
123-
<img src="docs/res/shockdrop.png" alt="Shock Droplet Example" width="700"/>
124-
</p>
85+
## Examples
12586

126-
This one simulates high-Mach flow over an airfoil:
87+
MFC ships with [137+ example cases](https://mflowcode.github.io/documentation/examples.html).
88+
Here is a high-Mach flow over an airfoil (see `examples/`):
12789

12890
<p align="center">
129-
<img src="docs/res/airfoil.png" alt="Airfoil Example" width="700"/><br/>
91+
<img src="docs/res/airfoil.png" alt="High-Mach airfoil flow" width="700"/><br/>
13092
</p>
13193

132-
And here is a high-amplitude acoustic wave reflecting and emerging through a circular orifice:
94+
And a high-amplitude acoustic wave reflecting and emerging through a circular orifice:
13395

13496
<p align="center">
135-
<img src="docs/res/orifice.png" alt="Orifice Example" width="700"/><br/>
97+
<img src="docs/res/orifice.png" alt="Acoustic wave through orifice" width="700"/><br/>
13698
</p>
13799

138-
139-
## Getting started
140-
141-
You can navigate [to this webpage](https://mflowcode.github.io/documentation/md_getting-started.html) to get you get started using MFC on your local machine, cluster, or supercomputer!
142-
It's rather straightforward.
143-
Some examples are below.
144-
145-
### Codespaces and Containers
146-
147-
<a href="https://github.com/codespaces/new?hide_repo_select=true&ref=master&repo=MFlowCode%2FMFC">
148-
<img src="https://img.shields.io/badge/Codespaces-Open%20in%201%20click-2ea44f?logo=github" />
149-
</a>
150-
151-
For a _very_ quick start, open a GitHub Codespace to load a pre-configured Docker container and familiarize yourself with MFC commands.
152-
Click <kbd> <> Code</kbd> (green button at top right) → <kbd>Codespaces</kbd> (right tab) → <kbd>+</kbd> (create a codespace).
153-
154-
Alternatively, run MFC directly with Docker on your local machine:
155-
```bash
156-
docker run -it --rm --entrypoint bash sbryngelson/mfc:latest-cpu
157-
```
158-
Once inside the container, navigate to `/opt/MFC` to access MFC and run examples.
159-
160-
> ****Note:**** Codespaces is a free service with a monthly quota of compute time and storage usage.
161-
> It is recommended for testing commands, troubleshooting, and running simple case files without installing dependencies or building MFC on your device.
162-
> Don't conduct any critical work here!
163-
> To learn more, please see [how Docker & Containers work](https://mflowcode.github.io/documentation/md_docker.html).
164-
165-
### macOS quick start (Homebrew)
166-
167-
<a href="https://github.com/MFlowCode/homebrew-mfc">
168-
<img src="https://img.shields.io/badge/homebrew-mflowcode%2Fmfc%2Fmfc-brown?logo=homebrew&style=flat" />
169-
</a>
170-
171-
Install the prebuilt package and run an example:
172-
173-
```bash
174-
brew install mflowcode/mfc/mfc
175-
mkdir -p ~/mfc_quickstart && cd ~/mfc_quickstart
176-
cp $(brew --prefix mfc)/examples/1D_sodshocktube/case.py .
177-
mfc case.py -n 2
178-
```
179-
180-
Use `-n X` to select the number of MPI processes. For developer commands (`build`, `test`, etc.), clone the repo and use `./mfc.sh`.
181-
182-
### macOS from source
183-
184-
We'll give a brief introduction for building from source on MacOS below.
185-
Using [brew](https://brew.sh), install MFC's dependencies:
186-
```shell
187-
brew install coreutils python cmake fftw hdf5 gcc boost open-mpi lapack
188-
```
189-
You're now ready to build and test MFC!
190-
Put it to a local directory via
191-
```shell
192-
git clone https://github.com/MFlowCode/MFC
193-
cd MFC
194-
```
195-
and be sure MFC knows where to find Boost by appending to your dotfiles and sourcing them again
196-
```shell
197-
echo -e "export BOOST_INCLUDE='$(brew --prefix --installed boost)/include'" | tee -a ~/.bash_profile ~/.zshrc
198-
. ~/.bash_profile 2>/dev/null || . ~/.zshrc 2>/dev/null
199-
! [ -z "${BOOST_INCLUDE+x}" ] && echo 'Environment is ready!' || echo 'Error: $BOOST_INCLUDE is unset. Please adjust the previous commands to fit with your environment.'
200-
```
201-
then you can build MFC and run the test suite!
202-
```shell
203-
./mfc.sh build -j $(nproc)
204-
./mfc.sh test -j $(nproc)
205-
```
206-
And... you're done!
207-
208100
## Toolchain
209101

210102
| Command | Description |
@@ -217,11 +109,11 @@ And... you're done!
217109
| `./mfc.sh clean` | Remove build artifacts |
218110
| `./mfc.sh interactive` | Launch interactive menu-driven interface |
219111

220-
Run `./mfc.sh <command> --help` for detailed options, or see the [full documentation](https://mflowcode.github.io/documentation/index.html). Tab completion for bash and zsh is auto-installed after you have run `./mfc.sh generate` (or any non-`init` command) at least once. Play with the examples in `examples/` ([showcased here](https://mflowcode.github.io/documentation/md_examples.html)).
112+
Run `./mfc.sh <command> --help` for detailed options, or see the [full documentation](https://mflowcode.github.io/documentation/index.html). Tab completion for bash and zsh is auto-installed after you have run `./mfc.sh generate` (or any non-`init` command) at least once. Play with the examples in `examples/` ([showcased here](https://mflowcode.github.io/documentation/examples.html)).
221113

222114
The shock-droplet interaction case above was run via
223115
```shell
224-
./mfc.sh run -n $(nproc) ./examples/3d_shockdroplet/case.py
116+
./mfc.sh run -n $(nproc) ./examples/3d_shockdroplet/case.py
225117
```
226118
where `$(nproc)` is the number of cores the example will run on (and the number of physical cores on your CPU device).
227119
You can visualize the output data in `examples/3d_shockdroplet/silo_hdf5` via Paraview, Visit, or your favorite software.
@@ -231,6 +123,7 @@ You can visualize the output data in `examples/3d_shockdroplet/silo_hdf5` via Pa
231123
[OLCF Frontier](https://www.olcf.ornl.gov/frontier/) is the first exascale supercomputer.
232124
The weak scaling of MFC on this machine shows near-ideal utilization.
233125
We also scale ideally to >98% of LLNL El Capitan.
126+
MFC is a SPEChpc benchmark candidate, part of the JSC JUPITER Early Access Program, and used OLCF Frontier and LLNL El Capitan early access systems.
234127

235128
<p align="center">
236129
<img src="docs/res/scaling.png" alt="Scaling" width="400"/>
@@ -246,10 +139,10 @@ We also scale ideally to >98% of LLNL El Capitan.
246139
* Multi- and single-component
247140
* 4, 5, and 6 equation models for multi-component/phase features
248141
* Kapila and Allaire models 5-equation models
249-
* Multi- and single-phase
142+
* Multi- and single-phase
250143
* Phase change via p, pT, and pTg schemes
251144
* Grids
252-
* 1-3D Cartesian, cylindrical, axisymmetric.
145+
* 1-3D Cartesian, cylindrical, axisymmetric.
253146
* Arbitrary grid stretching for multiple domain regions.
254147
* Complex/arbitrary geometries via immersed boundary method
255148
* STL geometry files supported
@@ -295,8 +188,8 @@ We also scale ideally to >98% of LLNL El Capitan.
295188
* Ideal weak scaling to 100% of the largest GPU and superchip supercomputers
296189
* \>43K AMD APUs (MI300A) on [LLNL El Capitan](https://hpc.llnl.gov/hardware/compute-platforms/el-capitan)
297190
* \>3K AMD APUs (MI300A) on [LLNL Tuolumne](https://hpc.llnl.gov/hardware/compute-platforms/tuolumne)
298-
* \>33K AMD GPUs (MI250X) on [OLCF Frontier](https://www.olcf.ornl.gov/frontier/)
299-
* \>10K NVIDIA GPUs (V100) on [OLCF Summit](https://www.olcf.ornl.gov/summit/)
191+
* \>33K AMD GPUs (MI250X) on [OLCF Frontier](https://www.olcf.ornl.gov/frontier/)
192+
* \>10K NVIDIA GPUs (V100) on [OLCF Summit](https://www.olcf.ornl.gov/summit/)
300193
* Near compute roofline behavior
301194
* Compile-time case optimization (hard-codes parameters for significant speedup)
302195
* RDMA (remote data memory access; GPU-GPU direct communication) via GPU-aware MPI on NVIDIA (CUDA-aware MPI) and AMD GPU systems
@@ -320,6 +213,18 @@ Ref. 1 includes all modern MFC features, including GPU acceleration and many new
320213
If referencing MFC's (GPU) performance, consider citing ref. 1 and 2, which describe the solver and its design.
321214
The original open-source release of MFC is ref. 3, which should be cited for provenance as appropriate.
322215

216+
<p align="center">
217+
<a href="https://doi.org/10.1016/j.cpc.2026.110055" target="_blank">
218+
<img src="https://img.shields.io/badge/DOI-10.1016/j.cpc.2026.110055-thistle.svg"/>
219+
</a>
220+
<a href="https://doi.org/10.5281/zenodo.17049757" target="_blank">
221+
<img src="https://zenodo.org/badge/DOI/10.5281/zenodo.17049757.svg"/>
222+
</a>
223+
<a href="https://github.com/MFlowCode/MFC/stargazers" target="_blank">
224+
<img src="https://img.shields.io/github/stars/MFlowCode/MFC?style=flat&color=maroon"/>
225+
</a>
226+
</p>
227+
323228
```bibtex
324229
@article{wilfong26,
325230
Author = {Benjamin Wilfong and Henry {Le Berre} and Anand Radhakrishnan and Ansh Gupta and Daniel J. Vickers and Diego Vaca-Revelo and Dimitrios Adam and Haocheng Yu and Hyeoksu Lee and Jose Rodolfo Chreim and Mirelys {Carcana Barbosa} and Yanjun Zhang and Esteban Cisneros-Garibay and Aswin Gnanaskandan and Mauro {Rodriguez Jr.} and Reuben D. Budiardja and Stephen Abbott and Tim Colonius and Spencer H. Bryngelson},
@@ -353,7 +258,7 @@ The original open-source release of MFC is ref. 3, which should be cited for pro
353258
```
354259

355260
## License
356-
261+
357262
Copyright 2021 Spencer Bryngelson and Tim Colonius.
358263
MFC is under the MIT license (see [LICENSE](LICENSE) for full text).
359264

@@ -367,3 +272,15 @@ MFC computations have used many supercomputing systems. A partial list is below
367272
* NCSA Delta and DeltaAI, PSC Bridges(1/2), SDSC Comet and Expanse, Purdue Anvil, TACC Stampede(1-3), and TAMU ACES via ACCESS-CI allocations from Bryngelson, Colonius, Rodriguez, and more.
368273
* DOD systems Blueback, Onyx, Carpenter, Nautilus, and Narwhal via the DOD HPCMP program.
369274
* Sandia National Labs systems Doom and Attaway, and testbed systems Weaver and Vortex.
275+
276+
---
277+
278+
<p align="center">
279+
<a href="https://star-history.com/#MFlowCode/MFC&Date">
280+
<picture>
281+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=MFlowCode/MFC&type=Date&theme=dark" />
282+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=MFlowCode/MFC&type=Date" />
283+
<img src="https://api.star-history.com/svg?repos=MFlowCode/MFC&type=Date&theme=dark" alt="Star History Chart" width="600"/>
284+
</picture>
285+
</a>
286+
</p>

0 commit comments

Comments
 (0)