114 lines
6.8 KiB
Markdown
114 lines
6.8 KiB
Markdown
# Single-cylinder free transverse VIV — PREDECLARATION DRAFT (not frozen)
|
||
|
||
Stage goal (Yanqi via TRON): prescribed Dütsch case + one VIV case both
|
||
"reasonably close" to a predeclared reference = development-stage success, then
|
||
cleanup. The frozen Dütsch settling failure (0/28 pairs at 31.25 T) stays on
|
||
record. Practical closeness is not a formal validation claim. No code until
|
||
this page is jointly agreed.
|
||
|
||
## Primary case (one case)
|
||
|
||
- Reference: Qin et al., arXiv:2003.12186, §4.5 (maximum amplitudes at
|
||
U_red = 3…8: .075, .551, .520, .459, .370, .084 D in the text, as quoted by
|
||
Grok/Astra) for the target; setup from Kolahdouz et al., arXiv:2003.12046,
|
||
§4.1.1 (read 2026-10-30 via ar5iv): U* sweep 3–8 with amplitudes only in
|
||
Fig. 3(b) (no text values), domain [−30, 45] D × [−30, 30] D with the
|
||
cylinder "initially at rest and centered at the origin", uniform inflow on
|
||
the left, zero normal traction and tangential velocity at the outlet, zero
|
||
normal velocity and tangential traction on y = ±30 D; no initial
|
||
perturbation and no total simulated time stated.
|
||
- Re = 150, U* = U/(f_n D) = 5, m/(rho D²) = 2 (m* = rho_s/rho_f = 8/pi),
|
||
zeta = 0, f_n = sqrt(K/M)/(2 pi) in vacuum. Transverse DOF only.
|
||
- Target: A_max = .520 D (peak amplitude, Qin §4.5). Multi-code reference
|
||
(Kolahdouz ILE-NS, Qin II-LBM). Reference uncertainty: not stated; the
|
||
spread between codes is not quantified here.
|
||
|
||
## Our reproduction (declared differences)
|
||
|
||
- D = 40, MRT, dense double buffer; U_lat = .04, nu = U D / 150 = .010667,
|
||
tau = .532.
|
||
- Box [0, 75 D] × [0, 60 D] (3000 × 2400) with the cylinder centre at
|
||
(30 D, 30 D): 30 D from the inlet, 45 D from the outlet, centred in y
|
||
(Kolahdouz §4.1.1). Qin's own box ([0, 40 D] × [0, 20 D], centre (10 D, 10 D))
|
||
is the target paper's, not ours.
|
||
- Boundaries: uniform Zou–He inlet, NEQ outlet (rho = 1, backflow clamp),
|
||
free-slip y walls. Kolahdouz uses a traction outlet: declared mismatch.
|
||
- Qin's own VIV box (40 D × 20 D) is not used; a smaller box would be a
|
||
declared cost cut with more blockage, not "the same case".
|
||
- Allowed y offset ±1.5 D; peak transverse speed ≈ .026 cells/step (bound .5).
|
||
|
||
## Structure, coupling and time levels
|
||
|
||
- M = 2 rho D² (lattice rho = 1), f_n = U/(5 D) = 2e-4 per step, K = M (2 pi f_n)²,
|
||
zeta = 0. Equation of motion uses the structural mass only.
|
||
- Per-step sequence (binding): known (y_n, v_n) and the last completed force
|
||
F_last → candidate (y_{n+1}, v_{n+1}) by the update below → `set_body` with
|
||
offset y_{n+1} and wall velocity (y_{n+1} − y_n)/dt (interval average; a
|
||
different quantity from the endpoint v_{n+1}) → `run(1)` → only on success:
|
||
commit y_n ← y_{n+1}, v_n ← v_{n+1}, F_last ← force read for that step. Any
|
||
failure leaves the Simulation failed (existing lifecycle). Whether the
|
||
measured force represents the interval's start, midpoint or end is not
|
||
asserted; the one-step lag is declared, not corrected.
|
||
- Initial state: fluid at rest except the uniform inlet; y_0 = v_0 = 0;
|
||
F_last = 0 for the first step; geometry initialized at the declared centre.
|
||
- Structural update over one step with constant force F = F_last (exact
|
||
harmonic solution, zeta = 0): y_e = F/K, w = 2 pi f_n,
|
||
y^{n+1} = y_e + (y^n − y_e) cos w + (v^n / w) sin w,
|
||
v^{n+1} = −(y^n − y_e) w sin w + v^n cos w.
|
||
- Primary RHS (single coupled run): CME + Wen (theory-motivated stage choice:
|
||
Galilean-invariant link correction; G4 could not separate it from CME).
|
||
Raw CME and the node terms are logged as diagnostics of that trajectory;
|
||
the node impulse is not added. A run with CME-only as RHS is a separate,
|
||
labelled sensitivity case, decided separately. Neither RHS is claimed proven.
|
||
|
||
## Window, failure semantics, acceptance (engineering, development stage)
|
||
|
||
- Start (source-faithful): fluid at rest except the uniform inlet, body at
|
||
rest at the declared centre, y(0) = v(0) = 0.
|
||
- Seed policy (conditional, declared): exact mirror symmetry can suppress
|
||
lift. If max |y| over the last 5 T_n before t = 40 T_n (200,000 steps) is
|
||
below .01 D, apply one labelled seed at that step as a structural velocity
|
||
increment v += 2 pi f_n (.01 D) (amplitude ≈ .01 D), so the geometry then
|
||
moves continuously through the update (never a jump);
|
||
`seed_applied=true`, its step and size logged; the run continues under the
|
||
same caps. Missing shedding is a diagnostic, never an
|
||
"A = 0 pass"; the seed is not changed or repeated after seeing results.
|
||
- Response cycles: delimited by consecutive upward crossings of y through the
|
||
mean of the previous completed cycle (0 for the first). Per cycle: positive
|
||
peak max(y), negative peak min(y), mean offset, amplitude (max − min)/2.
|
||
Window value = mean amplitude over 10 cycles; window change =
|
||
|W_k − W_{k−1}| / W_{k−1}.
|
||
- Settled when the per-cycle peak changes ≤ 2 % between consecutive 10-cycle
|
||
windows and the last 5 cycle peaks agree within 1 %. Budget: 150 response
|
||
cycles from the start of motion, including the 20 scoring cycles, so
|
||
settling must complete by response cycle 130; the score uses the first 20
|
||
cycles after settling. Hard native cap 1,000,000 steps (= 200 T_n) in case
|
||
response cycles cannot be detected. Either cap missed → FAIL-CLOSED
|
||
(timeout).
|
||
- Durations reported: total steps, t U/D, N_resp, measured T_resp (mean
|
||
upward-crossing interval); N_resp / f_n only as a labelled secondary clock,
|
||
never as the settling unit.
|
||
- Growth is not a failure: initial VIV growth is physical. Checked every step
|
||
(FAIL-CLOSED): non-finite y, v or force; |y| > 1.0 D (about twice the
|
||
largest reference peak, .551 D) or the offset box reached; no_donor > 0;
|
||
a failed upload/step/sync. Timeout = a cap missed (above).
|
||
- All failures are reported as they are (no sub-iteration, no RHS or
|
||
parameter retune, no automatic second case).
|
||
- Score over the 20 cycles after settling: target metric A_max/D =
|
||
max over those cycles of max(|positive peak|, |negative peak|) about y = 0
|
||
(Qin reports "maximum amplitude"); also reported: mean amplitude, positive
|
||
and negative peaks, mean offset, f/f_n (no target).
|
||
- Acceptance: |A_max − .520 D| ≤ .052 D (±10 %), stated together with the
|
||
boundary mismatch and the absence of a quoted reference uncertainty. A pass
|
||
is "reasonably close" for the stage: not grid convergence, not force-RHS
|
||
validation, and it does not touch the Dütsch settling record.
|
||
- Driver reads force and the small diagnostics per step only; field reads
|
||
only at a few predeclared snapshots. No runtime claim: there is no measured
|
||
timing on this grid yet (the D40/60D receipt is a different, sampled case).
|
||
|
||
## Queued, not in this stage
|
||
|
||
Leontini et al. JFS 22 (2006) Re = 200, m* = 10, zeta = 0.01, U* = 5.0 (needs
|
||
the owners' c_crit convention and a Fig. 1 digitization). D80, literature
|
||
claims, pinball, AMR, BC redesign, threshold changes.
|