FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0354 — LocalWaveVessel aliases waves shorter than twice the sample spacing
ID 0354
Class KNOWN-LIMITATION
Severity 2
Status ready

Models: Vessel/LocalWaveVessel

Found: 2026-10-05 review of the vessel-in-waves feature

Decision needed: — (owner, 2026-10-05: document as a model limitation; no filter for now)

Evidence

src/vessel/LocalWaveVessel.cpp:134 const double spacingX = length / std::sqrt(n * n - 1.0); and :138 place the samples on a uniform grid of spacing d; :178 sums them with equal weights. The heave transfer of a regular wave of wave number k along the length is then sin(n k d / 2) / (n sin(k d / 2)), which is periodic in k: it returns to 1 at a wavelength of d, where all points along the length are in phase. The exact transfer of the rectangle, sinc(k L / 2), stays below 2 L / (pi lambda) there. The same holds across the beam with the breadth.

Effect

Waves shorter than 2 d are not resolved, and waves of length near d excite the vessel with the full buoyancy of the wave instead of almost none. For a 20 m vessel at the default SampleLevel 2 (d = 7.1 m), 7 m waves (deep-water period 2.1 s) give full heave and pitch excitation. The 0.1 s excitation filter does not remove it. Seas with energy at those wavelengths (short wind sea, high-frequency spectral tails) give spurious high-frequency motion.

Possible fix

Options considered: a pre-filter of the environment's wave components (rebuilt every step, component seas only), a time low-pass at the cutoff wavelength's deep-water frequency (leaks with forward speed), or the exact footprint average per wave component (Airy component seas only, replaces the elevation sampling). Until then: choose the level so the sea holds little energy below 2 d (table in the model's "Short waves" section).

Test that would prove it

A regular wave of length d at SampleLevel 2: the heave load amplitude per unit buoyancy rho g A a is 1 instead of below 0.1.

Risk

Low for long-crested swell and long-period seas; significant for short wind seas on long hulls at low levels.