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

Functions

 test_published_anchors (r_over_d, l_over_d, expected, label)
 test_thin_plate_and_drilled_hole_are_not_the_same_number ()
 test_length_factor_peaks_in_the_lichtarowicz_band ()
 test_rounding_saturates ()
 test_every_named_geometry_is_reachable_and_ordered (name)
 test_unset_leaves_the_old_path_untouched ()
 test_filleting_one_side_is_a_real_trim ()
 test_unknown_geometry_is_loud ()

Variables

 _BASE

Detailed Description

Cd comes from the orifice INLET and its L/d, and it is a per-side design knob.

Two things this pins down.

1. THE ANCHORS. The widely-quoted "sharp-edged orifice, Cd = 0.61" is the THIN-PLATE value
   (L/d -> 0), where the jet leaves at the vena contracta and never recovers. The same sharp
   entry on a normally drilled hole (L/d 2-5) reattaches inside the bore and recovers to
   ~0.80. Conflating them under-predicts a real injector's flow by ~24%, which is the same
   class of error as the Cd-reduction loop this codebase already had.

   Sources: Huzel & Huang, "Modern Engineering for Design of Liquid-Propellant Rocket
   Engines" (injector orifice Cd table); Lichtarowicz, Duggins & Markland (1965),
   "Discharge Coefficients for Incompressible Non-Cavitating Flow through Long Orifices"
   (Cd peaks near L/d ~ 2, Re-independent above ~1e4); Nurick (1976) on inlet condition and
   cavitation inception.

2. IT IS A KNOB. `discharge.oxidizer` and `discharge.fuel` are separate config blocks, so
   filleting only ONE side's inlet raises that propellant's Cd and moves the momentum ratio
   / O/F without touching hole size, element count or angles.

Function Documentation

◆ test_every_named_geometry_is_reachable_and_ordered()

test_orifice_inlet_geometry_cd.test_every_named_geometry_is_reachable_and_ordered ( name)

Definition at line 75 of file test_orifice_inlet_geometry_cd.py.

◆ test_filleting_one_side_is_a_real_trim()

test_orifice_inlet_geometry_cd.test_filleting_one_side_is_a_real_trim ( )
The knob: same hole, same dP, one side filleted -> that side flows measurably more.

Definition at line 89 of file test_orifice_inlet_geometry_cd.py.

◆ test_length_factor_peaks_in_the_lichtarowicz_band()

test_orifice_inlet_geometry_cd.test_length_factor_peaks_in_the_lichtarowicz_band ( )
Cd rises to a maximum near L/d ~ 2 and falls slowly after; it does not rise forever.

Definition at line 56 of file test_orifice_inlet_geometry_cd.py.

◆ test_published_anchors()

test_orifice_inlet_geometry_cd.test_published_anchors ( r_over_d,
l_over_d,
expected,
label )

Definition at line 44 of file test_orifice_inlet_geometry_cd.py.

◆ test_rounding_saturates()

test_orifice_inlet_geometry_cd.test_rounding_saturates ( )
Past r/d ~ 0.2 rounding buys almost nothing -- why bellmouths are specified there.

Definition at line 65 of file test_orifice_inlet_geometry_cd.py.

◆ test_thin_plate_and_drilled_hole_are_not_the_same_number()

test_orifice_inlet_geometry_cd.test_thin_plate_and_drilled_hole_are_not_the_same_number ( )
The 24% gap is the whole point -- if these collapse, the model has lost the physics.

Definition at line 49 of file test_orifice_inlet_geometry_cd.py.

◆ test_unknown_geometry_is_loud()

test_orifice_inlet_geometry_cd.test_unknown_geometry_is_loud ( )

Definition at line 99 of file test_orifice_inlet_geometry_cd.py.

◆ test_unset_leaves_the_old_path_untouched()

test_orifice_inlet_geometry_cd.test_unset_leaves_the_old_path_untouched ( )
Opt-in: a config that declares no inlet geometry must behave exactly as before.

Definition at line 82 of file test_orifice_inlet_geometry_cd.py.

Variable Documentation

◆ _BASE

test_orifice_inlet_geometry_cd._BASE
protected
Initial value:
1= dict(Cd_inf=0.60, a_Re=0.18, Cd_min=0.35, use_geometry_cd=True, d_ref_m=0.002,
2 cd_small_hole_exponent=0.20, cd_large_hole_log_gain=0.015,
3 cd_inf_max=0.62, cd_inf_min_geom=0.48)

Definition at line 34 of file test_orifice_inlet_geometry_cd.py.