Files
CelerisLab/docs/validation/leontini_viv_predeclare.md
T

5.2 KiB
Raw Blame History

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 75 D × 60 D (3000 × 2400) with the cylinder 30 D from the inlet, 45 D from the outlet, centred in y (Kolahdouz §4.1.1).
  • 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.
  • Time levels (binding): the target y^{n+1} must be set before step n runs (set_body, then run(1)), so step n moves the body with (y^n, v^n) that were advanced using F^{n-1} from the previous fluid step; step n measures F^n. One step of explicit lag, declared.
  • Structural update over one step with constant force F = F^{n-1} (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: fluid at rest at U = 0 except the uniform inlet (impulsive start as in the reference), body at rest. The reference states no perturbation; a numerically symmetric start can delay or suppress lift, so one declared seed is used: initial structural displacement y0 = +.05 D (2 cells) with v0 = 0, released at t = 0. No other perturbation; not changed afterwards.
  • Response cycles: delimited by consecutive upward zero crossings of y about its running mean; per-cycle peak = max |y − mean| in that cycle.
  • Settled when the per-cycle peak changes ≤ 2 % between consecutive 10-cycle windows and the last 5 cycle peaks agree within 1 %. The 20 scoring cycles follow settling and are included in the cap of 150 response cycles from t = 0 (about 150 × 5,000 = 750,000 steps, t U/D ≈ 750); total steps and t U/D are reported.
  • Growth transient vs instability: amplitude growth from the seed that stays below 1.0 D (about twice the largest reference peak, .551 D) is a physical transient and is not a failure by itself. Instability = |y| > 1.0 D, a non-finite value, or the offset box being reached.
  • FAIL-CLOSED and reported (no sub-iteration, no RHS or parameter retune): unsettled at the cap, instability as defined above (possible weak-coupling instability at m* ≈ 2.55), or no_donor > 0.
  • Score over the 20 cycles after settling: A_max/D (mean of cycle peaks) and f/f_n (reported; 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. Cost from Astra's no-dump timing on this grid.

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.