docs: Dütsch protocol — consolidate verified source facts and close protocol choices

Source facts with page provenance (motion, quarter-cycle start, stations,
Morison c_d/added-mass c_i definition, Table 1 as computed reference, no
recovered uncertainty); lab-frame kinematics with base at the right turning
point, interval-average wall velocity and force attribution, explicit cycle
indexing; T multiple of 360 steps; native-channel domain sensitivity order;
fluid-only interpolation; periodic gate with fixed-scale waveform/profile
settling, N=3, cap 30, common window; engineering criteria labelled as such.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-10-30 10:43:10 +00:00
co-authored by Claude Opus 5.5
parent f68f5264b2
commit ee6e68bbfd
+134 -97
View File
@@ -1,119 +1,156 @@
# Prescribed in-line oscillation: Dütsch Re 100 / KC 5 — PROTOCOL DRAFT (not frozen) # Prescribed in-line oscillation: Dütsch Re 100 / KC 5 — PROTOCOL (review draft)
Production under test: `claude/moving-bodies-s3a` at `653fd997` (unchanged). Production under test: `claude/moving-bodies-s3a` at `653fd997` (unchanged).
Primary source: Dütsch, Durst, Becker & Lienhart, J. Fluid Mech. 360, 249–271 Primary source: Dütsch, Durst, Becker & Lienhart, J. Fluid Mech. 360, 249–271
(1998), doi:10.1017/S002211209800860X. Items marked ⟨verify⟩ must be taken from (1998), doi:10.1017/S002211209800860X. Source facts below were verified from
the paper itself before freezing; nothing here is read from plots. All numbers the paper (Slack C0C78UFKGRM/1793335557.460509, TRON 1793356317–1793356724,
marked PROVISIONAL (ladder, window, domain, boundaries) are my choices and stay page numbers given). Everything marked ENGINEERING is our a-priori choice,
non-normative until the primary-spec packet and Astra's feasibility check land. fixed before any benchmark result; it is not a paper uncertainty.
## Criteria (kept separate) ## 0. Source facts (with provenance)
- Same-grid frame consistency (G4, frozen 2%): already evaluated; not reused here. - Motion (p.251): `x_c = -A sin(2 pi f t)`; paper phase phi = 0 is the mean
- Cross-resolution criterion: every reported observable's error against the position moving left at `-U_max`. KC = 5 gives `A/D = 5/(2 pi) = .7957747`.
reference, and the fine-pair difference, must decrease monotonically over the - Start (p.254): the computation starts a quarter cycle before phi = 0, at
resolution ladder. No numeric grid threshold and no order label is added. `x = +A` with zero velocity (phi = -90°).
- Reference agreement: only against values with provenance (section 6), with an - Experiment (pp.252, 254–256): D = 10 mm, L = .65 m, tank 1.2 × .7 × .7 m,
observable-specific error/uncertainty criterion declared per observable rho = 998.2 kg/m³, mu = 1.00818 mPa·s, Re = 100, KC = 5; LDA with 1° phase
before runs (OPEN). Monotone decrease alone is not a literature pass. bins and 200 samples per node and degree; no quantified experimental error
- Duration/periodicity gate (section 1a) must pass before any statistic is recovered.
collected. - Profiles (Fig. 8, p.260): LAB-FIXED stations x1 = -6, 0, 6, 12 mm, i.e.
x/D = -.6, 0, .6, 1.2, at phi = 180°, 210°, 330°; u1 and u2 versus x2.
- Original numerics (§2): cylinder-fixed accelerated frame (`x_i = x~_i +
x_i,s`, outer velocity `-u_c`, inertial source `-rho du_c/dt`), O-grid outer
diameter 120 D, illustrated 192 circumferential nodes, 720 steps/cycle; tank
influence neglected.
- Force fit (verified): force ON THE BODY per unit span
`F1 = -0.5 rho D c_d xdot|xdot| - (pi/4) rho D² c_i xddot` with `x = -A sin phi`;
normalized by `0.5 rho D U_max²`: `c_d cos phi |cos phi| - (pi² c_i / KC) sin phi`.
`c_i` is the ADDED-MASS coefficient; total inertia `c_m = c_i + 1` is a
different convention and is not used.
- Table 1 computed Morison coefficients (c_d, c_i) for 96 / 192 / 384 perimeter
nodes at dt/T = 1/720: (2.15, 1.42), (2.10, 1.45), (2.09, 1.45). These are
fitted computed coefficients, not a measured force and not an error bar. The
paper states the coarse direct force is closer to the finest direct force
than the Morison fit, but gives no waveform-error norm.
## 1. Kinematics ## 1. Kinematics, time levels and phase bookkeeping
- In-line only: `x(t) = -A sin(2 pi t / T)`, `u(t) = -U_max cos(2 pi t / T)` - Our run is in the LAB frame: the circle moves, the fluid is initially at rest
⟨verify sign and phase origin⟩; `KC = U_max T / D = 2 pi A / D = 5`, (rho = 1, u = 0); no fictitious inertial source is added. Lab-fixed profile
`Re = U_max D / nu = 100`, so `A = 5 D / (2 pi)`. stations are compared directly (no frame transform needed).
- Prescribed per step through `set_body(offset, vx)` + `run(1)`, offset and - Geometry reference: the circle's base centre is the INITIAL position, the
velocity evaluated analytically at step n (no differencing). right turning point `x_mean + A`; the declared offset box is x in [-2A, 0],
- Start: the paper's motion from rest ⟨verify Dütsch start⟩. A one-cycle smooth y = 0. The body is never teleported: offset 0 at s = 0.
ramp is a separately named variant that only checks start independence. - Elapsed time s = n dt from the start. Analytic position relative to the mean
- Phase convention: the motion uses the analytic offset/velocity at the step's `x(s) = A cos(2 pi s / T)`, velocity `u(s) = -U_max sin(2 pi s / T)`; paper
time level n; the per-step force (`run(1)`, `read_force(normalize=True)`) is phase `phi = (360 s / T - 90) mod 360`.
attributed to the same n. Whether the paper's phases refer to endpoint - Step n moves from s_n to s_{n+1}: target offset `x(s_{n+1}) - A`; wall
values or interval averages is ⟨verify⟩; comparisons state which. velocity = the single-step interval average `(x(s_{n+1}) - x(s_n)) / dt`
(analytic, supplied, not differenced from stored offsets). The per-step
force of `run(1)` / `read_force(normalize=True)` is attributed to that same
interval.
- Paper cycle k = 1, 2, ... spans `s in [T/4 + (k-1) T, T/4 + k T)`; the
initial quarter cycle (s < T/4) is cycle 0 and never scored. Every logged
sample carries (k, phi). Example: phi = 330° of cycle 1 is at s = 7T/6.
- T is chosen as a multiple of 360 native steps, so phi = 180°, 210°, 330° fall
exactly on step boundaries and 1° bins hold whole steps.
## 1a. Duration and periodic-state gate (auditable, every case) ## 2. Resolution ladder (uniform grid, fixed Mach), ENGINEERING
- Recorded per case: dx, dt, D, U_max, nu (lattice and nondimensional), steps | D (cells) | T (steps) | U_max = 5 D / T | nu_lat = U_max D / 100 | tau (3 nu + .5) |
per period, total steps, total nondimensional duration t U_max / D and in
periods, number of discarded cycles, accepted cycle window.
- Every case in a comparison uses the SAME accepted window in periods (finer
grids run proportionately more native steps for the same physical time).
- Periodic-state adequacy is demonstrated, not assumed: per-cycle mean and RMS
of Fx and the Morison fit per cycle must change by less than a predeclared
cycle-to-cycle tolerance (OPEN) over the last cycles before the window;
otherwise the run is extended and the window moved by whole periods, and the
failure is recorded. Cycles 4–6 is PROVISIONAL only.
- The G4 timing check (100 coarse vs 400 diffusive-fine steps) is a matched
short transient, not evidence of periodic convergence.
Mandatory ⟨gate⟩ ledger rows, same schema for every case (values ⟨verify⟩ /
PROVISIONAL until the primary-spec packet and measurements exist):
| field | content |
|---|---|
| dx, dt | lattice spacing and step in physical/nondimensional units |
| U_max, nu, Re, KC | lattice and nondimensional values |
| T | period in native steps and in nondimensional time |
| duration | total native steps, nondimensional time, periods |
| discard | discarded cycles / transient cutoff |
| window | accepted window, declared as the SAME cycle indices (or the same nondimensional interval after discard) for the whole ladder |
| cycle ledger | per cycle: mean, RMS, peak Fx (and Morison coefficients if scored); relative change k → k+1 below a predeclared tol for ≥ N consecutive cycles before the window (tol, N OPEN) |
| verdict | PASS, or FAIL-CLOSED if a finer grid covers less physical time, the window differs, or the cycle ledger is missing or unconverged |
No literature comparison, cross-resolution statement or VIV statistic is made
for a case without a PASS ledger.
## 2. Resolution ladder (uniform only, fixed Mach)
| D (cells) | U_max | nu_lat | tau | steps / period |
|---|---|---|---|---| |---|---|---|---|---|
| 20 | .04 | .008 | .524 | 2,500 | | 20 | 2,520 | .039683 | .0079365 | .5238 |
| 40 | .04 | .016 | .548 | 5,000 | | 40 | 5,040 | .039683 | .015873 | .5476 |
| 80 | .04 | .032 | .596 | 10,000 | | 80 | 10,080 | .039683 | .031746 | .5952 |
- MRT collision (SRT at tau ≈ .524 is the recorded unstable regime). - MRT collision. Mach fixed (Ma ≈ .0687); a separate Mach check at D = 40
- Mach check: U_max .02 vs .04 at D = 40 (separate, labelled). with T = 10,080 (U_max halved, tau .5238) is labelled MACH and not part of the
ladder.
- Per-step displacement ≤ U_max ≈ .04 cells (bound .5).
## 3. Domain and boundaries ## 3. Domain and boundaries (finite-domain reproduction), ENGINEERING
- Square still-fluid box; size PROVISIONAL (e.g. 20 D vs 40 D check at D = 40) - Boundary family (runner owner confirms the zero-velocity inlet is supported
⟨verify Dütsch domain extent⟩; no generic size is normative. as configured before any run): the native dense channel only — zero-velocity inlet,
- Boundary family declared by the runner owner before running (x-periodic / pressure-NEQ outlet, y walls (bounce-back). This is a finite-domain
y free-slip or closed walls, whatever the dense runner supports without approximation of the paper's 120 D O-grid, NOT infinite still fluid. The G4
production change); swept band ±A + R + 2 clear of any seam. periodic/slip overrides are a different family and are not substituted.
- Per-step displacement ≤ .04 cells (bound .5). - 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.
- Memory/runtime: measured by a smoke run before each new size; measurements
inform scheduling only, never tolerances.
## 4. Observables (raw, per step, preserved) ## 4. Observables (raw, per step, preserved)
- `obs` Fx, Fy (CME) and the diagnostics columns (`MovingTables.DIAG`): - `obs` Fx, Fy (CME) and all `MovingTables.DIAG` columns per step: CME,
CME, CME + Wen, CME + cover − uncover reported separately; crossings, CME + Wen and CME + cover − uncover reported separately; crossings, eq_only,
eq_only, no_donor. no_donor (no_donor must stay 0).
- Velocity u, v on lines at the paper's x-stations relative to the mean - Velocity u1, u2 on lab-fixed lines x/D = -.6, 0, .6, 1.2 (relative to the
cylinder position and at its phase angles ⟨verify stations and phases⟩; mean cylinder position) versus x2, at every step of the scored phases.
cell-centred values, documented bilinear interpolation in physical units. - 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.
## 5. Metrics ## 5. Periodic-regime gate (every case, before any statistic)
- Morison C_D, C_M by least squares over the measured cycles with the paper's Ledger rows, same schema for every case:
force definition and sign ⟨verify formula⟩; per-cycle RMS force; force
phase history; phase-resolved velocity profiles.
- Unit map for each candidate stated with `k = rho dx^3 / dt^2` per span.
## 6. Reference data provenance | 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 |
- Reference types kept separate: (a) phase-averaged LDA velocity measurements; - Settling metric, ENGINEERING, fixed scales (no near-zero denominators):
(b) the paper's computed results, including forces and Morison fits — a - force: `max over phase of |F_k(phi) - F_{k-1}(phi)| / (0.5 rho U_max² D)`
computed reference, not a measured force. The paper itself reports the on the per-step CME waveform aligned by step index within the cycle;
Morison-fit error as larger than its coarse grid/time numerical error, so - profiles: `max over scored stations/phases/points of |u_k - u_{k-1}| / U_max`.
C_D, C_M agreement is judged against that stated fit uncertainty. - Rule: K_case = the smallest cycle k ≥ 4 for which both metrics are ≤ .005
- Accepted: values from the paper's tables, or digitized figure curves with for the N = 3 consecutive pairs (k-3→k-2), (k-2→k-1), (k-1→k).
figure number, tool and uncertainty recorded. Curves without provenance are - Cap: 30 paper cycles per case; not settled by the cap → FAIL-CLOSED.
qualitative only. Values quoted by later papers are secondary until checked. - Common window: K = max over all compared cases of K_case; every case is run
- No cost estimate is normative; Astra's smoke run measures it. 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.
- The earlier G4 timing check (100 coarse vs 400 diffusive-fine steps) was a
matched short transient, not periodic evidence.
## 7. Order ## 6. Metrics and per-observable criteria (ENGINEERING, not paper uncertainty)
Protocol review → test driver (no production change) → runs → physical - Morison fit: least squares of the normalized per-step force over the
validation verdict → only then single-cylinder VIV. No AMR, no pinball. 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: only after digitization with figure, tool and
digitization uncertainty recorded; RMS over all points of
`|u - u_LDA| / U_max` ≤ .05; experimental uncertainty is NOT quantified in
the recovered source and this is stated with every comparison.
- No force candidate is selected for an RHS by these results; each is
reported.
## 7. Order and scope
Protocol review → lean test driver (no production change; reuses the
existing Simulation API) → smoke (memory/runtime) → domain sensitivity →
ladder → physical-validation verdict → only then single-cylinder VIV. No AMR,
no pinball, no manuscript work.