[CI probe, do not merge] CCE OpenACC EOS helper diagnostics - #1812
[CI probe, do not merge] CCE OpenACC EOS helper diagnostics#1812sbryngelson wants to merge 18 commits into
Conversation
Any Mie-Gruneisen EOS p = p_ref + rho Gamma_G (e - e_ref) is MFC's rho e = Gamma p + Pi with Gamma = 1/Gamma_G and Pi = rho e_ref - p_ref/Gamma_G, so the existing operators need only the coefficients and dPi/drho. s_eos_coefficients is the single dispatch: the Mie-Gruneisen case supplies a linear-Hugoniot reference curve (u_s = c0 + s u_p, linear release) and one shared conversion produces Gamma, Pi and dPi/drho; a second family is one more case. Stiffened and ideal gas return the constants resolved at init, and no caller invokes the routine yet, so every existing answer is bit-identical - 27-case gate. Parameters mg_rho0, mg_c0, mg_s, mg_G0 follow the flat per-fluid style; the validator requires all four under mie_gruneisen, forbids them otherwise, and forbids qv there because e_ref carries the formation energy. Thirty pytest checks pin the maths against finite differences and a numerically integrated isentrope.
A Mie-Gruneisen fluid has neither gamma, pi_inf nor qv, and an ideal gas has no pi_inf: the validator now refuses them, and the suite's base fluid and every example drop the dead values. The ideal-gas half duplicates MFlowCode#1808 and drops out once it merges.
The mixture loop calls s_eos_coefficients per phase when any fluid's EOS is state dependent; the stiffened-gas arithmetic is untouched (27/27 bit-identical on the gate). The sound speed takes the partial densities as an optional argument and mixes frozen per-phase moduli, with the derivative term applied at that one site. Callers that cannot supply them are refused by the validator: 5-equation, HLL/HLLC/LF only, no bubbles, hypoelasticity, IBM, IGR, relativity, MHD, chemistry, acoustic source, probes, post-process c, characteristic BCs or Wood's law. Validation: symmetric-impact shock speed and plateau density match the Hugoniot to 1.4e-3, and a small pulse travels at the analytic sound speed to 1.9e-4 (the missing derivative term would give 24%).
gamma = gammas(1) and friends were assigned and never read; lit_gamma was assigned in both output routines and read in neither.
…eck passes from worktrees (cherry picked from commit 5ad5c85)
…ristic BCs, probes and post-process c
Isentropic release of a JWL fluid lands on the closed-form isentrope to 7.5e-5 at N = 200 and 9e-7 at N = 800; goldens for JWL beside an ideal gas, Mie-Gruneisen under Wood's law, and Mie-Gruneisen with characteristic walls. The acoustic pulse now comes from a rectangle patch and is tracked by its centroid: an analytic IC is compiled in and every distinct one costs the suite a full rebuild.
One reference-curve routine with a Gruneisen closure Gamma_G = Gamma_0 + a mu, one coefficient conversion, one sound-speed formula and one RK4 stepper for the phasic isentrope and the reference temperature. Adds the temperature T = T_ref + (e - e_ref)/c_v and its T_wrt output, the cubic Hugoniot, the Vinet cold curve, the 6-equation model on the phasic isentrope, and helpers that fetch their own coefficients so no feature reads gammas(i) directly: hypoelasticity, IBM, acoustic sources and the reactive burn open up. The validator refuses initial states outside a state-dependent EOS and keeps qv as the shared formation-energy zero.
Goldens for Vinet, the cubic Hugoniot, MG with hypoelasticity, with IBM, and a MG reactant burning to JWL products; the isentropic release now serves JWL and Vinet and the Hugoniot recovery a quadratic fit. The convergence harness runs a private copy of each case in a temporary directory without rebuilding, so specs that share a case file can run concurrently.
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Pull request overview
Temporary CI probe to help isolate Frontier CCE OpenACC NaNs by (a) adding device/host EOS helper diagnostics at startup and (b) narrowing CI to a small set of targeted cases; it also extends the toolchain/params to recognize additional EOS selector values and related parameters.
Changes:
- Add state-dependent EOS selector values/params (Mie-Gruneisen/JWL/Vinet) to the Python toolchain and add selector/constraint tests.
- Add GPU startup diagnostics that evaluate EOS helpers on device and host and print both for comparison.
- Modify CI workflow/scripts to disable most lanes and run only a small targeted test subset for the probe.
Reviewed changes
Copilot reviewed 185 out of 188 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| toolchain/mfc/test_case_validator.py | Adds constraint tests for new EOS selectors/parameters. |
| toolchain/mfc/test/test_coverage_unit.py | Switches tests to import shared git-env scrub helper from coverage module. |
| toolchain/mfc/test/coverage.py | Scrubs inherited GIT_* env vars for subprocess git calls to avoid hook contamination. |
| toolchain/mfc/test/case.py | Removes ideal-gas pi_inf default from base case params. |
| toolchain/mfc/params_tests/test_eos_selector.py | Updates ideal-gas behavior to reject/ignore stiffness parameter. |
| toolchain/mfc/params/descriptions.py | Documents new T_wrt output option. |
| toolchain/mfc/params/definitions.py | Registers T_wrt, expands EOS selector mappings, and registers MG/JWL/Vinet parameters. |
| toolchain/mfc/eos.py | Adds Python reference implementations for MG/JWL/Vinet curves and related helpers (tests/validation). |
| tests/ED75D01D/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/A6846AD4/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/A421E318/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/7853BD45/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/6AE3FB4E/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/61AF4509/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/6191C8D0/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/5AC2F65D/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/590E4427/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/4A0CDF9C/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/471270BB/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| tests/120043F6/golden-metadata.txt | Adds/updates golden metadata for targeted probe runs. |
| src/simulation/m_time_steppers.fpp | Threads alpha_rho through cell-state and sound-speed computation (state-dependent EOS support). |
| src/simulation/m_start_up.fpp | Adds startup GPU/host EOS helper probe + updates internal-energy call signature. |
| src/simulation/m_sim_helpers.fpp | Extends s_compute_cell_state to return alpha_rho rather than a local scratch. |
| src/simulation/m_riemann_solver_lf.fpp | Passes alpha_rho into sound-speed routine. |
| src/simulation/m_riemann_solver_hypo_hlld.fpp | Uses per-phase bulk modulus helper for alt sound speed path. |
| src/simulation/m_riemann_solver_hllc.fpp | Passes alpha_rho into sound-speed routines and switches to phasic isentrope/internal-energy helpers. |
| src/simulation/m_riemann_solver_hll.fpp | Passes alpha_rho into sound-speed routine(s). |
| src/simulation/m_rhs.fpp | Switches bulk modulus computation to phasic bulk modulus helper. |
| src/simulation/m_reactive_burn.fpp | Uses f_phase_temperature instead of stiffened-gas-only thermal relation. |
| src/simulation/m_pressure_relaxation.fpp | Adds state-dependent EOS path via s_phase_density_on_isentrope and updates internal-energy call signature. |
| src/simulation/m_ibm.fpp | Updates internal-energy call signature to EOS-index-based API. |
| src/simulation/m_hypoelastic.fpp | Uses phasic bulk modulus helper for 2-material K computation. |
| src/simulation/m_global_parameters.fpp | Initializes newly-added EOS parameter fields in fluid_pp. |
| src/simulation/m_data_output.fpp | Threads alpha_rho through sound-speed computations and removes unused locals. |
| src/simulation/m_cbc.fpp | Passes alpha_rho into sound-speed and mixture-coefficient time-derivative routines. |
| src/simulation/m_acoustic_src.fpp | Inlines state-dependent per-phase modulus mixing to avoid OpenACC issue. |
| src/pre_process/m_global_parameters.fpp | Initializes newly-added EOS parameter fields in fluid_pp (pre-process). |
| src/pre_process/m_data_output.fpp | Removes unused lit_gamma plumbing. |
| src/post_process/m_start_up.fpp | Threads alpha_rho into sound-speed computation and adds T_wrt temperature output. |
| src/post_process/m_global_parameters.fpp | Initializes new EOS fields and defaults T_wrt to false. |
| src/post_process/m_derived_variables.fpp | Removes old s_derive_sound_speed implementation (sound speed handled elsewhere now). |
| src/post_process/m_data_output.fpp | Updates internal-energy and sound-speed calls to EOS-index-based API. |
| src/common/m_global_parameters_common.fpp | Adds device-resident arrays for EOS selector and reference-curve parameters. |
| src/common/m_derived_types.fpp | Extends physical_parameters with MG/JWL/Vinet parameter fields. |
| src/common/m_constants.fpp | Adds EOS selector constants and RK4/ODE constants for state-dependent EOS helpers. |
| examples/3D_turb_mixing/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_sphbubcollapse/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_rotating_sphere/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_recovering_sphere/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_rayleigh_taylor_muscl/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_rayleigh_taylor/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_performance_test/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_patch_spherical_harmonic/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_moving_lag_particles/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_mibm_sphere_head_on_collision/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_mibm_periodic_collision/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_lagrange_shbubcollapse/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_lagrange_bubblescreen/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_icpp_stl_cube/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_ibm_stl_test/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_ibm_stl_pyramid/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_ibm_stl_ellipsoid/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_ibm_bowshock/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_brio_wu/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_advection_convergence/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_TaylorGreenVortex_analytical/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_TaylorGreenVortex/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_IGR_jet_1fluid/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_IGR_jet/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_IGR_TaylorGreenVortex_nvidia/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_IGR_TaylorGreenVortex/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/3D_IGR_33jet/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_zero_circ_vortex_analytical/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_zero_circ_vortex/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_viscous_shock_tube/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_tumbling_rectangle/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_triple_point/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_synthetic_turbulence/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_shockdroplet_muscl/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_shockdroplet/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_shockbubble/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_shock_cloud_rmhd/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_riemann_test_muscl/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_riemann_test/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_richtmyer_meshkov/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_rayleigh_taylor/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_poiseuille_thickening_nn/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_poiseuille_nn/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_patch_modal_shape_exp/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_patch_modal_shape/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_orszag_tang_hyper_cleaning/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_orszag_tang/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_moving_lag_bubs/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_mibm_shock_cylinder/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_mibm_particle_cloud/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_mibm_cylinder_in_cross_flow/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_mhd_rotor/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_mhd_magnetic_vortex/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_lid_driven_cavity_nn/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_lid_driven_cavity/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_laplace_pressure_jump/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_lagrange_rising_bubble/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_lagrange_in_crossflow/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_lagrange_bubblescreen/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_kelvin_helmholtz/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_jet/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_isentropicvortex_analytical/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_isentropicvortex/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_icpp_stl_circle/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_viscous_drag_over_cylinder/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_stl_wedge/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_stl_test/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_stl_MFCCharacter/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_poiseuille_nn/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_multiphase/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_ellipse/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_cfl_dt/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm_airfoil/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_ibm/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_hypo_shear_contact/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_herschel_bulkley_poiseuille_nn/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_hardcoded_ic/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_forward_facing_step/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_bingham_poiseuille_nn/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_backward_facing_step/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_axisym_shockbubble/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_advection_muscl/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_advection_convergence/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_advection/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_acoustic_pulse_analytical/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_acoustic_pulse/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_acoustic_broadband/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_TaylorGreenVortex/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_IGR_triple_point/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_IGR_2fluid/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/2D_GreshoVortex/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_vacuum_restart/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_vacuum/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_titarevtorro_analytical/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_titarevtorro/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_sodshocktube_muscl/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_sodshocktube/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_sod_convergence/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_shuosher_wenoz5/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_shuosher_wenom5/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_shuosher_wenojs5/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_shuosher_teno7/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_shuosher_teno5/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_shuosher_old/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_shuosher_analytical/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_mhd_smooth_alfven_wave/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_laxshocktube/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_kapilashocktube/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_hypo_2materials/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_euler_convergence/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_dai_woodward_hlld/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_dai_woodward/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_convergence/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_brio_wu_rmhd/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_brio_wu_hlld/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_brio_wu/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_advection_convergence/case.py | Removes ideal-gas pi_inf from example inputs. |
| examples/1D_mg_impact/case.py | Adds a new MG impact validation case generator. |
| examples/1D_mg_acoustic/case.py | Adds a new MG acoustic-pulse validation case generator. |
| examples/1D_isentropic_release/case.py | Adds a new JWL/Vinet isentropic-release validation case generator. |
| docs/documentation/contributing.md | Updates contributor docs for EOS helper inventory. |
| docs/documentation/case.md | Documents T_wrt output option in case configuration docs. |
| .github/workflows/test.yml | Disables most CI jobs and narrows the self-hosted matrix for the probe. |
| .github/workflows/common/test.sh | Runs only a fixed small subset of tests on pull requests. |
| .github/scripts/check_coverage_map_health.py | Switches git calls to shared _git helper. |
| .claude/rules/common-pitfalls.md | Adds a note about a CCE OpenACC GPU_ROUTINE argument pitfall (context for #1811). |
Suppressed comments (3)
toolchain/mfc/test_case_validator.py:1
- The new test classes are defined after the
unittest.main()call. If this module is executed directly (e.g.,python test_case_validator.py),unittest.main()runs before these classes exist, so they won't be discovered/executed. Move theif __name__ == \"__main__\": unittest.main()block to the end of the file (after all test class definitions), or remove the direct-execution entrypoint if it's not intended to be used.
src/simulation/m_start_up.fpp:1 - The probe allocates device memory, launches a GPU kernel, performs a device→host update, and prints at startup unconditionally. Even if intended as temporary, this is user-visible output and adds runtime overhead to all runs (including non-CI). Consider guarding this behind a dedicated runtime option (e.g.,
eos_probe = T), a compile-time probe flag, or an environment variable check so the diagnostics can be enabled only when needed.
toolchain/mfc/test/coverage.py:1 - Scrubbing all
GIT_*environment variables globally for every git subprocess is broader than the documented motivating issue (GIT_DIR,GIT_INDEX_FILE). If any callers rely on otherGIT_*variables (e.g.,GIT_SSH_COMMAND), this could cause surprising behavior. A narrower scrub (explicitly dropping onlyGIT_DIR/GIT_INDEX_FILE/GIT_WORK_TREE) or an opt-in parameter on_git(e.g.,scrub_git_env=True) would preserve the hook fix while reducing unintended side effects.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| if [ "${GITHUB_EVENT_NAME:-}" = "pull_request" ]; then | ||
| select_opts="--select-enforce" | ||
| select_opts="--only 9DAC4DDC 2F35A1FE A421E318 5AC2F65D 29C5D458 34F3999B 3A8359F6" | ||
| fi |
| needs.lint-gate.result == 'success' && | ||
| needs.file-changes.result == 'success' && | ||
| needs.file-changes.outputs.checkall == 'true' | ||
| if: false |
| case-optimization: | ||
| name: "Case Opt | ${{ matrix.cluster_name }} (${{ matrix.device }}-${{ matrix.interface }})" | ||
| if: github.repository == 'MFlowCode/MFC' && needs.file-changes.outputs.checkall == 'true' && github.event.pull_request.draft != true | ||
| if: false |
|
Claude Code Review Head SHA: 6269824 Files changed:
Findings:
|
…NaN-safe harness, coverage for the temperature, IBM and cubic paths; EOS helpers as subroutines
5c0069f to
2829c41
Compare
1c7b22f to
d7c2127
Compare
Lines of Code
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #1812 +/- ##
==========================================
+ Coverage 62.26% 62.70% +0.44%
==========================================
Files 84 84
Lines 21558 21847 +289
Branches 3188 3199 +11
==========================================
+ Hits 13423 13700 +277
- Misses 5937 5938 +1
- Partials 2198 2209 +11 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Closing: this probe has served its purpose. It answered two questions that the full suite could not, because both needed one Frontier lane running one test repeatedly. Cray OpenACC. Three cycles narrowed the NaNs in the EOS helpers to an array element passed by reference into a device routine containing a loop. Recorded in #1815 and reproduced minimally in sbryngelson/compiler-bugs. Cray OpenMP. Repointed at the reacting Roe HLLC shocktube, three passes of one binary gave three different answers: That is a data race, not compiler noise. The cause was No code from this branch is intended for merge. |
Temporary probe for the Frontier CCE OpenACC NaNs seen on #1811. Runs one lane on seven targeted tests and prints each EOS helper evaluated on the device next to its host value at startup. Will be closed once the failing construct is identified.