Skip to content

Commit 8c555cb

Browse files
committed
merge
2 parents 8ffc20c + 8311260 commit 8c555cb

File tree

96 files changed

+4042
-3712
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+4042
-3712
lines changed

.github/workflows/frontier/build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ if [ "$2" == "bench" ]; then
1313
./mfc.sh run "$dir/case.py" --case-optimization -j 8 --dry-run $build_opts
1414
done
1515
else
16-
./mfc.sh test -a --dry-run --rdma-mpi --generate -j 8 $build_opts
16+
./mfc.sh test -a --dry-run --rdma-mpi -j 8 $build_opts
1717
fi
1818

.github/workflows/frontier/submit.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ sbatch <<EOT
3333
#SBATCH -A CFD154 # charge account
3434
#SBATCH -N 1 # Number of nodes required
3535
$sbatch_device_opts
36-
#SBATCH -t 04:59:00 # Duration of the job (Ex: 15 mins)
36+
#SBATCH -t 05:59:00 # Duration of the job (Ex: 15 mins)
3737
#SBATCH -o$job_slug.out # Combined output and error messages file
3838
#SBATCH -p extended # Extended partition for shorter queues
3939
#SBATCH -W # Do not exit until the submitted job terminates.

.github/workflows/frontier/test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ ngpus=`echo "$gpus" | tr -d '[:space:]' | wc -c`
66
if [ "$job_device" = "gpu" ]; then
77
./mfc.sh test -a --rdma-mpi --max-attempts 3 -j $ngpus -- -c frontier
88
else
9-
./mfc.sh test -a --rdma-mpi --max-attempts 3 -j 32 -- -c frontier
9+
./mfc.sh test -a --max-attempts 3 -j 32 -- -c frontier
1010
fi

.github/workflows/test.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,11 @@ jobs:
4848
- name: Clone
4949
uses: actions/checkout@v4
5050

51+
- name: Set up Python 3.13
52+
uses: actions/setup-python@v5
53+
with:
54+
python-version: '3.13'
55+
5156
- name: Setup MacOS
5257
if: matrix.os == 'macos'
5358
run: |

.typos.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ strang = "strang"
1919
Strang = "Strang"
2020
TKE = "TKE"
2121
HSA = "HSA"
22+
infp = "infp"
2223

2324
[files]
2425
extend-exclude = ["docs/documentation/references*", "tests/", "toolchain/cce_simulation_workgroup_256.sh"]

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
// Enable ONLY fortls language server
5050
"fortran.enableLanguageServer": true,
5151
"fortran.languageServer": "fortls",
52-
"fortran.fortls.disabled": false,
52+
"fortran.fortls.disabled": true,
5353
"fortran.fortls.path": "fortls",
5454

5555
// Try to disable any built-in language features

CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,13 @@ macro(HANDLE_SOURCES target useCommon)
328328
"${CMAKE_BINARY_DIR}/modules/${target}/*.fpp")
329329
if (${useCommon})
330330
file(GLOB common_FPPs CONFIGURE_DEPENDS "${common_DIR}/*.fpp")
331+
332+
# If we're building post_process, exclude m_compute_levelset.fpp
333+
if("${target}" STREQUAL "post_process")
334+
list(FILTER common_FPPs EXCLUDE REGEX ".*/m_compute_levelset\.fpp$")
335+
list(FILTER common_FPPs EXCLUDE REGEX ".*/m_ib_patches\.fpp$")
336+
endif()
337+
331338
list(APPEND ${target}_FPPs ${common_FPPs})
332339
endif()
333340

@@ -443,7 +450,7 @@ function(MFC_SETUP_TARGET)
443450

444451
if (ARGS_SILO)
445452
find_package(SILO REQUIRED)
446-
target_link_libraries(${a_target} PRIVATE SILO::SILO)
453+
target_link_libraries(${a_target} PRIVATE SILO::SILO stdc++)
447454
endif()
448455

