Skip to content

Commit bf2712d

Browse files
authored
Merge branch 'master' into fix/axisym-single-fluid-nan
2 parents 5b00648 + 141ff01 commit bf2712d

111 files changed

Lines changed: 3393 additions & 4757 deletions

File tree

Some content is hidden

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

.github/scripts/submit-slurm-job.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ case "$cluster" in
5151
compiler_flag="f"
5252
account="CFD154"
5353
job_prefix="MFC"
54-
qos="develop"
54+
qos="hackathon"
5555
extra_sbatch=""
5656
test_time="01:59:00"
5757
bench_time="01:59:00"
@@ -61,7 +61,7 @@ case "$cluster" in
6161
compiler_flag="famd"
6262
account="CFD154"
6363
job_prefix="MFC"
64-
qos="develop"
64+
qos="hackathon"
6565
extra_sbatch=""
6666
test_time="01:59:00"
6767
bench_time="01:59:00"
@@ -92,7 +92,7 @@ if [ "$device" = "cpu" ]; then
9292
frontier|frontier_amd)
9393
sbatch_device_opts="\
9494
#SBATCH -n 32
95-
#SBATCH -p service"
95+
#SBATCH -p batch"
9696
;;
9797
esac
9898
elif [ "$device" = "gpu" ]; then
@@ -120,7 +120,7 @@ elif [ "$device" = "gpu" ]; then
120120
frontier|frontier_amd)
121121
sbatch_device_opts="\
122122
#SBATCH -n 8
123-
#SBATCH -p service"
123+
#SBATCH -p batch"
124124
;;
125125
esac
126126
else

.github/workflows/common/build.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,23 @@ fi
2525
# source code is built here on the compute node.
2626
# Phoenix: always start fresh to avoid SIGILL from stale binaries compiled
2727
# on a different microarchitecture.
28+
# Frontier: wipe only compiled Fortran staging/install slugs; preserve dep
29+
# dirs (silo, hdf5, lapack, fftw, hipfort) which were built on the login node
30+
# and cannot be re-fetched from a compute node (no internet).
2831
if [ "$job_cluster" = "phoenix" ]; then
2932
source .github/scripts/clean-build.sh
3033
clean_build
34+
elif [ "$job_cluster" = "frontier" ] || [ "$job_cluster" = "frontier_amd" ]; then
35+
for _dir in build/staging/ build/install/; do
36+
if [ -d "$_dir" ]; then
37+
for _sub in "$_dir"*/; do
38+
_name=$(basename "$_sub")
39+
case "$_name" in silo|hdf5|lapack|fftw|hipfort) continue ;; esac
40+
rm -rf "$_sub"
41+
done
42+
fi
43+
done
44+
unset _dir _sub _name
3145
fi
3246

3347
source .github/scripts/retry-build.sh

CMakeLists.txt

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -734,26 +734,39 @@ if (MFC_PRE_PROCESS)
734734
MPI)
735735
if(CMAKE_Fortran_COMPILER_ID STREQUAL "Cray")
736736
target_compile_options(pre_process PRIVATE -hfp0)
737+
# CCE 19.0.0 IPA ICE: bring_routine_resident SIGSEGV in optcg during
738+
# ipa_processing. Nondeterministic — any file can become the crash site
739+
# via cross-file inlining. Safe to disable IPA for the whole target
740+
# (CPU-only, no GPU device-call requirements). See PR #1286.
741+
target_compile_options(pre_process PRIVATE -Oipa0)
737742
endif()
738743
endif()
739744

