PERF-2 P2-c: RTX_FSI2O_INNER_STOP knob — the background Poisson's inner stop as a multiple of the Schwarz tolerance (default 0.1; the band-gated ladder on the CG iteration count)
CI / Build (macos-latest) (push) Waiting to run
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 / Test (macos-latest) (push) Blocked by required conditions
CI / Test (ubuntu-latest) (push) Blocked by required conditions
Performance Benchmarks / Run Benchmarks (push) Failing after 6s
CI / Clippy Check (push) Failing after 7s
CI / Build CPU-Only (Explicit) (push) Failing after 7s
CI / Format Check (push) Failing after 7s
Documentation / Build User Guide (push) Successful in 6s
Documentation / Build API Documentation (push) Failing after 19s
CI / Build (ubuntu-latest) (push) Failing after 1m16s

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-16 00:50:52 -05:00
co-authored by Claude Fable 5.1
parent 822041fb3f
commit 8c130c55c8
2 changed files with 20 additions and 0 deletions
@@ -329,6 +329,14 @@ impl OversetPisoSolver {
}) })
} }
/// PERF-2 P2-c: the background pressure solve's inner stop as a
/// multiple of the Schwarz tolerance (the constructor's 0.1; a knob for
/// the band-gated ladder — an accuracy change, never bit-identical).
pub fn set_inner_stop_multiplier(&mut self, multiplier: f64) {
self.background
.set_inner_stop_factor(multiplier * self.params.schwarz_tolerance);
}
/// PERF-2 P2: threads for the background multigrid's red-black maps. /// PERF-2 P2: threads for the background multigrid's red-black maps.
pub fn set_poisson_threads(&mut self, threads: usize) { pub fn set_poisson_threads(&mut self, threads: usize) {
self.background.set_poisson_threads(threads); self.background.set_poisson_threads(threads);
@@ -451,6 +451,18 @@ impl OversetFluid {
..OversetParameters::default() ..OversetParameters::default()
}; };
let mut solver = OversetPisoSolver::new(background, patch, (nx, ny, h, h), params)?; let mut solver = OversetPisoSolver::new(background, patch, (nx, ny, h, h), params)?;
// PERF-2 P2-c: `RTX_FSI2O_INNER_STOP=m` — the background Poisson's inner
// stop at m × the Schwarz tolerance (default 0.1; band-gated ladder).
let mut solver = solver;
if let Some(m) = std::env::var("RTX_FSI2O_INNER_STOP")
.ok()
.and_then(|v| v.parse::<f64>().ok())
{
solver.set_inner_stop_multiplier(m);
println!(
" background Poisson inner stop: {m} × the Schwarz tolerance (RTX_FSI2O_INNER_STOP; default 0.1)"
);
}
let mut field = OversetField { let mut field = OversetField {
background: FlowField::new(nx, ny, h, h)?, background: FlowField::new(nx, ny, h, h)?,
patch: patch_field, patch: patch_field,