docs: Dütsch protocol — worked cycle-index example, sparse sampling, driver unit tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
10cea29e8e
commit
8505a723a5
@@ -101,6 +101,15 @@ Order (closed):
|
||||
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.
|
||||
- Sampling cost: raw force and diagnostics counters are read every step
|
||||
(small). Flags and velocity fields are read only at the steps inside the
|
||||
three prescribed 1° phase bins (φ ∈ [180, 181), [210, 211), [330, 331),
|
||||
T/360 steps each) of the cycles needed for settling and scoring, plus
|
||||
sparse declared audits; never every step.
|
||||
- Point set: fixed x2/D sample points per station, identical on every grid
|
||||
and declared before running; per point the interpolation weights are
|
||||
recorded; the scored set is the common subset valid on all compared grids
|
||||
at that phase, with its coverage recorded; point sets never change silently.
|
||||
- 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
|
||||
@@ -124,6 +133,25 @@ force as denominator.
|
||||
three phases × four stations;
|
||||
- Morison `|dc_d| ≤ .02`, `|dc_i| ≤ .02`.
|
||||
- Rule: all metrics for N = 3 consecutive whole paper cycles → settled.
|
||||
|
||||
Cycle indexing (worked example, binding). Paper cycle k spans
|
||||
`s/T in [0.25 + (k-1), 0.25 + k)`, i.e. φ0 → φ0; cycle 0 is the startup
|
||||
quarter `s/T < 0.25`. Pair p_k compares cycle k−1 with cycle k.
|
||||
|
||||
- Discarded: cycles 0, 1, 2 (s/T < 2.25). Pairs are formed only between
|
||||
cycles ≥ 3, so the first pair is p_4 (3 → 4).
|
||||
- Settling proof for a case: the earliest K_case such that p_{K-2}, p_{K-1},
|
||||
p_K all pass (three consecutive pairs over cycles K−3 .. K). Earliest
|
||||
possible: K_case = 6 (pairs 3→4, 4→5, 5→6).
|
||||
- Scored window (after the proof): cycles K+1, K+2, K+3 with
|
||||
K = max over compared cases of K_case. The case must stay settled
|
||||
throughout: pairs p_{K+1}, p_{K+2}, p_{K+3} must pass as well, otherwise
|
||||
FAIL-CLOSED.
|
||||
- Cap: cycle k ends at s/T = 0.25 + k, so the window ends at s/T = K + 3.25
|
||||
≤ 12 ⇒ K ≤ 8. Allowed: K = 6 (window 7–9, ends 9.25 T), 7 (8–10,
|
||||
10.25 T), 8 (9–11, 11.25 T). K_case > 8 for any case → FAIL-CLOSED.
|
||||
- Every case is run to the end of cycle K + 3 (proportionally more native
|
||||
steps on finer grids).
|
||||
- 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).
|
||||
@@ -162,6 +190,15 @@ 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.
|
||||
|
||||
## 6a. Driver unit tests (CPU, before any run)
|
||||
|
||||
- Phase/cycle arithmetic: s ↔ (k, φ), cycle boundaries, bin membership,
|
||||
window/cap selection for K = 6, 7, 8, 9.
|
||||
- Solid-aware interpolation: all-fluid, partial-solid (renormalized weights),
|
||||
no-fluid (MISSING) and inside-circle cases.
|
||||
- Interval-averaged Morison bases and the two-parameter fit on a synthetic
|
||||
waveform with known c_d, c_i.
|
||||
|
||||
## 7. Order and scope
|
||||
|
||||
Protocol review → one-shot Dütsch driver (analytic `set_body` + `run(1)`,
|
||||
|
||||
Reference in New Issue
Block a user