diff --git a/crates/specialized/rtx-fsi/tests/fsi2_harness/overset_march.rs b/crates/specialized/rtx-fsi/tests/fsi2_harness/overset_march.rs index 7c19f38..24602a8 100644 --- a/crates/specialized/rtx-fsi/tests/fsi2_harness/overset_march.rs +++ b/crates/specialized/rtx-fsi/tests/fsi2_harness/overset_march.rs @@ -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 (Robin–Neumann). + Subiterated::relaxed(cfg.initial_relaxation, cfg.max_subiterations, tol_step) + .unwrap() + .solve(&d_predicted, pass) } else { Subiterated::aitken(cfg.max_subiterations, tol_step) .unwrap()