STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
test_discharge_geometry.py
Go to the documentation of this file.
1"""Geometry-based discharge coefficient (Cd_inf from orifice diameter)."""
2
3import math
4import unittest
5
6from engine.core.discharge import (
7 cd_from_re,
8 cd_inf_from_orifice_diameter,
9 discharge_cd_inf_ratio,
10)
11from engine.pipeline.config_schemas import DischargeConfig
12
13
14def _impinging_discharge() -> DischargeConfig:
15 return DischargeConfig(
16 Cd_inf=0.6,
17 a_Re=0.18,
18 Cd_min=0.35,
19 use_geometry_cd=True,
20 d_ref_m=0.002,
21 cd_small_hole_exponent=0.20,
22 cd_large_hole_log_gain=0.015,
23 cd_inf_max=0.62,
24 cd_inf_min_geom=0.48,
25 d_min_m=0.0004,
26 )
27
28
29class TestDischargeGeometry(unittest.TestCase):
32 self.assertAlmostEqual(cd_inf_from_orifice_diameter(0.002, cfg), 0.6, places=6)
33
36 cd_small = cd_inf_from_orifice_diameter(0.001, cfg)
37 self.assertLess(cd_small, 0.6)
38 self.assertGreaterEqual(cd_small, 0.48)
39
42 cd_large = cd_inf_from_orifice_diameter(0.003, cfg)
43 self.assertGreater(cd_large, 0.6)
44 self.assertLessEqual(cd_large, 0.62)
45
47 """MR-rescaled O/F jets differ in d; Cd_inf tracks diameter (ratio stays O(1))."""
49 ratio = discharge_cd_inf_ratio(0.00228, 0.00175, cfg, cfg)
50 self.assertGreater(ratio, 0.95)
51 self.assertLess(ratio, 1.08)
52
55 cd_hi = cd_from_re(1.0e6, cfg, d_hyd_m=0.002)
56 self.assertAlmostEqual(cd_hi, 0.6, places=3)
57 cd_lo = cd_from_re(100.0, cfg, d_hyd_m=0.0008)
58 self.assertLess(cd_lo, 0.6)
59 self.assertGreaterEqual(cd_lo, cfg.Cd_min)
60
62 cfg = DischargeConfig(Cd_inf=0.55, a_Re=0.1, use_geometry_cd=False)
63 self.assertAlmostEqual(cd_inf_from_orifice_diameter(0.001, cfg), 0.55, places=6)
64
65
66if __name__ == "__main__":
67 unittest.main()
DischargeConfig _impinging_discharge()