Skip to content

Commit 596ef8b

Browse files
authored
readme update (#460)
1 parent 4dd7f25 commit 596ef8b

File tree

1 file changed

+56
-33
lines changed

1 file changed

+56
-33
lines changed

README.md

Lines changed: 56 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
</p>
66

77
<p align="center">
8-
<a href="http://dx.doi.org/10.1016/j.cpc.2020.107396">
8+
<a href="http://dx.doi.org/10.1016/j.cpc.2020.107396" target="_blank">
99
<img src="https://zenodo.org/badge/doi/10.1016/j.cpc.2020.107396.svg" />
1010
</a>
1111
<a href="https://github.com/MFlowCode/MFC/actions">
@@ -17,21 +17,20 @@
1717
<a href="https://lbesson.mit-license.org/">
1818
<img src="https://img.shields.io/badge/License-MIT-blue.svg" />
1919
</a>
20-
<a href="https://codecov.io/github/MFlowCode/MFC">
20+
<a href="https://codecov.io/github/MFlowCode/MFC" target="_blank">
2121
<img src="https://codecov.io/github/MFlowCode/MFC/graph/badge.svg?token=8SY043QND4">
2222
</a>
2323
</p>
2424

2525
Welcome to the home of MFC!
2626
MFC simulates compressible multi-component and multi-phase flows, [amongst other things](#what-else-can-this-thing-do).
27-
It scales <b>ideally to exascale</b>; [tens of thousands of GPUs on NVIDIA- and AMD-GPU machines](#is-this-really-exascale), like Oak Ridge Summit and Frontier.
27+
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 Summit and Frontier.
2828
MFC is written in Fortran and makes use of metaprogramming to keep the code short (about 20K lines).
2929

30-
Get in touch with the maintainers, like <a href="mailto:[email protected]">Spencer</a>, if you have questions!
30+
Get in touch with <a href="mailto:[email protected]">Spencer</a> if you have questions!
3131
We have an [active Slack channel](https://join.slack.com/t/mflowcode/shared_invite/zt-y75wibvk-g~zztjknjYkK1hFgCuJxVw) and development team.
3232
MFC has high-level documentation, visualizations, and more on [its website](https://mflowcode.github.io/).
3333

34-
3534
## An example
3635

3736
We keep many examples.
@@ -61,20 +60,18 @@ brew install wget python cmake gcc@13 mpich
6160
You're now ready to build and test MFC!
6261
Put it to a convenient directory via
6362
```shell
64-
git clone https://github.com/mflowcode/MFC.git
63+
git clone https://github.com/MFlowCode/MFC.git
6564
cd MFC
6665
```
67-
and make sure MFC knows what compilers to use by putting the following in your `~/.profile`
66+
and be sure MFC knows what compilers to use by appending and sourcing your `~/.profile` file via this command
6867
```shell
69-
export CC=gcc-13
70-
export CXX=g++-13
71-
export FC=gfortran-13
68+
echo -e "export CC=gcc-13 \nexport CXX=g++-13 \nexport FC=gfortran-13" >> ~/.profile
69+
source ~/.profile
7270
```
73-
and source that file, build, and test!
71+
then you can build MFC and run the test suite!
7472
```shell
75-
source ~/.profile
76-
./mfc.sh build -j 8
77-
./mfc.sh test -j 8
73+
./mfc.sh build -j $(nproc)
74+
./mfc.sh test -j $(nproc)
7875
```
7976
And... you're done!
8077

@@ -100,33 +97,38 @@ The weak scaling of MFC on this machine is below, showing near-ideal utilization
10097
## What else can this thing do
10198

10299
MFC has many features.
103-
They are organized below, just click the drop-downs!
100+
They are organized below. Just click the drop-downs!
104101

105102
<details>
106103
<summary>Physics</summary>
107104

108105
* 1-3D
109106
* Compressible
107+
* Low Mach number treatment available
110108
* Multi- and single-component
111109
* 4, 5, and 6 equation models for multi-component/phase features
110+
* Kapila and Allaire models
112111
* Multi- and single-phase
113112
* Phase change via p, pT, and pTg schemes
114113
* Grids
115-
* 1-3D Cartesian, cylindrical, axi-symmetric.
116-
* Arbitrary grid stretching for multiple domain regions available.
114+
* 1-3D Cartesian, cylindrical, axisymmetric.
115+
* Arbitrary grid stretching for multiple domain regions.
117116
* Complex/arbitrary geometries via immersed boundary methods
118117
* STL geometry files supported
118+
* Surface tension for multiphase cases
119119
* Sub-grid Euler-Euler multiphase models for bubble dynamics and similar
120120
* Viscous effects (high-order accurate representations)
121121
* Ideal and stiffened gas equations of state
122+
* Body forces
122123
* Acoustic wave generation (one- and two-way sound sources)
123124
</details>
124125

125126
<details>
126127
<summary>Numerics</summary>
127128

128129
* Shock and interface capturing schemes
129-
* First-order upwinding, WENO3 and 5.
130+
* First-order upwinding, WENO3 and 5.
131+
* Monotonicity-preserving reconstructions
130132
* Reliable handling of high density ratios.
131133
* Exact and approximate (e.g., HLL, HLLC) Riemann solvers
132134
* Boundary conditions: Periodic, reflective, extrapolation/Neumann, slip/no-slip, non-reflecting characteristic buffers, inflows, outflows, and more.
@@ -137,51 +139,72 @@ They are organized below, just click the drop-downs!
137139
<details>
138140
<summary>Large-scale and accelerated simulation</summary>
139141

140-
* GPU compatible on NVIDIA (P/V/A/H100, etc.) and AMD (MI200+) hardware
141-
* Ideal weak scaling to 100% of leadership class machines
142-
* \>10K GPUs on [OLCF Summit](https://www.olcf.ornl.gov/summit/) (V100-based)
143-
* \>60K GPUs on world's first exascale computer, [OLCF Frontier](https://www.olcf.ornl.gov/frontier/) (MI250X-based)
144-
* Near roofline behavior
142+
* GPU compatible on NVIDIA (P/V/A/H100, GH200, etc.) and AMD (MI200+) hardware
143+
* Ideal weak scaling to 100% of the largest GPU supercomputers
144+
* \>10K NVIDIA GPUs on [OLCF Summit](https://www.olcf.ornl.gov/summit/) (NV V100-based)
145+
* \>66K AMD GPUs on the first exascale computer, [OLCF Frontier](https://www.olcf.ornl.gov/frontier/) (AMD MI250X-based)
146+
* Near compute roofline behavior
147+
* RDMA (remote data memory access; GPU-GPU direct communication) via GPU-aware MPI on NVIDIA (CUDA-aware MPI) and AMD GPU systems
145148
</details>
146149

147150
<details>
148151
<summary>Software robustness and other features</summary>
149152

150153
* [Fypp](https://fypp.readthedocs.io/en/stable/fypp.html) metaprogramming for code readability, performance, and portability
151154
* Continuous Integration (CI)
152-
* Regression test cases on CPU and GPU hardware with each PR. Performed with GNU, Intel, and NVIDIA compilers.
155+
* \>100 Regression tests with each PR.
156+
* Performed with GNU, Intel, and NVIDIA compilers on NVIDIA and AMD GPUs.
157+
* Line-level test coverage reports via [Codecov](https://app.codecov.io/gh/MFlowCode/MFC) and `gcov`
153158
* Benchmarking to avoid performance regressions and identify speed-ups
154159
* Continuous Deployment (CD) of [website](https://mflowcode.github.io) and [API documentation](https://mflowcode.github.io/documentation/index.html)
155160
</details>
156161

157162

158163
## Citation
159164

160-
If you use MFC, consider citing it:
165+
If you use MFC, consider citing it as:
161166

162167
<p align="center">
163168
<a href="https://doi.org/10.1016/j.cpc.2020.107396">
164-
S. H. Bryngelson, K. Schmidmayer, V. Coralic, K. Maeda, J. Meng, T. Colonius (2021) Computer Physics Communications 4655, 107396
169+
S. H. Bryngelson, K. Schmidmayer, V. Coralic, K. Maeda, J. Meng, T. Colonius (2021) Computer Physics Communications <b>266</b>, 107396
165170
</a>
166171
</p>
167172

168173
```bibtex
169174
@article{Bryngelson_2021,
170-
title = {{MFC: A}n open-source high-order multi-component, multi-phase, and multi-scale compressible flow solver},
171-
author = {Spencer H. Bryngelson and Kevin Schmidmayer and Vedran Coralic and Jomela C. Meng and Kazuki Maeda and Tim Colonius},
175+
title = {{MFC: A}n open-source high-order multi-component, multi-phase, and multi-scale compressible flow solver},
176+
author = {S. H. Bryngelson and K. Schmidmayer and V. Coralic and J. C. Meng and K. Maeda and T. Colonius},
172177
journal = {Computer Physics Communications},
173-
doi = {10.1016/j.cpc.2020.107396},
174-
year = {2021},
175-
pages = {107396},
178+
year = {2021},
179+
volume = {266},
180+
pages = {107396},
181+
doi = {10.1016/j.cpc.2020.107396}
182+
}
183+
```
184+
185+
```bibtex
186+
@article{Radhakrishnan_2024,
187+
title = {Method for portable, scalable, and performant {GPU}-accelerated simulation of multiphase compressible flow},
188+
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},
189+
journal = {Computer Physics Communications},
190+
year = {2024},
191+
volume = {302},
192+
pages = {109238},
193+
doi = {10.1016/j.cpc.2024.109238}
176194
}
177195
```
178196

179197
## License
180198

181199
Copyright 2021-2024 Spencer Bryngelson and Tim Colonius.
182-
MFC is under the MIT license (see [LICENSE](LICENSE) file for full text).
200+
MFC is under the MIT license (see [LICENSE](LICENSE) for full text).
183201

184202
## Acknowledgements
185203

186204
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).
187-
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).
205+
206+
MFC computations have used many supercomputing systems. A partial list is below
207+
* OLCF Frontier and Summit, and testbed systems Wombat, Crusher, and Spock (allocation CFD154, PI Bryngelson)
208+
* PSC Bridges(1/2), NCSA Delta, SDSC Comet and Expanse, Purdue Anvil, TACC Stampede(1-3), and TAMU ACES via ACCESS-CI (allocations TG-CTS120005 (PI Colonius) and TG-PHY210084 (PI Bryngelson))
209+
* DOD systems Onyx, Carpenter, and Nautilus via the DOD HPCMP program
210+
* Sandia National Labs systems Doom and Attaway and testbed systems Weaver and Vortex

0 commit comments

Comments
 (0)