c2451fbacf933cd53343ab98d49ca0dc71ddaf73
1
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
d8a30db155 |
rtx-cfd: Ghia Re=400 as a quantitative claim — and the stopping-tolerance trap
CI / Clippy Check (push) Canceled after 0s
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
CI / Python Bindings (maturin) (macos-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
Performance Benchmarks / Run Benchmarks (push) Canceled after 0s
CI / Format Check (push) Canceled after 0s
The Re=400 lid-driven cavity, 128^2 TVD on an exactly-unit domain, sampled
on the staggered faces that lie exactly on the centrelines, against Ghia,
Ghia & Shin (1982) — reference values sourced from two independent
transcriptions that agree digit for digit (Mramor/Vertnik/Sarler CMC 2013
Table 1, and the ivan-pi benchmark collection):
u_min -0.32667 at y = 0.2852 (Ghia: -0.32726 at 0.2813 — 0.18%)
v_min -0.45024 at x = 0.8633 (Ghia: -0.44993 at 0.8594 — 0.07%)
v_max 0.30044 at x = 0.2305 (Ghia: 0.30203 at 0.2266 — 0.53%)
max |u - Ghia| over 15 profile stations: 0.0051
Ghia's own values carry ~0.3% discretisation error (Sahin & Owens 2003 put
u_min at -0.32838), so this is at the reference's own accuracy.
The finding worth the commit message: the first run used the Re=100 test's
residual tolerance of 1e-4 and read u_min = -0.31987 — "converged", 2.3%
shy — and refining to 192^2 made it WORSE (-0.30879, profile deviation
doubled from 0.034 to 0.074). The residual had dropped below tolerance
while the field was still developing, and the effect grows with mesh size
because SIMPLE's per-iteration contraction weakens as h -> 0: at fixed
residual tolerance the finer mesh stops at an EARLIER stage of convergence.
Tightening the stop (3e-5, then 1.5e-5, until the movement per halving fell
below the reference's own error) was the fix, and the test's bands are set
so the premature-stop state fails all of them. "The residual converged"
must never stand in for "the answer stopped moving".
Co-Authored-By: Claude Fable 5 <[email protected]>
|