From 10cea29e8eb2a2b235196b59bffb1cf13f9ea850 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 30 Oct 2026 10:44:38 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20D=C3=BCtsch=20protocol=20=E2=80=94=20fo?= =?UTF-8?q?ld=20the=20closed=20domain=20order,=20settling=20rule,=20window?= =?UTF-8?q?=20and=20criteria?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/validation/duetsch_re100_kc5_protocol.md | 126 ++++++++++-------- 1 file changed, 70 insertions(+), 56 deletions(-) diff --git a/docs/validation/duetsch_re100_kc5_protocol.md b/docs/validation/duetsch_re100_kc5_protocol.md index dcdf62e..b7807a8 100644 --- a/docs/validation/duetsch_re100_kc5_protocol.md +++ b/docs/validation/duetsch_re100_kc5_protocol.md @@ -71,17 +71,24 @@ fixed before any benchmark result; it is not a paper uncertainty. ## 3. Domain and boundaries (finite-domain reproduction), ENGINEERING -- Boundary family (runner owner confirms the zero-velocity inlet is supported - as configured before any run): the native dense channel only — zero-velocity inlet, - pressure-NEQ outlet, y walls (bounce-back). This is a finite-domain - approximation of the paper's 120 D O-grid, NOT infinite still fluid. The G4 - periodic/slip overrides are a different family and are not substituted. -- Sensitivity order (each step at D = 40 before the ladder is run): - 1. box 24 D × 24 D vs 48 D × 48 D (cylinder mean position at the centre); - 2. the larger box is accepted if section 6 domain criteria pass between the - two; otherwise 96 D is tried once (memory/runtime measured first); if that - still fails, the domain verdict is FAIL and is reported. -- The ladder (D = 20 / 80) uses the accepted box size in units of D. +The paper's 120 D O-grid is not reproduced; our rectangular box is a +reproduction choice. The native dense channel (zero-velocity inlet, +pressure-NEQ outlet, bounce-back y walls) is a finite-domain approximation, +not infinite still fluid. The G4 x-periodic / y-slip override is a separately +labelled sensitivity family and never mixed into the primary ladder. The +runner owner confirms the zero-velocity inlet is supported as configured +before any run. + +Order (closed): +1. Smoke + ledger at D = 40, native BC, 40 D × 40 D (finite box). +2. Domain sensitivity before any literature statement: same BC, D = 40, + L ∈ {20 D, 40 D, 60 D}; record the change in Fx waveform, c_d, c_i and the + scored profiles. +3. Optional labelled BC sensitivity: one x-periodic / y-slip case at D = 40, + 40 D; reported as a delta against native only. +4. Only after step 2 passes: the D = 20 / 40 / 80 ladder on the chosen BC and + domain (default 40 D if, against 60 D, `RMS(dFx)/F_ref` and |dc_d|, |dc_i| + stay inside the section 6 bands). - Memory/runtime: measured by a smoke run before each new size; measurements inform scheduling only, never tolerances. @@ -91,68 +98,75 @@ fixed before any benchmark result; it is not a paper uncertainty. CME + Wen and CME + cover − uncover reported separately; crossings, eq_only, no_donor (no_donor must stay 0). - Velocity u1, u2 on lab-fixed lines x/D = -.6, 0, .6, 1.2 (relative to the - mean cylinder position) versus x2, at every step of the scored phases. + mean cylinder position) versus x2, at the scored phases. Lab frame + throughout; if any body-frame intermediate is used, position and velocity + are both transformed. - Interpolation: bilinear on cell centres using only cells that are fluid at that step (flags read back via `get_flags()`); weights renormalized over the fluid corners; a sample with no fluid corner, or inside the circle at that - step, is MISSING and logged, never set to zero. One-degree bins carry only - valid samples. + step, is MISSING and logged, never set to zero. One-degree bins keep valid + fluid weights. The numerical average need not mimic the 200 LDA samples. -## 5. Periodic-regime gate (every case, before any statistic) +## 5. Periodic-regime gate (every case, before any statistic), ENGINEERING -Ledger rows, same schema for every case: +Ledger rows, same schema for every case: dx, dt (in D and T units); U_max, nu, +Re, KC (lattice and nondimensional); T (native steps, nondimensional); +duration (native steps, s/T, paper cycles); discard; accepted window; cycle +ledger; verdict PASS or FAIL-CLOSED. -| field | content | -|---|---| -| dx, dt | in D and in T units | -| U_max, nu, Re, KC | lattice and nondimensional | -| T | native steps and nondimensional time | -| duration | native steps, s/T, number of paper cycles | -| discard | cycle 0 plus all cycles before the accepted window | -| window | the common accepted window (below) | -| cycle ledger | per cycle k: phase-aligned waveform change and profile change (below) | -| verdict | PASS or FAIL-CLOSED | +Scales: `F_ref = 0.5 rho U_max² D`, `U_ref = U_max`; never a near-zero mean +force as denominator. -- Settling metric, ENGINEERING, fixed scales (no near-zero denominators): - - force: `max over phase of |F_k(phi) - F_{k-1}(phi)| / (0.5 rho U_max² D)` - on the per-step CME waveform aligned by step index within the cycle; - - profiles: `max over scored stations/phases/points of |u_k - u_{k-1}| / U_max`. -- Rule: K_case = the smallest cycle k ≥ 4 for which both metrics are ≤ .005 - for the N = 3 consecutive pairs (k-3→k-2), (k-2→k-1), (k-1→k). -- Cap: 30 paper cycles per case; not settled by the cap → FAIL-CLOSED. -- Common window: K = max over all compared cases of K_case; every case is run - to cycle K + 2 and scored on cycles K, K + 1, K + 2 (same indices). -- FAIL-CLOSED also if any case covers fewer paper cycles than K + 2, if windows - differ, or if the ledger is missing. +- Settling metrics, cycle k−1 → k, phase-aligned by step within the cycle: + - waveform `RMS(dFx) / F_ref ≤ .02`; + - `|d mean|`, `|d RMS|`, `|d peak|` of Fx, each `/ F_ref ≤ .01`; + - scored profiles (fluid-only) `|du| / U_max`, `|dv| / U_max ≤ .03` at the + three phases × four stations; + - Morison `|dc_d| ≤ .02`, `|dc_i| ≤ .02`. +- Rule: all metrics for N = 3 consecutive whole paper cycles → settled. +- Discard: the initial quarter cycle plus the first 2 full paper cycles + (s/T < 2.25). Settling is searched from cycle 3; cap 12 periods from s = 0; + unsettled → FAIL-CLOSED (no literature, cross-resolution or VIV statistic). +- Common window: K = the largest first-settled cycle index over all compared + cases; every case is scored on the same 3 cycles K .. K + 2 and must reach + them within the cap (proportionally more native steps on finer grids), or + the comparison is FAIL-CLOSED. - The earlier G4 timing check (100 coarse vs 400 diffusive-fine steps) was a matched short transient, not periodic evidence. ## 6. Metrics and per-observable criteria (ENGINEERING, not paper uncertainty) +Three criteria stay separate; the G4 same-grid 2% target is not reused. + - Morison fit: least squares of the normalized per-step force over the - accepted window against the two basis functions above, each averaged over - its single step interval, fixed paper phase, no free phase shift; outputs - c_d and added-mass c_i per force candidate. -- Criteria: - - cross-resolution: for each observable, the D20→D40→D80 differences to - D80 must decrease; force waveform: normalized RMS difference D40 vs D80 - ≤ .02 (scale `0.5 rho U_max² D`); profiles: RMS D40 vs D80 ≤ .02 U_max; - - domain (section 3): same two norms ≤ .01 between the two box sizes; - - against Table 1 (computed reference): |c_d - 2.09| ≤ .06 and - |c_i - 1.45| ≤ .04 at D = 80 (our engineering bands; the table's own - 96→384 change is reported alongside, not used as an error bar); - - against Fig. 8 LDA: QUALITATIVE ONLY. The original figure could not be - accessed or rendered (TRON 2026-10-30); no digitized ordinates and no - measurement uncertainty exist. No quantitative profile pass is claimed. - A quantitative criterion may be declared only after an accessible original - figure or data set and a documented digitization (figure, tool, - uncertainty) exist, and before that comparison is run. + accepted window against the two basis functions, each averaged over its + single step interval, fixed paper phase, no free phase shift; c_d and + added-mass c_i per force candidate. +- Cross-resolution: every scored observable's error against its reference must + decrease monotonically D20 → D40 → D80 (necessary, not sufficient). +- Against Table 1 (computed fit, not measured force): at D ≥ 40, + `|c_d - 2.09| ≤ .15` and `|c_i - 1.45| ≤ .15`, and monotone. +- Force waveform against its own Morison reconstruction: residual reported + only, no pass/fail (the paper reports fit error above its coarse numerical + error and gives no percentage). +- Fig. 8 LDA profiles: QUALITATIVE ONLY. The original figure could not be + accessed or rendered; no digitized ordinates and no measurement uncertainty + exist. After a digitization with figure number, tool and uncertainty note: + `RMS(|du|, |dv|) / U_max ≤ .15` at D ≥ 40 and monotone; LDA error stays + UNQUANTIFIED and is stated with every comparison. +- Fy sanity (not literature): `|mean Fy| / F_ref ≤ .05` in the accepted window. - No force candidate is selected for an RHS by these results; each is reported. +Superseded (earlier drafts): the velocity-jump start, guessed stations and +phases, "C_M" for c_i, and the uncertainty wording; cycles 4–6, the 30-cycle +cap and the earlier tolerance numbers. + ## 7. Order and scope -Protocol review → lean test driver (no production change; reuses the -existing Simulation API) → smoke (memory/runtime) → domain sensitivity → +Protocol review → one-shot Dütsch driver (analytic `set_body` + `run(1)`, +cycle ledger, lab-fixed fluid-only station sampler, two-basis Morison fit; no +reusable runner until the first smoke shows shared helpers pay off; no +production change) → smoke (memory/runtime) → domain sensitivity → ladder → physical-validation verdict → only then single-cylinder VIV. No AMR, no pinball, no manuscript work.