digitalmodel · CFD verification suite · case 10 · marine · interactive

Wave-Excited Floating Body: Heave-RAO Curve vs Potential-Flow Diffraction

The verified #1302 overset case (overInterDyMFoam, 2D overset, 0.2×0.2 m half-submerged square) swept across wave period — from the long-wave wave-follower limit (RAO → 1) toward heave resonance — spot-checked at every period against a frozen potential-flow diffraction reference (capytaine linear BEM, the physics the OrcaWave/AQWA pipeline implements), computed in 2D-consistent form at the CFD's finite depth. Issue #1324, epic #1161.

Off-resonance CFD verified against the potential-flow reference; near resonance the CFD response is grid-independent and well below the inviscid peak — a documented open finding (see §4)

SolveroverInterDyMFoam + sixDoF, v2312
Referencecapytaine BEM (FK + diffraction), depth 0.4 m, long box ≈ 2D slab
Inviscid resonancereference RAO ≈ 2.20 at T ≈ 0.86 s
Long-wave checkreference RAO 1.014 reproduces CFD #1302 (1.017)
Resolution studyT=0.9s: 0.68→0.74 (CPW 18→36; inviscid 2.05); T=1s: 0.99→0.99 (CPW 18→36; inviscid 1.52)
Regression testtests/solvers/openfoam/validation/test_wave_excited_body_rao.py

1  Objective

