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)
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).
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:
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.
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/λ | nx | incident a | CFD RAO | inviscid ref |
|---|---|---|---|---|---|
| 0.9 | 18 | 295 | 4.0 mm | 0.682 | 2.053 |
| 0.9 | 36 | 589 | 5.8 mm | 0.744 | 2.053 |
| 1 | 18 | 250 | 10.6 mm | 0.993 | 1.524 |
| 1 | 36 | 492 | 11.4 mm | 0.992 | 1.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.
| T (s) | cells/λ | CFD RAO | Ref RAO | Error | Status | Note |
|---|---|---|---|---|---|---|
| 3 | — | 1.017 | 1.014 | +0% (band ±20%) | PASS | #1302 (verified) |
| 1.5 | 33 | 1.056 | 1.087 | +3% (band ±20%) | PASS | , Kr=0.17 |
| 1 | 36 | 0.992 | 1.524 | +35% vs inviscid | reduced (open) | , Kr=0.10 |
| 0.9 | 36 | 0.744 | 2.053 | +64% vs inviscid | reduced (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.
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.
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.
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.
rao_reference_capytaine.csv.multiphase/overInterDyMFoam/floatingBody (overset),
interFoam/laminar/waves/stokesII (waves, verified in #1170).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.