FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0023 — CollisionManager::AddPlate passes the full thickness as the plate radius, addExternalPlate half of it
ID 0023
Class BUG
Severity 2
Status blocked

Models: —

Found: 2026-10-24, feature coribo-fail-loudly (review doc/reviews/fhsim_coribo-2026-10-24, N8 and R8)

Decision needed: whether AddPlate's thickness is the full thickness (then pass 0.5*thickness, as addExternalPlate does) or the half thickness. The fix moves every ME run in which the trawl door plate touches a cable.

Evidence

src/ConstraintSet/CollisionManager.cpp: addExternalPlate calls SetAsPlate(0.5*thickness, ...); AddPlate calls SetAsPlate(thickness, ...). fhsim_marine_elements/src/trawl_mooring_interaction/TrawlCable.cpp:481 calls AddPlate(Lx, Ly, Lz, ...) for the trawl door, so the door's contact radius is twice that of an external plate of the same size.

Experiment 2026-10-24 (feature coribo-fail-loudly, branch deleted): with 0.5*thickness in AddPlate, the fhsim_marine_elements fast tier passes and its result files are identical to the run without the change (every fixture except the known multi-thread ones, whose _OneThread twins are identical). No fast-tier case has door-to-cable contact, so the fast tier does not show the change; slow-tier and user cases may.

Effect

The internal plate is thicker for contact than its input says. Changing it is a physics change for the trawl door cases of fhsim_marine_elements.

Possible fix

0.5*thickness in AddPlate; re-baseline the ME trawl cases that have door contact.

Test that would prove it

Internal and external plate of equal size and thickness give the same contact distance.

Risk

Moves ME baselines (see the feature's moves.md).