You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<img src="https://api.star-history.com/svg?repos=MFlowCode/MFC&type=Date&theme=dark" alt="Star History Chart" width="600"/>
53
+
</picture>
50
54
</a>
51
55
</p>
52
56
@@ -70,7 +74,7 @@ MFC runs at exascale on the world's fastest supercomputers:
70
74
71
75
**Welcome!**
72
76
MFC simulates compressible multi-phase flows, [among other things](#what-else-can-this-thing-do).
73
-
It uses metaprogramming and is short (20K lines) and portable.
77
+
It uses metaprogramming and is short (~40K lines of Fortran) and portable.
74
78
MFC conducted the largest known CFD simulation at <ahref="https://arxiv.org/abs/2505.07392"target="_blank">200 trillion grid points</a>, and 1 quadrillion degrees of freedom (as of September 2025).
75
79
MFC is a 2025 Gordon Bell Prize Finalist.
76
80
@@ -199,53 +203,19 @@ then you can build MFC and run the test suite!
199
203
```
200
204
And... you're done!
201
205
202
-
## Toolchain Features
203
-
204
-
The `mfc.sh` script provides a comprehensive toolchain for building, running, and testing MFC:
206
+
## Toolchain
205
207
206
208
| Command | Description |
207
209
|---------|-------------|
208
210
|`./mfc.sh build`| Build MFC and its dependencies |
209
-
|`./mfc.sh run case.py`| Run a simulation case |
211
+
|`./mfc.sh run case.py`| Run a simulation case (interactive or batch: SLURM/PBS/LSF) |
210
212
|`./mfc.sh test`| Run the test suite |
211
213
|`./mfc.sh validate case.py`| Check a case file for errors before running |
212
214
|`./mfc.sh init my_case`| Create a new case from a template |
./mfc.sh init my_first_case # Create a new case from template
220
-
./mfc.sh validate my_first_case/case.py # Validate the case file
221
-
./mfc.sh build -j $(nproc)# Build MFC
222
-
./mfc.sh run my_first_case/case.py # Run the simulation
223
-
```
224
-
225
-
### Case Templates
226
-
227
-
Create new cases quickly with built-in templates:
228
-
229
-
```bash
230
-
./mfc.sh init --list # List available templates
231
-
./mfc.sh init my_case -t 2D_minimal # Create 2D case
232
-
./mfc.sh init my_case -t example:1D_sodshocktube # Copy from examples
233
-
```
234
-
235
-
### Shell Completion
236
-
237
-
Enable tab completion for commands and options:
238
-
239
-
```bash
240
-
# Bash
241
-
source toolchain/completions/mfc.bash
242
-
243
-
# Zsh (add to fpath)
244
-
fpath=(path/to/MFC/toolchain/completions $fpath)
245
-
autoload -Uz compinit && compinit
246
-
```
247
-
248
-
You can learn more about MFC's capabilities [via its documentation](https://mflowcode.github.io/documentation/index.html) or play with the examples located in the `examples/` directory (some are [shown here](https://mflowcode.github.io/documentation/md_examples.html))!
218
+
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)).
249
219
250
220
The shock-droplet interaction case above was run via
251
221
```shell
@@ -282,13 +252,16 @@ We also scale ideally to >98% of LLNL El Capitan.
282
252
* Complex/arbitrary geometries via immersed boundary method
283
253
* STL geometry files supported
284
254
* Surface tension for multiphase cases
285
-
* Sub-grid dynamics
286
-
* Euler-Euler particle models for bubble dynamics and similar
287
-
* Euler-Lagrange bubble dynamics
255
+
* Sub-grid bubble dynamics
256
+
* Euler-Euler volume-averaged bubble models
257
+
* Euler-Lagrange particle tracking
258
+
* Quadrature-based moment methods (QBMM)
288
259
* Viscous effects (high-order accurate representations)
260
+
* Hypoelastic and hyperelastic material models
289
261
* Ideal and stiffened gas equations of state
290
262
* Body forces
291
263
* Acoustic wave generation (one- and two-way sound sources)
264
+
* Chemistry and multi-species transport via [Pyrometheus](https://github.com/pyrometheus/pyrometheus)
292
265
* Magnetohydrodynamics (MHD)
293
266
* Relativistic Magnetohydrodynamics (RMHD)
294
267
@@ -323,7 +296,9 @@ We also scale ideally to >98% of LLNL El Capitan.
323
296
* \>33K AMD GPUs (MI250X) on [OLCF Frontier](https://www.olcf.ornl.gov/frontier/)
324
297
* \>10K NVIDIA GPUs (V100) on [OLCF Summit](https://www.olcf.ornl.gov/summit/)
325
298
* Near compute roofline behavior
299
+
* Compile-time case optimization (hard-codes parameters for significant speedup)
326
300
* RDMA (remote data memory access; GPU-GPU direct communication) via GPU-aware MPI on NVIDIA (CUDA-aware MPI) and AMD GPU systems
301
+
* Built-in profiling support (NVIDIA Nsight Compute/Systems, AMD rocprof)
327
302
* Optional single-precision computation and storage
0 commit comments