FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0086 — CenterWeight reports HasJacobians() true although its analytical Jacobian omits the bottom contact that OdeFcn adds
ID 0086
Class BUG
Severity 2
Status blocked

Models: Trawl/CenterWeight; fhsim_marine_elements Cable/Branched

Found: Review 2026-09-28: FISH-R-7. 2026-09-28 review of feature/net-hydrodynamics at 73aa0c7 (worktrees/nethydro/review/fhsim_fishery.md); rechecked at 1e6770c; filed by phase K WP K4 (owner ruling R42 item 39)

Decision needed: Owner (Karl-Johan): does R41's bottom-contact gate extend to Trawl/CenterWeight and fhsim_marine_elements Cable/Branched? (Note review F1 / MARE-0135: with SUNDIALS, a state-dependent gate needs the fhsim core fallback that K1 adds.)

Review 2026-09-28: FISH-R-7 (severity 2, tracker scale). Suspected (owner decision); whether the omission matters depends on how often contact is active, not measured. The same question for fhsim_marine_elements Cable/Branched (CableBranched.cpp:198-201, HasJacobians() true, cable bottom contact) is recorded here as the primary item.

Evidence

  • src/trawl/CenterWeight.cpp:117-120: HasJacobians() returns true unconditionally.
  • :122-131: the analytical Jacobian says it omits "input-port forces, bottom contact and the spatial gradient of the water velocity".
  • OdeFcn adds CalcBottomForceSphere (:69).
  • Owner ruling R41 gates net SimObjects only (NetStructure reports false while in bottom contact, MARE-0134).
  • fhsim_marine_elements CableBranched::HasJacobians() (src/cable/CableBranched.cpp:198-201) returns true with cable bottom contact in OdeFcn.

Effect

Suspected: implicit integrators get a Jacobian without the contact stiffness while a centre weight (or a cable) rests on the seabed, as in a bottom trawl.

Possible fix

Extend R41's gate to CenterWeight and CableBranched (report false in contact), or add the contact block to their Jacobians.

Test that would prove it

After the decision: a test of the chosen behaviour.

Risk

Result changes only in the cases named above; check the regression baselines.