46 P_O = cfg.lox_tank.initial_pressure_psi * _PSI
47 P_F = cfg.fuel_tank.initial_pressure_psi * _PSI
51 t = np.array([0.0, 0.05])
53 t, np.array([P_O, P_O]), np.array([P_F, P_F]), use_coupled_solver=
True)
58 assert abs(float(tv[
"Pc"][0]) / float(steady[
"Pc"]) - 1.0) < 1e-3
59 assert abs(float(tv[
"mdot_total"][0]) / float(steady[
"mdot_total"]) - 1.0) < 1e-3
61 F_tv = float(tv[
"F"][0])
62 F_st = float(steady[
"F"])
64 Ae = float(cfg.chamber_geometry.A_exit)
65 offset_if_sea_level = (101325.0 - compute_ambient_pressure_from_elevation(626.67)) * Ae
66 assert abs(F_tv - F_st) < 0.1 * offset_if_sea_level, (
67 f
"t=0 thrust disagrees: time-varying {F_tv:.2f} N vs steady {F_st:.2f} N "
68 f
"(a sea-level ambient would put them {offset_if_sea_level:.2f} N apart)")
72 """Passing P_ambient must override the site elevation in both paths alike."""
73 P_O = cfg.lox_tank.initial_pressure_psi * _PSI
74 P_F = cfg.fuel_tank.initial_pressure_psi * _PSI
76 steady =
PintleEngineRunner(copy.deepcopy(cfg)).evaluate(P_O, P_F, P_ambient=Pa, silent=
True)
77 t = np.array([0.0, 0.05])
79 t, np.array([P_O, P_O]), np.array([P_F, P_F]), P_ambient=Pa, use_coupled_solver=
True)
80 assert abs(float(tv[
"F"][0]) - float(steady[
"F"])) < 0.5