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

Functions

 _rocketcea ()
 _synthetic_cstar (Pc=2.2e6)
 _wide_or_skip ()
 test_rupe_Em_is_tr_32_1546_eq_1 ()
 test_the_stream_tubes_reproduce_the_Em_they_were_built_from (dist, R, Em)
 test_a_wide_gaussian_is_clipped_at_pure_propellant_and_says_so ()
 test_Em_falloff_follows_rupes_correlation ()
 test_stream_tube_integral_matches_direct_cea_quadrature (key)
 test_perfect_mixing_is_exactly_one_and_striation_is_integrated ()
 _advanced (diag_extra=None, cfg=None, cstar_fn=None, fuel_props=None, ox_props=None)
 test_mixing_is_the_stream_tube_integral_of_rupes_Em_and_reports_both ()
 test_retired_mixing_knobs_do_nothing ()
 test_injector_element_striation_enters_eta_mix ()
 test_cstar_beyond_the_table_is_extended_and_recorded_not_clamped ()
 test_dilution_law_beats_clamping_against_cea ()
 test_wide_table_is_cea ()
 _vap (diag_extra=None, cstar_fn=None, **kw)
 test_the_march_starts_where_the_sheet_breaks_into_drops ()
 test_vaporized_gas_is_charged_at_its_own_mixture_ratio ()
 test_blowing_factors_are_the_published_forms ()
 _single_drop_reference (bool blowing, I_heat=None)
 test_march_with_blowing_matches_an_independent_integration (blowing)
 test_blowing_changes_the_answer ()
 test_heatup_uses_the_liquids_own_cp_and_density ()
 test_march_heatup_integral_is_the_constant_cp_log_when_cp_is_constant ()
 test_coolprop_liquid_properties_reach_the_march ()

Variables

float PSI = 6894.757293168361
float R_U = 8314.462618
list FIG1_MEAN_LINE
dict CEA_MIX = {(1.277, 0.85): (0.95140, 0.96101), (1.5, 0.85): (0.95227, 0.96213)}
 _GAS = dict(Pc=2.92e6, Tc=3226.0, gamma=1.1375, R=373.57, m_dot_total=2.718, Ac=math.pi * 0.0635 ** 2)

Detailed Description

Mixing, vaporization and drop-size physics against references outside the code.

    eta_mix = sum_i w_i c*(O/F_i) / c*(O/F)      stream tubes (Pieper, Dean & Valentine, JSR 4(6) 1967)
    E_m     = 1 - sum_{r<R} w (R-r)/R - sum_{r>R} w (r-R)/(1-R)       Rupe (JPL TR 32-1546 eq. 1)
    eta_vap = F c*(O/F_vap) / c*(O/F)            Priem & Heidmann (NASA TR R-67)

References: rocketcea (LOX / Ethanol cards, the ones the CEA cache is built from), CoolProp, JPL TR
32-1546 Fig. 1 digitized, Abramzon & Sirignano (1989), Yuen & Chen (1976), and an independent scipy
integration of the drop equations. Numbers that need rocketcea are pinned for CI.

Function Documentation

◆ _advanced()

test_spray_mixing_physics._advanced ( diag_extra = None,
cfg = None,
cstar_fn = None,
fuel_props = None,
ox_props = None )
protected

◆ _rocketcea()

test_spray_mixing_physics._rocketcea ( )
protected

◆ _single_drop_reference()

test_spray_mixing_physics._single_drop_reference ( bool blowing,
I_heat = None )
protected
The march's documented equations for a trace stream in burned gas (U_g = U_c), integrated by
scipy for 96 size classes, with the Stefan-flow corrections applied while the drop evaporates.

Definition at line 268 of file test_spray_mixing_physics.py.

References max.

Referenced by test_blowing_changes_the_answer(), test_march_heatup_integral_is_the_constant_cp_log_when_cp_is_constant(), and test_march_with_blowing_matches_an_independent_integration().

◆ _synthetic_cstar()

◆ _vap()

test_spray_mixing_physics._vap ( diag_extra = None,
cstar_fn = None,
** kw )
protected

◆ _wide_or_skip()

test_spray_mixing_physics._wide_or_skip ( )
protected

◆ test_a_wide_gaussian_is_clipped_at_pure_propellant_and_says_so()

test_spray_mixing_physics.test_a_wide_gaussian_is_clipped_at_pure_propellant_and_says_so ( )
E_m 0.7 about r = 0.4 puts the normal's lean tail 2.2 sigma from pure fuel.

Definition at line 68 of file test_spray_mixing_physics.py.

References _synthetic_cstar().

◆ test_blowing_changes_the_answer()

test_spray_mixing_physics.test_blowing_changes_the_answer ( )

Definition at line 334 of file test_spray_mixing_physics.py.

References _single_drop_reference().

◆ test_blowing_factors_are_the_published_forms()

test_spray_mixing_physics.test_blowing_factors_are_the_published_forms ( )

Definition at line 256 of file test_spray_mixing_physics.py.

◆ test_coolprop_liquid_properties_reach_the_march()

test_spray_mixing_physics.test_coolprop_liquid_properties_reach_the_march ( )

Definition at line 373 of file test_spray_mixing_physics.py.

References _vap().

◆ test_cstar_beyond_the_table_is_extended_and_recorded_not_clamped()

test_spray_mixing_physics.test_cstar_beyond_the_table_is_extended_and_recorded_not_clamped ( )
A CEA cache spanning O/F 1.0-2.5 used to clamp: every lean tail tube got c*(1.0).

Definition at line 172 of file test_spray_mixing_physics.py.

References _advanced(), max, and min.

◆ test_dilution_law_beats_clamping_against_cea()

