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

Functions

Dict[str, object] carbon_oxidation (float T_s, float P_static, Dict[str, float] composition, float MW_mix, float g0, GraphiteInsertConfig cfg)
Dict[str, object] graphite_surface_state (float T_s, gas, contour, Dict[str, float] composition, GraphiteInsertConfig cfg)
float calculate_throat_heuristic_multiplier (float chamber_pressure, float chamber_velocity, float throat_velocity, float chamber_heat_flux, float gamma=1.2)
Dict[str, float] compute_graphite_recession (float net_heat_flux, float throat_temperature, float gas_temperature, GraphiteInsertConfig graphite_config, float throat_area, float pressure, Optional[float] gas_density=None, Optional[float] gas_viscosity=None, Optional[float] oxygen_mass_fraction=None, Optional[float] characteristic_length=None, Optional[float] gas_velocity=None, Optional[float] heat_transfer_coefficient=None, Optional[float] backside_temperature=None, Optional[float] effective_thickness=None, gas_state=None, contour=None, Optional[Dict[str, float]] throat_composition=None)

Variables

float R_GAS = 8.314462618
float MW_C = 12.0107
float ATM = 101325.0
dict CARBON_OXIDISERS

Detailed Description

Graphite throat insert: surface chemistry and recession.

The throat oxidisers of a LOX/hydrocarbon engine are H2O, CO2 and OH; their reactions with
carbon are endothermic. See carbon_oxidation.

Function Documentation

◆ calculate_throat_heuristic_multiplier()

float engine.pipeline.thermal.graphite_cooling.calculate_throat_heuristic_multiplier ( float chamber_pressure,
float chamber_velocity,
float throat_velocity,
float chamber_heat_flux,
float gamma = 1.2 )
Calculate throat recession multiplier based on local flow conditions using a heuristic scaling.

Throat recession is typically 1.2-2.5x higher than chamber due to:
1. Higher velocity → Higher convective heat transfer
2. Sonic conditions → Maximum heat flux
3. Pressure gradient → Enhanced mass transfer
4. Turbulence amplification near throat

Heuristic scaling for heat flux ratio:
    q_throat / q_chamber ∝ (V_throat / V_chamber)^0.8 × (P_throat / P_chamber)^0.2

WARNING: This is not a formal Bartz correlation. Real throat heat transfer depends on 
geometry (D_t, curvature), viscosity/Pr, and boundary layer state. If 
heat_transfer_coefficient at the throat is already available from a CFD or 
boundary-layer code, this heuristic multiplier should not be used.

Parameters:
-----------
chamber_pressure : float
    Chamber pressure [Pa]
chamber_velocity : float
    Chamber gas velocity [m/s]
throat_velocity : float
    Throat gas velocity (sonic) [m/s]
chamber_heat_flux : float
    Chamber wall heat flux [W/m²] (used for validation, not in calculation)
gamma : float
    Specific heat ratio

Returns:
--------
multiplier : float
    Throat recession multiplier (typically 1.2-2.5)

Definition at line 91 of file graphite_cooling.py.

◆ carbon_oxidation()

Dict[str, object] engine.pipeline.thermal.graphite_cooling.carbon_oxidation ( float T_s,
float P_static,
Dict[str, float] composition,
float MW_mix,
float g0,
GraphiteInsertConfig cfg )
Carbon mass flux [kg/(m^2 s)] off a graphite surface at T_s and the heat it absorbs.

Each oxidiser attacks at 1/(1/m_kin + 1/m_diff). Diffusion limit (unit Lewis number,
film theory): m_diff = g * MW_C nu X / MW_mix with g the mass-transfer conductance h/cp,
reduced by blowing g = g0 ln(1+B)/B, B = m_C/g0. Kinetics (Bradley et al. 1984, via
Thakre & Yang, J. Propulsion Power 24(4), 2008): A T^b exp(-E/RT) p^n, p in atm;
O2 and O are diffusion-limited.

Definition at line 31 of file graphite_cooling.py.

References max.

Referenced by graphite_surface_state().

◆ compute_graphite_recession()

Dict[str, float] engine.pipeline.thermal.graphite_cooling.compute_graphite_recession ( float net_heat_flux,
float throat_temperature,
float gas_temperature,
GraphiteInsertConfig graphite_config,
float throat_area,
float pressure,
Optional[float] gas_density = None,
Optional[float] gas_viscosity = None,
Optional[float] oxygen_mass_fraction = None,
Optional[float] characteristic_length = None,
Optional[float] gas_velocity = None,
Optional[float] heat_transfer_coefficient = None,
Optional[float] backside_temperature = None,
Optional[float] effective_thickness = None,
gas_state = None,
contour = None,
Optional[Dict[str, float]] throat_composition = None )
Carbon recession of the graphite throat at the surface temperature ``throat_temperature``.

The surface temperature is an INPUT: it comes from the insert's transient conduction
(engine.pipeline.thermal.wall_conduction), not from a guess. Chemistry is
graphite_surface_state: H2O, CO2, OH, O2 and O from the CEA throat composition, each at
the lesser of its kinetic and diffusion-limited rate. ``gas_state`` is a
gas_side.HotGasState, ``contour`` a gas_side.WallContour and ``throat_composition`` the
CEA throat mole fractions with the throat 'MW'. The older arguments (net_heat_flux,
gas_density, oxygen_mass_fraction, ...) are accepted and unused. With
``simplified_graphite_oxidation`` the configured constant rate is returned instead.

Definition at line 160 of file graphite_cooling.py.

References graphite_surface_state().

◆ graphite_surface_state()

Dict[str, object] engine.pipeline.thermal.graphite_cooling.graphite_surface_state ( float T_s,
gas,
contour,
Dict[str, float] composition,
GraphiteInsertConfig cfg )
Gas-side balance at the throat for a graphite surface at T_s: Bartz convection (blown),
gas radiation, and the heat the surface chemistry absorbs. q_net goes into the insert.

Definition at line 73 of file graphite_cooling.py.

References carbon_oxidation().

Referenced by compute_graphite_recession().

Variable Documentation

◆ ATM

float engine.pipeline.thermal.graphite_cooling.ATM = 101325.0

Definition at line 15 of file graphite_cooling.py.

◆ CARBON_OXIDISERS

dict engine.pipeline.thermal.graphite_cooling.CARBON_OXIDISERS
Initial value:
1= {
2 "H2O": (1.0, +10.93e6),
3 "CO2": (1.0, +14.36e6),
4 "OH": (1.0, +5.67e6),
5 "O2": (2.0, -9.20e6),
6 "O": (1.0, -29.95e6),
7}

Definition at line 22 of file graphite_cooling.py.

◆ MW_C

float engine.pipeline.thermal.graphite_cooling.MW_C = 12.0107

Definition at line 14 of file graphite_cooling.py.

◆ R_GAS

float engine.pipeline.thermal.graphite_cooling.R_GAS = 8.314462618

Definition at line 13 of file graphite_cooling.py.