2Physical and engineering constants used throughout the pintle engine pipeline.
4This module centralizes all magic numbers and default values to improve maintainability
5and make the physical meaning of constants explicit.
7⚠️ IMPORTANT: DEPRECATED DEFAULT/FALLBACK CONSTANTS ⚠️
8===========================================================
9Many constants in this file with names starting with DEFAULT_* or FALLBACK_*
10are DEPRECATED and should NOT be used to hide missing values or failed calculations.
12WRONG usage (DO NOT DO THIS):
13 gamma = cea_props.get("gamma", DEFAULT_GAMMA_ND) # WRONG!
14 density = max(calculated_density, MIN_DENS_KG_M3) # WRONG!
17 if "gamma" not in cea_props:
18 raise KeyError("Missing gamma in CEA properties")
19 gamma = cea_props["gamma"]
20 if not (1.0 < gamma < 2.0):
21 raise ValueError(f"Invalid gamma: {gamma}")
23These constants should only be used for:
241. Physical limits (e.g., GRAVITATIONAL_ACCEL_M_S2)
252. Model parameters explicitly chosen by design (not fallbacks)
263. Testing with explicit test data
27===========================================================
30- All constants include units in their names (e.g., _K, _PA, _M, _M_S)
31- Dimensionless constants use _ND suffix (non-dimensional)
32- This prevents unit confusion and makes conversions explicit
41STEFAN_BOLTZMANN_W_M2_K4 = 5.670374419e-8
45UNIVERSAL_GAS_CONST_J_KMOL_K = 8314.462618
49GRAVITATIONAL_ACCEL_M_S2 = 9.80665
67DEFAULT_GAS_CONST_J_KG_K = 350.0
73DEFAULT_CHAMBER_TEMP_K = 3500.0
79DEFAULT_CSTAR_IDEAL_M_S = 1800.0
83DEFAULT_MIXTURE_RATIO_ND = 2.5
87DEFAULT_CHAMBER_PRESS_PA = 4.0e6
94DEFAULT_COOLANT_SPEC_HEAT_J_KG_K = 2000.0
95DEFAULT_COOLANT_THERMAL_COND_W_M_K = 0.1
96DEFAULT_COOLANT_DENS_KG_M3 = 700.0
97DEFAULT_COOLANT_TEMP_K = 300.0
100DEFAULT_FUEL_DENS_KG_M3 = 810.0
101DEFAULT_FUEL_BOILING_POINT_K = 489.0
104DEFAULT_LOX_DENS_KG_M3 = 1140.0
107DEFAULT_HOT_GAS_VISC_PA_S = 4.0e-5
108DEFAULT_HOT_GAS_THERMAL_COND_W_M_K = 0.1
109DEFAULT_HOT_GAS_PRANDTL_ND = 0.7
116DEFAULT_EMISSIVITY_ND = 0.8
117DEFAULT_VIEW_FACTOR_ND = 1.0
121DEFAULT_TURBULENCE_INTENSITY_ND = 0.08
122DEFAULT_TURBULENCE_INTENSITY_COOLANT_ND = 0.05
130NU_TURBULENT_COEFFICIENT_ND = 0.023
131NU_TURBULENT_RE_EXPONENT_ND = 0.8
132NU_TURBULENT_PR_EXPONENT_ND = 0.4
139DEFAULT_RECOVERY_FACTOR_ND = 0.94
148DEFAULT_CHAMBER_LEN_M = 0.1
152DEFAULT_CHAMBER_DIAM_M = 0.08
156DEFAULT_THROAT_AREA_M2 = 1e-3
160DEFAULT_THROAT_DIAM_M = 0.033
172ACTIVATION_ENERGY_HC_J_MOL = 80000.0
173ACTIVATION_ENERGY_H2_J_MOL = 40000.0
177PRE_EXPONENTIAL_HC_1_S = 1e7
178PRE_EXPONENTIAL_H2_1_S = 1e9
181PRESSURE_EXPONENT_HC_ND = 0.8
182PRESSURE_EXPONENT_H2_ND = 0.5
183PRESSURE_EXPONENT_PRE_FACTOR_ND = 0.3
187DEFAULT_REACTION_TIME_REF_S = 0.005
191EA_NORM_FUEL_RICH_ND = 12.0
192EA_NORM_STOICHIOMETRIC_ND = 10.0
193EA_NORM_OXIDIZER_RICH_ND = 8.0
200DEFAULT_ABLATOR_DENS_KG_M3 = 1600.0
201DEFAULT_ABLATOR_THERMAL_COND_W_M_K = 0.35
202DEFAULT_ABLATOR_SPEC_HEAT_J_KG_K = 1500.0
203DEFAULT_ABLATOR_INIT_THICK_M = 0.01
204DEFAULT_ABLATOR_SURF_TEMP_LIMIT_K = 1200.0
205DEFAULT_ABLATOR_PYROLYSIS_TEMP_K = 900.0
206DEFAULT_ABLATOR_BLOWING_EFF_ND = 0.8
207DEFAULT_ABLATOR_CHAR_LAYER_COND_W_M_K = 0.2
208DEFAULT_ABLATOR_CHAR_LAYER_THICK_M = 0.001
212DEFAULT_HEAT_ABLATION_J_KG = 2.5e6
215DEFAULT_THROAT_RECESSION_MULT_ND = 1.3
221DEFAULT_GRAPHITE_DENS_KG_M3 = 1800.0
222DEFAULT_GRAPHITE_THERMAL_COND_W_M_K = 100.0
223DEFAULT_GRAPHITE_SURF_TEMP_LIMIT_K = 2500.0
224DEFAULT_GRAPHITE_OXIDATION_TEMP_K = 800.0
225DEFAULT_GRAPHITE_OXIDATION_RATE_M_S = 1e-6
226DEFAULT_GRAPHITE_CHAR_LAYER_COND_W_M_K = 5.0
227DEFAULT_GRAPHITE_CHAR_LAYER_THICK_M = 0.0005
233DEFAULT_FILM_MASS_FRAC_ND = 0.05
234DEFAULT_FILM_EFF_REF_ND = 0.4
235DEFAULT_FILM_DECAY_LEN_M = 0.1
236DEFAULT_FILM_REF_BLOWING_RATIO_ND = 0.5
237DEFAULT_FILM_BLOWING_EXP_ND = 0.6
238DEFAULT_FILM_REF_WALL_TEMP_K = 1100.0
246DEFAULT_SMD_M = 100e-6
250DEFAULT_EVAPORATION_LEN_M = 0.1
253DEFAULT_WEBER_MIN_ND = 15.0
294MIN_VELOCITY_M_S = 0.0
298FALLBACK_DENS_KG_M3 = 1.0
299FALLBACK_SOUND_SPEED_M_S = 1000.0
300FALLBACK_VELOCITY_M_S = 50.0
301FALLBACK_MACH_NUMBER_ND = 0.01
302FALLBACK_RESIDENCE_TIME_S = 0.001
303FALLBACK_REYNOLDS_NUMBER_ND = 10000.0
310CRITICAL_DAMPING_RATIO_ND = 0.05
313DEFAULT_FEED_LENGTH_M = 1.0
314DEFAULT_FEED_DIAMETER_M = 0.01
318DEFAULT_CHAMBER_TIME_CONST_S = 0.01
326DEFAULT_EFFICIENCY_C_ND = 0.3
327DEFAULT_EFFICIENCY_K_ND = 0.15
330DEFAULT_FROZEN_FLOW_PARAM_ND = 0.1
337DEFAULT_DECAY_CONST_ND = 3.0
340DEFAULT_POWER_EXP_ND = 2.0
347K_ENTRANCE_SHARP_ND = 0.5
354FEET_TO_METERS = 0.3048
358RANKINE_PER_KELVIN = 1.8
365LBM_PER_IN_S_TO_PA_S = 0.45359237 / 0.0254
367LB_S_PER_IN2_TO_PA_S = 6894.76
374DEFAULT_MIXING_EFFICIENCY_ND = 1.0
375DEFAULT_TURBULENCE_EFFICIENCY_ND = 0.9
378DEFAULT_SMD_FACTOR_ND = 0.5
379DEFAULT_EVAP_FACTOR_ND = 0.5
386DEFAULT_PROGRESS_INJECTION_ND = 0.0
387DEFAULT_PROGRESS_MID_ND = 0.5
388DEFAULT_PROGRESS_THROAT_ND = 1.0
395STANDARD_ATMOSPHERE_PRESS_PA = 101325.0
396STANDARD_AMBIENT_TEMP_K = 300.0
404FEED_LINE_D_3_8_IN_NOMINAL_M = (3.0 / 8.0) * 25.4e-3
411FEED_LINE_DUAL_3_8_EQUIVALENT_D_INLET_M = FEED_LINE_D_3_8_IN_NOMINAL_M * (2.0 ** 0.5)
414FEED_LINE_DUAL_3_8_EQUIVALENT_A_HYDRAULIC_M2 = 2.0 * 3.141592653589793 * (
415 FEED_LINE_D_3_8_IN_NOMINAL_M / 2.0