STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
test_comps_geometry Namespace Reference

Functions

object lox ()
object _bend (**Param overrides)
object _hose (dict[str, Param]|None params=None, **object kwargs)
None test_bend_resistance_depends_on_how_tight_the_bend_is (object lox)
None test_bend_loss_has_a_minimum_near_three_diameters (object lox)
None test_a_bend_inside_its_minimum_radius_is_reported_not_enforced (object lox)
None test_a_bend_within_its_limit_reports_nothing ()
None test_no_limit_declared_means_no_claim ()
None test_routing_a_hose_tighter_costs_pressure (object lox)
None test_convoluted_hose_is_far_lossier_than_smooth_bore (object lox)
None test_end_fittings_are_reported_separately (object lox)
None test_static_and_dynamic_bend_limits_are_distinguished ()
None test_breaking_the_static_limit_is_an_error ()
None test_a_straight_hose_has_no_bend_to_check ()
None test_hose_defaults_are_flagged_as_assumptions ()

Variables

 M = Provenance.MANUFACTURER
float BORE_MM = 7.75

Detailed Description

Bends and flex hose: geometry that changes the answer.

Bend radius is not a cosmetic property. At r/D = 1 a bend carries about three
times the friction factor of a straight run and at r/D = 3 still nearly twice,
so a model that ignores how tightly a line is actually routed under-predicts its
loss substantially.

It is also a hardware limit. Tube bent inside its minimum radius thins and
ovalises; hose bent inside its minimum collapses a smooth-bore liner or fatigues
a convoluted one. Those limits are *reported*, never enforced -- a line bent too
tight is buildable, somebody will build it, and the model should still solve so
that the cost is visible.

Function Documentation

◆ _bend()

◆ _hose()

◆ lox()

object test_comps_geometry.lox ( )

Definition at line 28 of file test_comps_geometry.py.

◆ test_a_bend_inside_its_minimum_radius_is_reported_not_enforced()

None test_comps_geometry.test_a_bend_inside_its_minimum_radius_is_reported_not_enforced ( object lox)
It still solves. The violation is a statement, not a refusal.

Definition at line 89 of file test_comps_geometry.py.

References _bend().

◆ test_a_bend_within_its_limit_reports_nothing()

None test_comps_geometry.test_a_bend_within_its_limit_reports_nothing ( )

Definition at line 107 of file test_comps_geometry.py.

References _bend().

◆ test_a_straight_hose_has_no_bend_to_check()

None test_comps_geometry.test_a_straight_hose_has_no_bend_to_check ( )

Definition at line 202 of file test_comps_geometry.py.

References _hose().

◆ test_bend_loss_has_a_minimum_near_three_diameters()

None test_comps_geometry.test_bend_loss_has_a_minimum_near_three_diameters ( object lox)
A real and slightly counter-intuitive result, worth pinning.

Very tight bends lose to the turn itself; very long-radius ones lose to the
extra arc length they add. The optimum sits around r/D = 2 to 4. That this
falls out of the correlation rather than being imposed is a good sign that
the geometry is reaching it correctly.

Definition at line 69 of file test_comps_geometry.py.

References _bend().

◆ test_bend_resistance_depends_on_how_tight_the_bend_is()

None test_comps_geometry.test_bend_resistance_depends_on_how_tight_the_bend_is ( object lox)
A tight bend and a long-radius one are not the same component.

The whole reason bend radius is a first-class parameter rather than an
elbow class: a tube bent on whatever former was to hand is not a
long-radius elbow, and the difference is visible in the loss.

Definition at line 55 of file test_comps_geometry.py.

References _bend().

◆ test_breaking_the_static_limit_is_an_error()

None test_comps_geometry.test_breaking_the_static_limit_is_an_error ( )

Definition at line 189 of file test_comps_geometry.py.

References _hose().

◆ test_convoluted_hose_is_far_lossier_than_smooth_bore()

None test_comps_geometry.test_convoluted_hose_is_far_lossier_than_smooth_bore ( object lox)
The convolutions are in the flow path, not just in the braid.

Definition at line 141 of file test_comps_geometry.py.

References _hose().

◆ test_end_fittings_are_reported_separately()

None test_comps_geometry.test_end_fittings_are_reported_separately ( object lox)
On a short hose the crimped ends dominate, and that should be visible.

Rolling them into a single number would hide the case where most of a
hose's loss is its terminations -- which is the case that tells you a
shorter hose will not help.

Definition at line 153 of file test_comps_geometry.py.

References _hose().

◆ test_hose_defaults_are_flagged_as_assumptions()

None test_comps_geometry.test_hose_defaults_are_flagged_as_assumptions ( )
Roughness, convolution factor and end-fitting K are all placeholders.

Published flex-hose loss data is scarce and construction varies between
manufacturers, so these defaults are more suspect than most. A run report
should say so, which it can only do if they are tagged.

Definition at line 207 of file test_comps_geometry.py.

◆ test_no_limit_declared_means_no_claim()

None test_comps_geometry.test_no_limit_declared_means_no_claim ( )
Silence about a limit is not a pass -- it is an absence of information.

Definition at line 115 of file test_comps_geometry.py.

References _bend(), and check().

◆ test_routing_a_hose_tighter_costs_pressure()

None test_comps_geometry.test_routing_a_hose_tighter_costs_pressure ( object lox)
Curved flow is genuinely more lossy, and the whole run is curved.

Unlike a discrete bend -- where the curvature effect is already inside the
fitting correlation -- a hose bent over its length is curved everywhere, so
the friction factor itself changes.

Definition at line 123 of file test_comps_geometry.py.

References _hose().

◆ test_static_and_dynamic_bend_limits_are_distinguished()

None test_comps_geometry.test_static_and_dynamic_bend_limits_are_distinguished ( )
Inside static, outside dynamic -- the case worth surfacing.

Whether a run actually flexes in service is a fact about the installation
that the model does not know, so this is a warning rather than an error.
Silently passing it would lose the one piece of information that matters.

Definition at line 169 of file test_comps_geometry.py.

References _hose().

Variable Documentation

◆ BORE_MM

float test_comps_geometry.BORE_MM = 7.75

Definition at line 24 of file test_comps_geometry.py.

◆ M

test_comps_geometry.M = Provenance.MANUFACTURER

Definition at line 23 of file test_comps_geometry.py.