Case 9 (#1302) verified a single point — the long-wave limit where a small floating body is a wave follower (heave RAO → 1). This case turns that one point into a frequency response: the same body and tank, swept across wave period toward resonance. Each CFD point is checked against a potential-flow diffraction prediction for the exact section — the strongest cross-check tier of the CFD validation philosophy (analytical / BEM before experiment).

What this gates in real work

The heave RAO curve is the core seakeeping deliverable for every floating asset (FPSOs, semis, spars, floating wind, installation barges). Panel methods (OrcaWave/AQWA) produce it cheaply but are inviscid; CFD captures viscous and steep-wave effects they miss. This case establishes and gates the CFD path:

2  The RAO curve

The blue curve is the potential-flow reference; filled circles are off-resonance CFD solves (green = within band), orange squares are the resonance-region points (see §4), the black diamond is the reused #1302 long-wave point, and faint hollow markers are the coarse-grid points from the resolution study. The reference reproduces the verified #1302 point at T = 3 s from a completely independent method — a genuine cross-method check — then rises toward a resonance peak near T ≈ 0.86 s.

3  Heave response at each period

4  Near resonance: a grid-independent response reduction open finding

The inviscid reference predicts a sharp heave resonance (RAO up to ≈ 2.20 near T ≈ 0.86 s). The CFD does not reproduce it: across the resonance region the body stays close to a wave-follower (RAO ≈ 0.7–1.0), far below the reference. The important question is why — numerical under-resolution of the short wave, or a real reduction in the body's dynamic response. A two-resolution study answers the first half:

T (s)cells/λnxincident aCFD RAOinviscid ref
0.9182954.0 mm0.6822.053
0.9365895.8 mm0.7442.053
11825010.6 mm0.9931.524
13649211.4 mm0.9921.524

The reduction is grid-independent. Doubling the background resolution (18 → 36 cells per wavelength) recovers a larger incident amplitude at the gauges — but the heave amplitude grows in step, so the RAO barely moves and stays far below the inviscid reference. The near-resonance reduction is therefore not a wave-field resolution artifact. What the present forced-wave setup cannot separate is the cause:

Resolved by the free-decay test (#1332). A still-water free-decay run (report) settles it. Released from a heave displacement, the body rings down with a damped natural frequency within ~0.4% of the reference resonance frequency (its mass, stiffness and added mass are correct — no setup error) and a light, amplitude- independent damping ratio ζ ≈ 0.13 — only ~20% above the potential-flow radiation value (0.10), i.e. linear damping, not the amplitude-dependent separation drag that would flatten a resonance. With that measured damping the body would still resonate to RAO ≈ 1.8 — far above the forced-sweep points here. So the resonance-region reduction is not body damping: it is dominated by the gauge-to-body incident-wave decay above (the short wave is under-delivered to the body over the fetch and the RAO is normalised at a gauge ~3.5 m upstream). The overset body's own dynamics are verified; the off-resonance gate below is unaffected.

5  CFD vs reference — band gate

T (s)cells/λCFD RAORef RAOErrorStatusNote
3—1.0171.014+0% (band ±20%)PASS#1302 (verified)
1.5331.0561.087+3% (band ±20%)PASS, Kr=0.17
1360.9921.524+35% vs inviscidreduced (open), Kr=0.10
0.9360.7442.053+64% vs inviscidreduced (open), Kr=0.02

Reading the gate. The band gate applies off resonance, where the inviscid reference is an accurate ground truth: there CFD and BEM agree within a few percent (PASS). In the resonance region the inviscid reference is only an upper bound (it omits viscous damping), so those points are reported as a measured discrepancy and an open finding (§4) rather than graded pass/fail against a reference that is not ground truth there.

6  The potential-flow reference

The reference is a linear boundary-element (capytaine) solution for the same 0.2 m half-submerged square section, at the CFD's finite water depth (0.4 m). Because the CFD is a 2D slab (an infinitely long cylinder), the BEM models a long box (L = 6 m ≈ 30 beams) whose per-length response converges to the 2D sectional RAO — a box-length sweep (L = 4→8 m) moves the resonance peak by 0.5% and the flank by <1%, so end effects are negligible. Heave RAO = |F3| / |c33 − (M + a33)ω² + i b33ω|, with the total excitation F3 the sum of Froude-Krylov and diffraction forces (the diffraction problem alone omits FK and collapses the long-wave limit), and an interior free-surface lid removing the BEM irregular frequencies. The curve is frozen with provenance in docs/api/cfd/cases/wave_excited_body/rao_reference_capytaine.csv; regenerate via generate_rao_reference.py. This is the same potential-flow physics the OrcaWave/AQWA pipeline solves — here computed 2D-consistently for the exact section so the CFD points have a like-for-like check.

7  Numerical model

Every point reuses the verified #1302 geometry (20 m tank, depth 0.4 m, body at x = 13 m, nz = 49 so the still-water line stays on a cell face) and machinery (rigid overset component, heave-only sixDoF, StokesII inlet + active absorption, Goda–Suzuki incident/reflected split for the incident amplitude). Only the wave period, the background nx (the cells-per-wavelength swept in the resolution study), the gauge array (spacing ≈ 0.2λ so the split does not alias) and the solve duration / analysis window (sized from the group velocity) adapt per point — all in digitalmodel.solvers.openfoam.validation.build_sweep_config. The heave amplitude is a single-harmonic least-squares fit over the settled window; RAO = amplitude / incident amplitude.

8  Conclusion

Off-resonance CFD verified against the potential-flow reference; near resonance the CFD response is grid-independent and well below the inviscid peak — a documented open finding (see §4). The overset wave-body machinery, verified at one point in #1302, now traces a heave-RAO curve that matches the potential-flow diffraction reference off resonance (a like-for-like CFD check on the OrcaWave/AQWA pipeline). In the resonance region the CFD response is grid-independent and sits well below the inviscid peak; a free-decay damping test is the recommended follow-up to attribute that reduction and confirm the body's natural frequency.

References

  1. Potential-flow reference: capytaine (linear BEM); total heave excitation = Froude-Krylov + diffraction; finite depth 0.4 m; frozen in rao_reference_capytaine.csv.
  2. OpenFOAM ESI v2312: multiphase/overInterDyMFoam/floatingBody (overset), interFoam/laminar/waves/stokesII (waves, verified in #1170).
  3. Goda, Y. & Suzuki, Y. (1976). Incident/reflected split over a gauge array (N-gauge least squares).
  4. digitalmodel issue #1324 (this sweep) under epic #1161; precursor #1302; regression test tests/solvers/openfoam/validation/test_wave_excited_body_rao.py.

Generated from real OpenFOAM v2312 solves and a capytaine BEM reference. All chart data is computed directly from solved fields, gauge records and body-state histories — no values are hand-entered.