55 g = cfg.injector.geometry
56 rho_O, rho_F = cfg.fluids[
"oxidizer"].density, cfg.fluids[
"fuel"].density
57 nO, nF = g.oxidizer.n_elements, g.fuel.n_elements
58 return (rho_F / rho_O) * ((mdot_O / nO) / (mdot_F / nF)) ** 2 * (g.fuel.d_jet / g.oxidizer.d_jet) ** 3
61@pytest.fixture(scope="module")
95 """Same injector dp on both sides, larger LOX hole: M grows with d_O, R does not see it."""
97 rho_O, rho_F, dp = 1140.0, 789.0, 900e3
98 v =
lambda rho: 0.8 * math.sqrt(2.0 * dp / rho)
99 for dO
in (1.4e-3, 1.55e-3, 1.7e-3):
100 M = rupe_mixing_ratio(rho_O, v(rho_O), dO, rho_F, v(rho_F), 1.42e-3)
101 assert M == pytest.approx(dO / 1.42e-3, rel=1e-12)
102 assert momentum_ratio_R_from_bulk_velocities(rho_O, rho_F, v(rho_O), v(rho_F)) == pytest.approx(1.0)