FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0114 — Seabed contact of a cable element (AddBottomForceCylinder) has no gravity and gives each end the whole element length
ID 0114
Class BUG
Severity 2
Status ready

Models: —

Found: 2026-10-16, feature seabed-pins (plan D1 phase 0, step 4, defect candidate D-b)

Decision needed: Ruling 1 (2026-10-16) removes the Seafloor.* constants in D1 phase 2; the owner decides what law replaces L2 (Q5e, option 1: L2 stays) and its units.

Evidence

  • src/environment/seafloorForces/SeafloorForces.cpp:251-260 AddBottomForceCylinder calls AddBottomForceCylinderNode once per end with the full element length dL = |pB - pA|; each end takes the damping scale dL * dD and the static force over dL, so a flat element lying on the seabed carries 2 L.
  • :180-210: the static term Density * pi/4 D^2 * dL * s * Hardness has no g (the sphere law L1 and the beam law L3 use 9.81 * V). Hardness is a plain factor here (default 2000) and a density-like factor in L1 and L3 (:171, :225).
  • Pinned in tests/SeafloorForces_Test.cpp (SeafloorForcesPin.L2_CylinderElementAddsTheForceOfEachEndInContact).

Effect

The weight a seabed contact of a cable carries depends on how many elements share the cable, twice its length of contact per element, and its units differ from the sphere law.

Possible fix

Half the element length per end (or the length each end carries), and g in the static term; then the constants follow the soil of D1 (rulings 1 and 2).

Test that would prove it

Test first: one element of length L lying flat in contact: the sum of the two end forces is 1 times the law for L, not 2 times. The L2 pin moves.

Risk

Moves every baseline with a Cable/LumpedMass or CableBranched on the seabed.