449456
if (ARGS_HDF5)

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
**Welcome!**
2929
MFC simulates compressible multi-phase flows, [among other things](#what-else-can-this-thing-do).
3030
It uses metaprogramming to stay short and portable (~20K lines).
31-
MFC conducted the largest known, open CFD simulation at <a href="https://arxiv.org/abs/2505.07392" target="_blank">101 trillion grid points</a> (as of July 2025).
31+
MFC conducted the largest known, open 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), and is a 2025 Gordon Bell Prize finalist.
3232

3333
<p align="center">
3434
<a href="https://doi.org/10.48550/arXiv.2503.07953" target="_blank">
@@ -187,7 +187,7 @@ They are organized below.
187187

188188
* GPU compatible on NVIDIA ([P/V/A/H]100, GH200, etc.) and AMD (MI[1/2/3]00+) GPU and APU hardware
189189
* Ideal weak scaling to 100% of the largest GPU and superchip supercomputers
190-
* \>36K AMD APUs (MI300A) on [LLNL El Capitan](https://hpc.llnl.gov/hardware/compute-platforms/el-capitan)
190+
* \>43K AMD APUs (MI300A) on [LLNL El Capitan](https://hpc.llnl.gov/hardware/compute-platforms/el-capitan)
191191
* \>3K AMD APUs (MI300A) on [LLNL Tuolumne](https://hpc.llnl.gov/hardware/compute-platforms/tuolumne)
192192
* \>33K AMD GPUs (MI250X) on [OLCF Frontier](https://www.olcf.ornl.gov/frontier/)
193193
* \>10K NVIDIA GPUs (V100) on [OLCF Summit](https://www.olcf.ornl.gov/summit/)
@@ -199,7 +199,7 @@ They are organized below.
199199

200200
* [Fypp](https://fypp.readthedocs.io/en/stable/fypp.html) metaprogramming for code readability, performance, and portability
201201
* Continuous Integration (CI)
202-
* > 500 Regression tests with each PR.
202+
* \>500 Regression tests with each PR.
203203
* Performed with GNU (GCC), Intel (oneAPI), Cray (CCE), and NVIDIA (NVHPC) compilers on NVIDIA and AMD GPUs.
204204
* Line-level test coverage reports via [Codecov](https://app.codecov.io/gh/MFlowCode/MFC) and `gcov`
205205
* Benchmarking to avoid performance regressions and identify speed-ups

docs/documentation/case.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -482,9 +482,9 @@ It is recommended to set `weno_eps` to $10^{-6}$ for WENO-JS, and to $10^{-40}$
482482

483483
- `mp_weno` activates monotonicity preservation in the WENO reconstruction (MPWENO) such that the values of reconstructed variables do not reside outside the range spanned by WENO stencil ([Balsara and Shu, 2000](references.md); [Suresh and Huynh, 1997](references.md)).
484484

485-
- `muscl_order` specifies the order of the MUSCL scheme that is used for spatial reconstruction of variables by an integer of 1, or 2, that corresponds to the 1st, and 2nd order respectively. When using `muscl_order = 2`, `muscl_lim` must be defined.
485+
- `muscl_order` specifies the order of the MUSCL scheme that is used for spatial reconstruction of variables by an integer of 1, or 2, that corresponds to the 1st, and 2nd order respectively. When using `muscl_order = 2`, `muscl_lim` must be defined.
486486

487-
- `muscl_lim` specifies the slope limiter that is used in 2nd order MUSCL Reconstruction by an integer from 1 through 5.
487+
- `muscl_lim` specifies the slope limiter that is used in 2nd order MUSCL Reconstruction by an integer from 1 through 5.
488488
`muscl_lim = 1`, `2`, `3`, `4`, and `5` correspond to minmod, monotonized central, Van Albada, Van Leer, and SUPERBEE, respectively.
489489

490490
- `int_comp` activates interface compression using THINC used in MUSCL Reconstruction, with control parameters (`ic_eps`, and `ic_beta`).
@@ -599,6 +599,24 @@ To restart the simulation from $k$-th time step, see [Restarting Cases](running.
599599
| `output_partial_domain` | Logical | Output part of the domain |
600600
| `[x,y,z]_output%beg` | Real | Beginning of the output domain in the [x,y,z]-direction |
601601
| `[x,y,z]_output%end` | Real | End of the output domain in the [x,y,z]-direction |
602+
| `lag_txt_wrt` | Logical | Write Lagrangian bubble data to `.dat` files |
603+
| `lag_header` | Logical | Write header to Lagrangian bubble `.dat` files |
604+
| `lag_db_wrt` | Logical | Write Lagrangian bubble data to silo/hdf5 database files |
605+
| `lag_id_wrt` | Logical | Add the global bubble idea to the database file |
606+
| `lag_pos_wrt` | Logical | Add the bubble position to the database file |
607+
| `lag_pos_prev_wrt` | Logical | Add the previous bubble position to the database file |
608+
| `lag_vel_wrt` | Logical | Add the bubble translational velocity to the database file |
609+
| `lag_rad_wrt` | Logical | Add the bubble radius to the database file |
610+
| `lag_rvel_wrt` | Logical | Add the bubble radial velocity to the database file |
611+
| `lag_r0_wrt` | Logical | Add the bubble initial radius to the database file |
612+
| `lag_rmax_wrt` | Logical | Add the bubble maximum radius to the database file |
613+
| `lag_rmin_wrt` | Logical | Add the bubble minimum radius to the database file |
614+
| `lag_dphidt_wrt` | Logical | Add the bubble subgrid velocity potential to the database file |
615+
| `lag_pres_wrt` | Logical | Add the bubble pressure to the database file |
616+
| `lag_mv_wrt` | Logical | Add the bubble vapor mass to the database file |
617+
| `lag_mg_wrt` | Logical | Add the bubble gas mass to the database file |
618+
| `lag_betaT_wrt` | Logical | Add the bubble heat flux model coefficient to the database file |
619+
| `lag_betaC_wrt` | Logical | Add the bubble mass flux model coefficient to the database file |
602620

603621
The table lists formatted database output parameters. The parameters define variables that are outputted from simulation and file types and formats of data as well as options for post-processing.
604622

@@ -628,7 +646,7 @@ If `file_per_process` is true, then pre_process, simulation, and post_process mu
628646

629647
- `output_partial_domain` activates the output of part of the domain specified by `[x,y,z]_output%beg` and `[x,y,z]_output%end`.
630648
This is useful for large domains where only a portion of the domain is of interest.
631-
It is not supported when `precision = 1` and `format = 1`.
649+
It is not supported when `precision = 1` and `format = 1`.
632650
It also cannot be enabled with `flux_wrt`, `heat_ratio_wrt`, `pres_inf_wrt`, `c_wrt`, `omega_wrt`, `ib`, `schlieren_wrt`, `qm_wrt`, or 'liutex_wrt'.
633651

634652
### 8. Acoustic Source {#acoustic-source}

docs/documentation/gpuParallelization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Note: Ordering is not guaranteed or stable, so use key-value pairing when using
3131

3232
- Data on the GPU has a reference counter
3333
- When data is referred to being allocated, it means that GPU memory is allocated if it is not already present in GPU memory. If a variable is already present, the reference counter is just incremented.
34-
- When data is referred to being dellocated, it means that the reference counter is decremented. If the reference counter is zero, then the data is actually deallocated from GPU memory
34+
- When data is referred to being deallocated, it means that the reference counter is decremented. If the reference counter is zero, then the data is actually deallocated from GPU memory
3535
- When data is referred to being attached, it means that the device pointer attaches to target if it not already attached. If pointer is already attached, then the attachment counter is just incremented
3636
- When data is referred to being detached, it means that the attachment counter is decremented. If attachment counter is zero, then actually detached
3737

0 commit comments

Comments
 (0)