P5-1: RTX_FSI2O_NEWMARK_GAMMA — Newmark dissipation on the flag (β = (γ + ½)²/4); at γ = 0.9 the s = 1 overset march holds 0.3 s from the cached state (789 steps, 1.8 passes, no death) with the physical onset, where γ = ½ ran away in 90 steps: the flag's thickness breathing, resolved at s = 1 and felt by the body-fitted wall, damped at the source
CI / Build (macos-latest) (push) Canceled after 0s
CI / Build (ubuntu-latest) (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
Documentation / Build API Documentation (push) Canceled after 0s
Documentation / Build User Guide (push) Canceled after 0s
CI / Distributed Training Tests (push) Canceled after 0s
CI / Python Bindings (maturin) (macos-latest) (push) Canceled after 0s
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
CI / Clippy Check (push) Canceled after 0s
CI / Python Bindings (maturin) (ubuntu-latest) (push) Canceled after 0s
CI / WASM Build + Size Check (push) Canceled after 0s
CI / CI Success (push) Canceled after 0s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_0116sg1Qz1gMv9hdcKP1XUam
This commit is contained in:
Omar Sobh
2026-09-07 08:45:45 -07:00
co-authored by Claude Fable 5.1
parent 565215baf9
commit 62f1d4bf9b
@@ -149,6 +149,21 @@ pub fn run_march_overset(case: BenchmarkCase, config: &OversetMarchConfig) -> Ov
max_iterations: 60,
..ConvergenceCriteria::default()
});
// `RTX_FSI2O_NEWMARK_GAMMA=γ` (β = (γ + ½)²/4): numerical dissipation
// of the flag's high-frequency modes (the thickness breathing the
// body-fitted wall couples to at s = 1); the benchmark's average
// acceleration (γ = ½) has none.
let analysis = match std::env::var("RTX_FSI2O_NEWMARK_GAMMA")
.ok()
.and_then(|v| v.parse::<f64>().ok())
{
Some(g) => {
let b = (g + 0.5).powi(2) / 4.0;
println!(" Newmark γ = {g}, β = {b:.4}");
analysis.with_newmark_parameters(g, b)
}
None => analysis,
};
let flag = RefCell::new(analysis.stepper().unwrap());
let wetted_dofs: Vec<[usize; 2]> = fluid
.interface