test(rtx-fsi): RTX_FSI{2,3}_ES stiffness override for the TWIN-2 parameter sweep
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
CI / Clippy Check (push) Canceled after 0s
CI / Build (macos-latest) (push) Canceled after 0s
CI / Build (ubuntu-latest) (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s
Documentation / Build API Documentation (push) Canceled after 0s
Documentation / Build User Guide (push) Canceled after 0s
CI / Test (macos-latest) (push) Canceled after 0s
CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Build CPU-Only (Explicit) (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s

The second knob of the TWIN-2 campaign (omni-cortex
docs/twin2_stiffness_campaign.md): case_from_env now also reads
RTX_{prefix}_ES over the case's benchmark Young's modulus, mirroring
UMEAN exactly — digit-identical with the knob unset (verified in vivo
on BOTH committed defaults against same-day baselines: FSI2 and FSI3
physics lines diff-clean, only compile/wall timings moved), a loud
override line naming the benchmark value and E/E0 when set. The
benchmark-inflow physics-band guard in both turek_hron tests widens to
a benchmark-CASE guard (u_mean AND e_s bit-identical) so no measured
band ever asserts off-benchmark; machinery invariants stay asserted at
every inflow and stiffness.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01X2GmJXeQ2njUecEKiJZ1G2
This commit is contained in:
Omar Sobh
2026-09-01 20:50:58 -07:00
co-authored by Claude Fable 5
parent c08abbdc4f
commit 045e145962
3 changed files with 37 additions and 18 deletions
@@ -251,16 +251,18 @@ fn fsi2_flapping_flag() {
// 2.23 Hz. If a change moves any of these numbers, that is a finding
// either way and must be loud. Smoothing changes the load path and
// is pinned nowhere (measured to change nothing that matters).
// Every physics band below was measured at the BENCHMARK inflow; an
// overridden u_mean (the TWIN-1 sweep) pins nothing here — its bands
// live in the campaign's composition harness. The machinery
// invariants above stay asserted at every inflow.
let benchmark_inflow = case.u_mean.to_bits() == FSI2.u_mean.to_bits();
let default_coupling = benchmark_inflow && smooth_in_h == 0.0 && config.coupler == "aitken";
// Every physics band below was measured at the BENCHMARK case; an
// overridden u_mean (the TWIN-1 sweep) or e_s (the TWIN-2 sweep)
// pins nothing here — those bands live in the campaigns' composition
// harnesses. The machinery invariants above stay asserted at every
// inflow and stiffness.
let benchmark_case = case.u_mean.to_bits() == FSI2.u_mean.to_bits()
&& case.e_s.to_bits() == FSI2.e_s.to_bits();
let default_coupling = benchmark_case && smooth_in_h == 0.0 && config.coupler == "aitken";
let mode2_coupling =
benchmark_inflow && smooth_in_h == 0.0 && config.coupler == "iqn" && subcycle == 2;
benchmark_case && smooth_in_h == 0.0 && config.coupler == "iqn" && subcycle == 2;
let s1_coupling =
benchmark_inflow && smooth_in_h == 0.0 && config.coupler == "iqn" && subcycle == 1;
benchmark_case && smooth_in_h == 0.0 && config.coupler == "iqn" && subcycle == 1;
if default_coupling
&& ny == 62
&& flag_nx == 35