|
FhSim
3.1.0
Marine systems simulation
|
| ID | 0395 |
| Class | BUG |
| Severity | 2 |
| Status | ready |
Models: RbCable/Cable
Found: 2026-10-16, feature seabed-pins (plan D1 phase 0; analysis features/seabed-pins/rbcable-stiffness.md, confirmed by three runs on 553ffc6)
Decision: owner ruling 2026-10-16: fix in D1 (feature seabed-pins/seabed-law), option C. The owner chose option C, with these rulings 2026-10-16: (1) the joint model is an explicit bending moment M = EI·κ, computed from the joint angle and applied as a force; the joints keep only position constraints. (2) EI is a new user parameter; its default is today's loose 1×7 strand value E·7πD⁴/5184. (3) Timing: D1 phase 2, together with the other law switches; phase 1 stays bit for bit. (4) Owner ruling 2026-10-16: the moment also gets bending damping M_d = c_b·θ̇ with ζ_b = 0.05; c_b follows from EI and the element inertia, no new input. Nothing is fixed here yet. Rejected: A (beta as a rate, keep epsilon = beta^2/k: the axial rows become stiff springs near the explicit stability limit at 1 ms), B (hard axial joints plus rate-based soft bending rows: more change than C), D (keep and document a quasi-rigid cable with relaxation time about 1.1 updateFreq s: the seabed pins would rest on a frozen initial shape).
src/RMCable/Cable.cpp:86-95: m_betaN = 1 / updateFreq (and m_betaM = m_betaT = 1 / (updateFreq stabilityFactor)), with m_epsilon* = beta^2 L / (2 E I N). The right-hand side of the constraint solve (:665-710) uses beta^2 c as an acceleration, so beta has to be a rate (1/s). With updateFreq 1000, beta = 1e-3 s, so each joint relaxes over about 1/beta = 1000 s and the chain keeps its initial shape. The static law does not depend on beta: lambda = -(beta^2/epsilon) c = -(2EI/l) sin(theta/2) n.
Runs (FhSim of an ME build at 553ffc6, inputs changed only, no code change; run 3 had a temporary print in a throw-away copy, since removed):
CableRM_SeabedRegression_in.xml with the ends at z = 8 m, depth 10 m, no current, Euler_i 1 ms, TEnd 10. Deepest element z (initial 10.6176 m, the seabed at 10 m):CableRM_CrossCurrentStart_in.xml, Light cable (3 kg/m, updateFreq 200), 5 s, RK45_i. The angle between neighbouring elements, theta_i = 2 asin|vec(q_i* q_{i+1})|, is constant to four digits at every joint (0.1238, 0.1660, 0.2191, 0.2707, 0.2936, 0.2707, 0.2191, 0.1660, 0.1238 rad from 0 to 5 s). The cable moves sideways as a whole (the middle element's y goes from 0 to 1.38 m) while the joints open: the gap between the joint points of neighbouring elements grows from 0.003 to 0.007 m at t = 0 to 0.27 m at the ends of the chain at t = 5 s (the end gaps to the fixed points 0.013 m to 0.149 m), and the distance of the centres from the line A-B grows (middle element 2.618 m to 3.494 m). So the motion is a rigid swing about A-B plus gap drift (translational beta_N is tiny too), with no bending.An RbCable/Cable does not change shape in the seconds a run lasts: soil elements stay in the soil, a cable on the seabed stays where it started, and a current only swings it about the line between its ends with the joints opening. This is not a defect of EI (26.5 N m^2 is soft). The CableRM baselines (CableRM_SeabedRegression too) pin this frozen behaviour and will move when it is fixed; so will every model that uses RbCable/Cable for a cable that has to sag or settle.
C, as ruled 2026-10-16: bending as an explicit moment M = EI·κ, computed from the joint angle and applied as a force. The joints keep only position constraints. EI is a user parameter, default E·7πD⁴/5184 (today's loose 1×7 strand value). The moment is applied in D1 phase 2, with the other law switches. Bending damping (owner ruling 2026-10-16): M_d = c_b·θ̇ with ζ_b = 0.05, c_b = 2 ζ_b √(J·EI/l) from EI and the element's rotational inertia J (design contact-model-design.md section 7); no new input. Behaviour commit with its test first; the CableRM baselines are regenerated in a separate commit.
A cable between two fixed ends 1 m above a seabed at 10 m with 2 m of slack, no current, Euler_i 1 ms at the default updateFreq: its soil elements rise to the seabed within 10 s (today they move by under 1e-5 m).
Changes every RbCable/Cable result; a bending-free chain needs a check of its stability at the 1 ms step.