test_spray_mixing_physics.test_dilution_law_beats_clamping_against_cea ( )

Definition at line 189 of file test_spray_mixing_physics.py.

References _rocketcea().

◆ test_Em_falloff_follows_rupes_correlation()

test_spray_mixing_physics.test_Em_falloff_follows_rupes_correlation ( )
N_R = M/(1+M) (TR 32-1546 eq. 2 with 1 = fuel). With the figure's own peak (77.2 at N_R 0.525)
the default curvature reproduces the digitized mean line within 3 points (data scatter +-5).

Definition at line 82 of file test_spray_mixing_physics.py.

◆ test_heatup_uses_the_liquids_own_cp_and_density()

test_spray_mixing_physics.test_heatup_uses_the_liquids_own_cp_and_density ( )

Definition at line 343 of file test_spray_mixing_physics.py.

◆ test_injector_element_striation_enters_eta_mix()

test_spray_mixing_physics.test_injector_element_striation_enters_eta_mix ( )

Definition at line 157 of file test_spray_mixing_physics.py.

References _advanced(), and _synthetic_cstar().

◆ test_march_heatup_integral_is_the_constant_cp_log_when_cp_is_constant()

test_spray_mixing_physics.test_march_heatup_integral_is_the_constant_cp_log_when_cp_is_constant ( )

Definition at line 359 of file test_spray_mixing_physics.py.

References _single_drop_reference().

◆ test_march_with_blowing_matches_an_independent_integration()

test_spray_mixing_physics.test_march_with_blowing_matches_an_independent_integration ( blowing)

Definition at line 326 of file test_spray_mixing_physics.py.

References _single_drop_reference().

◆ test_mixing_is_the_stream_tube_integral_of_rupes_Em_and_reports_both()

test_spray_mixing_physics.test_mixing_is_the_stream_tube_integral_of_rupes_Em_and_reports_both ( )

Definition at line 141 of file test_spray_mixing_physics.py.

References _advanced(), and _synthetic_cstar().

◆ test_perfect_mixing_is_exactly_one_and_striation_is_integrated()

test_spray_mixing_physics.test_perfect_mixing_is_exactly_one_and_striation_is_integrated ( )

Definition at line 111 of file test_spray_mixing_physics.py.

References _synthetic_cstar().

◆ test_retired_mixing_knobs_do_nothing()

test_spray_mixing_physics.test_retired_mixing_knobs_do_nothing ( )

Definition at line 151 of file test_spray_mixing_physics.py.

References _advanced().

◆ test_rupe_Em_is_tr_32_1546_eq_1()

test_spray_mixing_physics.test_rupe_Em_is_tr_32_1546_eq_1 ( )
Four tubes about R = 0.6, by hand: lean (0.5, 0.2) and (0.55, 0.3), rich (0.7, 0.4), (0.8, 0.1).

Definition at line 50 of file test_spray_mixing_physics.py.

◆ test_stream_tube_integral_matches_direct_cea_quadrature()

test_spray_mixing_physics.test_stream_tube_integral_matches_direct_cea_quadrature ( key)

Definition at line 102 of file test_spray_mixing_physics.py.

References _wide_or_skip().

◆ test_the_march_starts_where_the_sheet_breaks_into_drops()

test_spray_mixing_physics.test_the_march_starts_where_the_sheet_breaks_into_drops ( )

Definition at line 231 of file test_spray_mixing_physics.py.

References _vap().

◆ test_the_stream_tubes_reproduce_the_Em_they_were_built_from()

test_spray_mixing_physics.test_the_stream_tubes_reproduce_the_Em_they_were_built_from ( dist,
R,
Em )

Definition at line 61 of file test_spray_mixing_physics.py.

References _synthetic_cstar().

◆ test_vaporized_gas_is_charged_at_its_own_mixture_ratio()

test_spray_mixing_physics.test_vaporized_gas_is_charged_at_its_own_mixture_ratio ( )

Definition at line 239 of file test_spray_mixing_physics.py.

References _synthetic_cstar(), and _vap().

◆ test_wide_table_is_cea()

test_spray_mixing_physics.test_wide_table_is_cea ( )

Definition at line 204 of file test_spray_mixing_physics.py.

References _rocketcea(), and _wide_or_skip().

Variable Documentation

◆ _GAS

test_spray_mixing_physics._GAS = dict(Pc=2.92e6, Tc=3226.0, gamma=1.1375, R=373.57, m_dot_total=2.718, Ac=math.pi * 0.0635 ** 2)
protected

Definition at line 265 of file test_spray_mixing_physics.py.

◆ CEA_MIX

dict test_spray_mixing_physics.CEA_MIX = {(1.277, 0.85): (0.95140, 0.96101), (1.5, 0.85): (0.95227, 0.96213)}

Definition at line 98 of file test_spray_mixing_physics.py.

◆ FIG1_MEAN_LINE

list test_spray_mixing_physics.FIG1_MEAN_LINE
Initial value:
1= [(0.26, 44.3), (0.28, 48.5), (0.30, 53.8), (0.35, 62.3), (0.40, 70.3), (0.45, 75.7),
2 (0.50, 77.7), (0.55, 77.7), (0.60, 74.4), (0.65, 68.5), (0.70, 60.5), (0.75, 53.7),
3 (0.78, 48.6)]

Definition at line 77 of file test_spray_mixing_physics.py.

◆ PSI

float test_spray_mixing_physics.PSI = 6894.757293168361

Definition at line 21 of file test_spray_mixing_physics.py.

◆ R_U

float test_spray_mixing_physics.R_U = 8314.462618

Definition at line 22 of file test_spray_mixing_physics.py.