rtx-fsi harness: 'fixed' coupler (constant relaxation OMEGA0) for the P6-c Robin–Neumann test — at ω = 1 the candidate is the FEA's own output, so the Robin wall's previous-pass datum is the structure's traction at the candidate; design 2's FSI3 divergence is the datum's inconsistency under IQN's ω0 = 0.05
CI / Build (macos-latest) (push) Waiting to run
CI / Test (macos-latest) (push) Blocked by required conditions
CI / Test (ubuntu-latest) (push) Blocked by required conditions
CI / Python Bindings (maturin) (macos-latest) (push) Blocked by required conditions
CI / Python Bindings (maturin) (ubuntu-latest) (push) Blocked by required conditions
CI / WASM Build + Size Check (push) Blocked by required conditions
CI / Distributed Training Tests (push) Blocked by required conditions
CI / CI Success (push) Blocked by required conditions
CI / Build CPU-Only (Explicit) (push) Failing after 4s
Documentation / Build API Documentation (push) Failing after 4s
Documentation / Build User Guide (push) Successful in 5s
CI / Format Check (push) Failing after 10s
CI / Clippy Check (push) Failing after 1m13s
CI / Build (ubuntu-latest) (push) Failing after 5m2s
Performance Benchmarks / Run Benchmarks (push) Successful in 5m19s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YJPeT6WA2e7YvAnS875AHL
This commit is contained in:
Omar Sobh
2026-09-15 19:22:36 -05:00
co-authored by Claude Fable 5.1
parent 96a7f1c700
commit 2d2fed7181
@@ -471,6 +471,15 @@ pub fn run_march_overset(case: BenchmarkCase, config: &OversetMarchConfig) -> Ov
let mut outcome = if let Some(iqn) = iqn.as_mut() {
iqn.set_tolerance(tol_step).unwrap();
iqn.solve(&d_predicted, pass)
} else if cfg.coupler == "fixed" {
// P6-c (`docs/overset_metal_campaign.md` §5.19): the constant
// relaxation `OMEGA0` — at 1.0 the plain staggered loop, the
// only one whose candidate is the FEA's own output, so the
// Robin wall's datum (the previous pass's tractions) IS the
// structure's traction at the candidate (RobinNeumann).
Subiterated::relaxed(cfg.initial_relaxation, cfg.max_subiterations, tol_step)
.unwrap()
.solve(&d_predicted, pass)
} else {
Subiterated::aitken(cfg.max_subiterations, tol_step)
.unwrap()