740745
if (MFC_SIMULATION)
741746
MFC_SETUP_TARGET(TARGET simulation
742747
SOURCES "${simulation_SRCs}"
743748
MPI FFTW OpenACC OpenMP)
744-
# CCE 19.0.0 IPA workaround: disable interprocedural analysis for files
745-
# that trigger compiler crashes during IPA:
746-
# m_bubbles_EL: castIsValid assertion (InstCombine/foldIntegerTypedPHI)
747-
# m_phase_change: bring_routine_resident SIGSEGV
748-
# Not applied to Cray+OpenMP because thermochem uses !DIR$ INLINEALWAYS,
749-
# which requires IPA to inline device calls. On OpenACC the pyrometheus
750-
# patch emits !$acc routine seq instead (no IPA needed). See PR #1286.
751-
if (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray" AND NOT MFC_OpenMP)
752-
set_source_files_properties(
753-
"${CMAKE_BINARY_DIR}/fypp/simulation/m_bubbles_EL.fpp.f90"
754-
"${CMAKE_BINARY_DIR}/fypp/simulation/m_phase_change.fpp.f90"
755-
PROPERTIES COMPILE_OPTIONS "-Oipa0"
756-
)
749+
# CCE 19.0.0 optcg ICE: IPA inlining triggers two distinct crashes:
750+
# m_bubbles_EL: castIsValid assertion (InstCombine/foldIntegerTypedPHI)
751+
# m_phase_change, m_mpi_common, m_start_up: bring_routine_resident SIGSEGV
752+
# GPU builds: apply -Oipa0 per-file to known crash sites. Whole-target
753+
# -Oipa0 is not safe for GPU builds — it breaks cross-file !$acc routine /
754+
# !DIR$ INLINEALWAYS device-call registration, causing runtime aborts.
755+
# CPU builds: disable IPA for the whole target (safe — no GPU requirements,
756+
# and the crash is nondeterministic so any file can become the crash site).
757+
# See PR #1286.
758+
if (CMAKE_Fortran_COMPILER_ID STREQUAL "Cray")
759+
if (MFC_OpenACC OR MFC_OpenMP)
760+
set_source_files_properties(
761+
"${CMAKE_BINARY_DIR}/fypp/simulation/m_bubbles_EL.fpp.f90"
762+
"${CMAKE_BINARY_DIR}/fypp/simulation/m_phase_change.fpp.f90"
763+
"${CMAKE_BINARY_DIR}/fypp/simulation/m_mpi_common.fpp.f90"
764+
"${CMAKE_BINARY_DIR}/fypp/simulation/m_start_up.fpp.f90"
765+
PROPERTIES COMPILE_OPTIONS "-Oipa0"
766+
)
767+
else()
768+
target_compile_options(simulation PRIVATE -Oipa0)
769+
endif()
757770
endif()
758771
endif()
759772

docs/documentation/case.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,8 +446,8 @@ See @ref equations "Equations" for the mathematical models these parameters cont
446446
| `muscl_order` | Integer | MUSCL order [1,2] |
447447
| `muscl_lim` | Integer | MUSCL Slope Limiter: [1] minmod; [2] monotonized central; [3] Van Albada; [4] Van Leer; [5] SUPERBEE |
448448
| `muscl_eps` | Real | MUSCL limiter slope-product threshold (default: hard-coded thresholds; set to 0 for textbook behavior) |
449+
| `int_comp` | Integer | Interface Compression [0] Off [1] THINC [2] MTHINC (default 0) |
449450
| `flux_lim` | Integer | Flux limiter for post-process: [1] minmod; [2] MUSCL; [3] OSPRE; [4] SUPERBEE |
450-
| `int_comp` | Logical | THINC Interface Compression |
451451
| `ic_eps` | Real | Interface compression threshold (default: 1e-4) |
452452
| `ic_beta` | Real | Interface compression sharpness parameter (default: 1.6) |
453453
| `riemann_solver` | Integer | Riemann solver algorithm: [1] HLL*; [2] HLLC; [3] Exact*; [4] HLLD (only for MHD) |
@@ -547,7 +547,7 @@ It is recommended to set `weno_eps` to $10^{-6}$ for WENO-JS, and to $10^{-40}$
547547
When not set (default), the threshold is 1e-9 for minmod/MC, and 1e-6 for others.
548548
Setting `muscl_eps = 0` gives textbook limiter behavior where limiters activate whenever both slopes have the same sign.
549549

550-
- `int_comp` activates interface compression using THINC used in MUSCL Reconstruction, with control parameters (`ic_eps`, and `ic_beta`).
550+
- `int_comp` activates interface compression using [1] THINC or [2] MTHINC (default off) used in variable reconstruction, with control parameters (`ic_eps`, and `ic_beta`).
551551

552552
- `riemann_solver` specifies the choice of the Riemann solver that is used in simulation by an integer from 1 through 4.
553553
`riemann_solver = 1`, `2`, and `3` correspond to HLL, HLLC, and Exact Riemann solver, respectively (\cite Toro09).

docs/module_categories.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"m_weno",
88
"m_riemann_solvers",
99
"m_muscl",
10-
"m_variables_conversion"
10+
"m_variables_conversion",
11+
"m_thinc"
1112
]
1213
},
1314
{

examples/1D_sodshocktube_muscl/case.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
"recon_type": 2,
3737
"muscl_order": 2,
3838
"muscl_lim": 2,
39-
"int_comp": "T",
4039
"riemann_solver": 2,
4140
"wave_speeds": 1,
4241
"avg_state": 2,

examples/2D_advection_muscl/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"recon_type": 2,
3131
"muscl_order": 2,
3232
"muscl_lim": 2,
33-
"int_comp": "T",
33+
"int_comp": 1,
3434
"null_weights": "F",
3535
"riemann_solver": 2,
3636
"wave_speeds": 1,

examples/2D_riemann_test_muscl/case.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
# "weno_eps": 1e-16,
3535
"muscl_order": 2,
3636
"muscl_lim": 1,
37-
"int_comp": "T",
3837
"riemann_solver": 2,
3938
"wave_speeds": 1,
4039
"avg_state": 2,

examples/2D_shockdroplet_muscl/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
"recon_type": 2,
6060
"muscl_order": 2,
6161
"muscl_lim": 4,
62-
"int_comp": "T",
62+
"int_comp": 1,
6363
"null_weights": "F",
6464
"riemann_solver": 2,
6565
"wave_speeds": 1,

examples/3D_rayleigh_taylor_muscl/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
"recon_type": 2,
5858
"muscl_order": 2,
5959
"muscl_lim": 4,
60-
"int_comp": "T",
60+
"int_comp": 1,
6161
"avg_state": 2,
6262
"riemann_solver": 2,
6363
"wave_speeds": 1,

0 commit comments

Comments
 (0)