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
3
import
math
4
import
unittest
5
6
from
engine.core.discharge
import
(
7
cd_from_re,
8
cd_inf_from_orifice_diameter,
9
discharge_cd_inf_ratio,
10
)
11
from
engine.pipeline.config_schemas
import
DischargeConfig
12
13
14
def
_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
29
class
TestDischargeGeometry
(unittest.TestCase):
30
def
test_baseline_at_d_ref
(self):
31
cfg =
_impinging_discharge
()
32
self.assertAlmostEqual(cd_inf_from_orifice_diameter(0.002, cfg), 0.6, places=6)
33
34
def
test_smaller_hole_penalty
(self):
35
cfg =
_impinging_discharge
()
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
40
def
test_larger_hole_mild_increase_capped
(self):
41
cfg =
_impinging_discharge
()
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
46
def
test_matched_hole_style_similar_cd_ratio_at_mr_scaled_jets
(self):
47
"""MR-rescaled O/F jets differ in d; Cd_inf tracks diameter (ratio stays O(1))."""
48
cfg =
_impinging_discharge
()
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
53
def
test_cd_from_re_uses_geometry_ceiling
(self):
54
cfg =
_impinging_discharge
()
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
61
def
test_geometry_disabled_returns_baseline
(self):
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
66
if
__name__ ==
"__main__"
:
67
unittest.main()
engine.pipeline.config_schemas.DischargeConfig
Definition
config_schemas.py:694
test_discharge_geometry.TestDischargeGeometry
Definition
test_discharge_geometry.py:29
test_discharge_geometry.TestDischargeGeometry.test_larger_hole_mild_increase_capped
test_larger_hole_mild_increase_capped(self)
Definition
test_discharge_geometry.py:40
test_discharge_geometry.TestDischargeGeometry.test_smaller_hole_penalty
test_smaller_hole_penalty(self)
Definition
test_discharge_geometry.py:34
test_discharge_geometry.TestDischargeGeometry.test_geometry_disabled_returns_baseline
test_geometry_disabled_returns_baseline(self)
Definition
test_discharge_geometry.py:61
test_discharge_geometry.TestDischargeGeometry.test_matched_hole_style_similar_cd_ratio_at_mr_scaled_jets
test_matched_hole_style_similar_cd_ratio_at_mr_scaled_jets(self)
Definition
test_discharge_geometry.py:46
test_discharge_geometry.TestDischargeGeometry.test_baseline_at_d_ref
test_baseline_at_d_ref(self)
Definition
test_discharge_geometry.py:30
test_discharge_geometry.TestDischargeGeometry.test_cd_from_re_uses_geometry_ceiling
test_cd_from_re_uses_geometry_ceiling(self)
Definition
test_discharge_geometry.py:53
engine.core.discharge
Definition
discharge.py:1
engine.pipeline.config_schemas
Definition
config_schemas.py:1
test_discharge_geometry._impinging_discharge
DischargeConfig _impinging_discharge()
Definition
test_discharge_geometry.py:14
EngineDesign
tests
test_discharge_geometry.py
Generated by
1.15.0