fix: bound reported pipe friction diagnostics

This commit is contained in:
Codex committed 2026-08-16 11:03:21 +00:00
1 parent 5332a788f3
commit f09dfcf542
2 files changed
+18 -19

No files matched your search

+7 -15
View File
@@ -76,29 +76,21 @@ class AmesimPnl00rComponentTests(unittest.TestCase):
self.assertEqual(pipe.mass_flow(base_pressure, base_pressure), 0.0)
self.assertGreater(pipe.mass_flow(15.3e6 + 0.1, 15.3e6), 0.0)
def test_mass_flow_is_continuous_across_former_relative_deadband(self) -> None:
pipe = AmesimPnl00r("pnl_1", self.medium, diam=0.014, le=1.0, rr=0.045 / 14.0)
base_pressure = 8.0e6
former_threshold = base_pressure * 1.0e-7
below = pipe.mass_flow(base_pressure + 0.99 * former_threshold, base_pressure)
above = pipe.mass_flow(base_pressure + 1.01 * former_threshold, base_pressure)
reverse = pipe.mass_flow(base_pressure, base_pressure + 0.99 * former_threshold)
self.assertGreater(below, 0.0)
self.assertGreater(above, below)
self.assertLess(reverse, 0.0)
self.assertAlmostEqual(below, -reverse, delta=abs(below) * 1.0e-9)
self.assertLess(abs(above - below), abs(above) * 0.05)
self.assertEqual(pipe.mass_flow(base_pressure, base_pressure), 0.0)
def test_friction_factor_transitions_from_laminar_to_turbulent(self) -> None:
pipe = AmesimPnl00r("pnl_1", self.medium, rr=1e-5)
self.assertGreater(pipe.friction_factor(1.0e-12), 64_000_000.0)
self.assertAlmostEqual(pipe.friction_factor(100.0), 64.0 / 100.0)
self.assertGreater(pipe.friction_factor(100000.0), 0.0)
self.assertLess(pipe.friction_factor(100000.0), 0.1)
def test_reported_friction_factor_is_bounded_at_tiny_flow(self) -> None:
pipe = AmesimPnl00r("pnl_1", self.medium)
pipe.mass_flow = lambda _p_1, _p_2: 1.0e-30
self.assertEqual(pipe.component_result_values()["ff"], 64_000_000.0)
def test_friction_factor_matches_amesim_smooth_to_rough_transition(self) -> None:
pipe_20mm = AmesimPnl00r(
"pnl_20mm",