FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0121 — Same KF2012 Eq. 10 polynomial has two lower Re bounds (31.62 and 32)
ID 0121
Class BUG
Severity 1
Status blocked

Models: — (annotated on the fhsim_environment library group)

Found: 2026-10-20, hydrodynamics overview section 7 (doc/hydrodynamics-overview.md in fhsim_workspace), feature m2-hydro-doc-gaps

Decision needed: Owner: share one lower Reynolds bound for KF2012 Eq. 10, and which (10^1.5 = 31.62 as in the screen laws, or 32 as in TwineCrossFlow)? Moving TwineCrossFlow to 31.62 changes its result for Re in [31.62, 32) (see Effect).

Evidence

The same KF2012 Eq. 10 polynomial (panel_formulas::CylinderDragCoefficient, shared since MARE-0155) is clamped at two lower bounds:

  • include/fhsim_environment/hydrodynamics/KF2012Common.h:44: const double kMinReynolds = 31.622776601683793; (10^1.5), used by ScreenKF2012, ScreenMF2022 and LocalThroughFlow.
  • include/fhsim_environment/hydrodynamics/TwineCrossFlow.h:102: const double kMinReynolds = 32.0;, with the doc comments at :16, :44, :49 and :219 saying "32 <= Re <= 10^4".

Both cite KF2012 p. 223. The bound was not shared when the polynomial was (MARE-0155).

Effect

C_D,cyl is 1.765 at 31.62 and 1.758 at 32 (0.4 % apart). Only twine Reynolds numbers in [31.62, 32) are affected: TwineCrossFlow holds C_D at the 32 value there, the screen laws do not. For a 1 mm twine at nu = 1.19e-6 m²/s that is a normal speed of about 3.8 cm/s. The change in the force is at most 0.4 % in that narrow band and zero elsewhere. Flag bit 1 (Re clamped) would also change in that band.

Possible fix

Put kMinReynolds and kMaxReynolds in PanelFormulas.h next to CylinderDragCoefficient and use them in both places. Choose 31.62 (the polynomial's stated fit range start, and the value used by most laws). Update the four comments in TwineCrossFlow.h and doc/user/hydrodynamics.md. Re-baseline any TwineCrossFlow result whose Re falls in the band (run tools/compare_results.py; expected none in the shipped cases).

Test that would prove it

A test that evaluates both law families at Re = 31.8 and checks the same C_D,cyl, and that the clamp flag is set for Re < 31.62 in both.

Risk

Low. Tiny result change in a narrow band; needs the owner's choice of bound.