Aerodynamic Heating (aerodynamics/high-speed/aerodynamic-heating)
Use when you must estimate the aerodynamic heating at the stagnation point
of a hypersonic body: correlation-level convective heating from the
Sutton-Graves model, the radiation-equilibrium wall temperature it implies,
and the nose-radius bluntness trade that drives thermal protection material
selection. This leaf implements the Sutton-Graves stagnation-point
correlation and the Stefan-Boltzmann radiation balance in pure Python,
stdlib only, for flight at a fixed point (constant freestream density and
velocity). It pairs with aerodynamics/high-speed/hypersonic-flow for the
hypersonic flight environment context and with
structures/thermal-structures/thermal-stress-analysis when the wall
temperature feeds a structural thermal analysis.
Domain quick reference
- Sutton-Graves stagnation heat flux: q_s = C_SG * sqrt(rho / R_n) * V**3,
with C_SG = 1.83e-4 (air correlation constant, SI units arranged so q_s
is in W/m2), rho the freestream density in kg/m3, R_n the nose radius in
m and V the flight velocity in m/s. The correlation captures the
convective heating of the thin shock layer ahead of a blunt body at
hypersonic speed.
- Radiation-equilibrium wall temperature: T_w = (q / (eps * sigma))0.25,
from the steady balance q = eps * sigma * T_w4 with sigma =
5.670374419e-8 W/m2/K4 (Stefan-Boltzmann) and eps the surface
emissivity, default 0.85 for typical thermal protection surfaces.
- Nose-radius scaling: q scales as sqrt(1 / R_n) at fixed rho and V, so
doubling the nose radius divides the flux by sqrt(2) (factor 0.7071)
and halving it multiplies the flux by sqrt(2) (factor 1.4142). Blunter
bodies run cooler at the stagnation point.
- Scaling laws at fixed radius: q grows with V**3 and with sqrt(rho), so
the peak heating on a reentry trajectory sits at the point where the
density-velocity product is largest, not at peak velocity.
- Units are SI throughout: W/m2, K, kg/m3, m/s, m.
- NACA TR-824 frames the compressible-flow context; the relations above
are standard engineering methodology, summary-only.
Workflow
- Fix the flight point: freestream density rho (kg/m3), velocity V (m/s)
and nose radius R_n (m).
- Compute the stagnation heat flux with stagnation_heat_flux(rho, V,
R_n); the module constant C_SG applies by default.
- Convert the flux to a wall temperature with
radiation_equilibrium_temp(heat_flux, emissivity); supply the surface
emissivity or accept EPSILON_DEFAULT = 0.85.
- Trade nose bluntness with radius_scaling(flux_ref, R_ref, R_new): the
flux at the new nose radius at the same rho and V.
- Run the full assessment with heating_assessment(rho, V, R_n,
emissivity): it returns the flux, the temperature and the fluxes at
doubled and halved nose radius in one dict.
- Judge the thermal protection implication: a wall temperature near or
above the material limit motivates a blunter nose or a higher
emissivity coating.
- Confirm the deterministic checks with the contract test
scripts/test_aerodynamic_heating.py.
Worked example
Heating peak on a reentry body: rho = 0.001 kg/m3, V = 7200 m/s, R_n =
0.5 m, emissivity 0.85.
- Stagnation heat flux: q_s = 1.83e-4 * sqrt(0.001 / 0.5) * 7200**3 =
3.0547e6 W/m2 (spec bound 2.5e6 to 4.0e6 W/m2; hand estimate ~3.1e6).
- Radiation-equilibrium temperature: T_w = (3.0547e6 / (0.85 *
5.670374419e-8))**0.25 = 2821.5 K (spec bound 2600 to 3100 K; hand
estimate ~2800 K). This exceeds the usable range of most metallic
thermal protection, pointing to an ablator or ceramic tile class.
- Bluntness trade at the same rho and V: R_n = 1.0 m gives 2.1600e6 W/m2,
exactly the reference flux divided by sqrt(2); R_n = 0.25 m gives
4.3199e6 W/m2, exactly the reference flux times sqrt(2). Halving the
nose radius raises the flux by about 41% and the wall temperature
toward 3000 K.
Verification
- stagnation_heat_flux raises ValueError when rho, velocity or
nose_radius is not positive; radiation_equilibrium_temp raises
ValueError for negative heat flux and for emissivity outside (0, 1];
radius_scaling raises ValueError for any non-positive argument;
heating_assessment propagates those errors.
- Exact scaling identities hold to machine precision: doubling R_n gives
flux_ref / sqrt(2), halving gives flux_ref * sqrt(2); radius_scaling
matches a direct Sutton-Graves evaluation at the new radius.
- Worked example outputs fall inside the spec magnitude bounds: flux in
2.5e6 to 4.0e6 W/m2 and temperature in 2600 to 3100 K.
- Monotonicity: the flux increases with velocity (V**3 law) and with
density (sqrt law), and decreases as the nose radius grows.
- Radiation round trip: eps * sigma * T_w**4 recovers the input heat
flux; all results are deterministic (no RNG).
- Run the contract test offline: python3
scripts/test_aerodynamic_heating.py (33 tests, deterministic).
Related leaves
- aerodynamics/high-speed/hypersonic-flow: the hypersonic flight
environment, Rayleigh pitot pressure and Newtonian impact theory.
- aerodynamics/high-speed/normal-shock and
aerodynamics/high-speed/oblique-shock: the flowfield jumps that set
the post-shock conditions ahead of the heating estimate.
- aerodynamics/high-speed/prandtl-meyer and
aerodynamics/high-speed/shock-expansion-airfoil: expansion fan and
surface pressure models on the cold side of the energy balance.
- structures/thermal-structures/thermal-stress-analysis: the wall
temperature from this leaf as a load for mechanical thermal stress.
Pitfalls
- Searching for peak heating at peak velocity: q grows as V**3 but only
as sqrt(rho), so the worst point on a reentry trajectory is where the
density-velocity product is largest, not the fastest point.
- Expecting the wall temperature to fall as fast as the flux: doubling
the nose radius divides the flux by sqrt(2), but T_w scales as the
fourth root, so the temperature drop is far smaller than the flux
drop.
- Trading nose radius across different flight states: radius_scaling is
only valid at fixed rho and V; re-run the full assessment when the
flight point changes.
- Judging thermal protection from flux alone: in the worked example the
2821 K radiation-equilibrium temperature, not the 3.05e6 W/m2 flux,
is what exceeds metallic limits and forces an ablator or ceramic tile
class.
- Passing emissivity at the boundary: emissivity must lie in (0, 1];
zero or negative emissivity raises ValueError, as do non-positive
density, velocity, radius and heat flux.
- Forgetting the correlation's scope: Sutton-Graves is a
stagnation-point, blunt-body, thin-shock-layer estimate; it is not a
general surface-heating method for sharp or three-dimensional
geometries away from the stagnation point.
Behavior contract (gate 3)
Run the deterministic contract test (stdlib unittest, offline):
python3 scripts/test_aerodynamic_heating.py
The test covers the worked-example magnitude bounds (flux 2.5e6 to
4.0e6 W/m2, temperature 2600 to 3100 K), the Sutton-Graves flux value and
its V**3 and sqrt(rho) scaling laws, the exact sqrt(1/R_n) radius-scaling
identities and the direct correlation cross-check, the
radiation-equilibrium round trip and emissivity dependence, assessment
dict consistency, determinism, and ValueError rejection of every
non-physical input (non-positive density, velocity, radius, heat flux and
emissivity outside (0, 1]).
Compliance
- Standards referenced, not reproduced: NACA TR-824 is named as the
compressible-flow context standard; the Sutton-Graves correlation and
Stefan-Boltzmann balance above are standard engineering methodology,
summary-only per standards-map.yaml.
- compliance: STANDARDS-REF, gated: false.
1---2name: aerodynamic-heating3description: Use when you must estimate the aerodynamic heating at the stagnation point of a hypersonic body: stagnation-point convective heat flux from the Sutton-Graves correlation using freestream density, flight velocity and nose radius, radiation-equilibrium wall temperature from the Stefan-Boltzmann balance at a chosen surface emissivity, and the nose-radius bluntness trade that scales the flux for blunt versus sharp geometries. Produces the stagnation heat flux, the radiation-equilibrium temperature and the bluntness comparison that gate a thermal protection material choice. Trigger: aerodynamic heating, stagnation-point-heating, sutton-graves, radiation-equilibrium-temperature, nose-radius-bluntness, reentry heating, thermal protection.4license: Apache-2.05---67# Aerodynamic Heating (aerodynamics/high-speed/aerodynamic-heating)89Use when you must estimate the aerodynamic heating at the stagnation point10of a hypersonic body: correlation-level convective heating from the11Sutton-Graves model, the radiation-equilibrium wall temperature it implies,12and the nose-radius bluntness trade that drives thermal protection material13selection. This leaf implements the Sutton-Graves stagnation-point14correlation and the Stefan-Boltzmann radiation balance in pure Python,15stdlib only, for flight at a fixed point (constant freestream density and16velocity). It pairs with aerodynamics/high-speed/hypersonic-flow for the17hypersonic flight environment context and with18structures/thermal-structures/thermal-stress-analysis when the wall19temperature feeds a structural thermal analysis.2021## Domain quick reference2223- Sutton-Graves stagnation heat flux: q_s = C_SG * sqrt(rho / R_n) * V**3,24 with C_SG = 1.83e-4 (air correlation constant, SI units arranged so q_s25 is in W/m2), rho the freestream density in kg/m3, R_n the nose radius in26 m and V the flight velocity in m/s. The correlation captures the27 convective heating of the thin shock layer ahead of a blunt body at28 hypersonic speed.29- Radiation-equilibrium wall temperature: T_w = (q / (eps * sigma))**0.25,30 from the steady balance q = eps * sigma * T_w**4 with sigma =31 5.670374419e-8 W/m2/K4 (Stefan-Boltzmann) and eps the surface32 emissivity, default 0.85 for typical thermal protection surfaces.33- Nose-radius scaling: q scales as sqrt(1 / R_n) at fixed rho and V, so34 doubling the nose radius divides the flux by sqrt(2) (factor 0.7071)35 and halving it multiplies the flux by sqrt(2) (factor 1.4142). Blunter36 bodies run cooler at the stagnation point.37- Scaling laws at fixed radius: q grows with V**3 and with sqrt(rho), so38 the peak heating on a reentry trajectory sits at the point where the39 density-velocity product is largest, not at peak velocity.40- Units are SI throughout: W/m2, K, kg/m3, m/s, m.41- NACA TR-824 frames the compressible-flow context; the relations above42 are standard engineering methodology, summary-only.4344## Workflow45461. Fix the flight point: freestream density rho (kg/m3), velocity V (m/s)47 and nose radius R_n (m).482. Compute the stagnation heat flux with stagnation_heat_flux(rho, V,49 R_n); the module constant C_SG applies by default.503. Convert the flux to a wall temperature with51 radiation_equilibrium_temp(heat_flux, emissivity); supply the surface52 emissivity or accept EPSILON_DEFAULT = 0.85.534. Trade nose bluntness with radius_scaling(flux_ref, R_ref, R_new): the54 flux at the new nose radius at the same rho and V.555. Run the full assessment with heating_assessment(rho, V, R_n,56 emissivity): it returns the flux, the temperature and the fluxes at57 doubled and halved nose radius in one dict.586. Judge the thermal protection implication: a wall temperature near or59 above the material limit motivates a blunter nose or a higher60 emissivity coating.617. Confirm the deterministic checks with the contract test62 scripts/test_aerodynamic_heating.py.6364## Worked example6566Heating peak on a reentry body: rho = 0.001 kg/m3, V = 7200 m/s, R_n =670.5 m, emissivity 0.85.6869- Stagnation heat flux: q_s = 1.83e-4 * sqrt(0.001 / 0.5) * 7200**3 =70 3.0547e6 W/m2 (spec bound 2.5e6 to 4.0e6 W/m2; hand estimate ~3.1e6).71- Radiation-equilibrium temperature: T_w = (3.0547e6 / (0.85 *72 5.670374419e-8))**0.25 = 2821.5 K (spec bound 2600 to 3100 K; hand73 estimate ~2800 K). This exceeds the usable range of most metallic74 thermal protection, pointing to an ablator or ceramic tile class.75- Bluntness trade at the same rho and V: R_n = 1.0 m gives 2.1600e6 W/m2,76 exactly the reference flux divided by sqrt(2); R_n = 0.25 m gives77 4.3199e6 W/m2, exactly the reference flux times sqrt(2). Halving the78 nose radius raises the flux by about 41% and the wall temperature79 toward 3000 K.8081## Verification8283- stagnation_heat_flux raises ValueError when rho, velocity or84 nose_radius is not positive; radiation_equilibrium_temp raises85 ValueError for negative heat flux and for emissivity outside (0, 1];86 radius_scaling raises ValueError for any non-positive argument;87 heating_assessment propagates those errors.88- Exact scaling identities hold to machine precision: doubling R_n gives89 flux_ref / sqrt(2), halving gives flux_ref * sqrt(2); radius_scaling90 matches a direct Sutton-Graves evaluation at the new radius.91- Worked example outputs fall inside the spec magnitude bounds: flux in92 2.5e6 to 4.0e6 W/m2 and temperature in 2600 to 3100 K.93- Monotonicity: the flux increases with velocity (V**3 law) and with94 density (sqrt law), and decreases as the nose radius grows.95- Radiation round trip: eps * sigma * T_w**4 recovers the input heat96 flux; all results are deterministic (no RNG).97- Run the contract test offline: python398 scripts/test_aerodynamic_heating.py (33 tests, deterministic).99100## Related leaves101102- aerodynamics/high-speed/hypersonic-flow: the hypersonic flight103 environment, Rayleigh pitot pressure and Newtonian impact theory.104- aerodynamics/high-speed/normal-shock and105 aerodynamics/high-speed/oblique-shock: the flowfield jumps that set106 the post-shock conditions ahead of the heating estimate.107- aerodynamics/high-speed/prandtl-meyer and108 aerodynamics/high-speed/shock-expansion-airfoil: expansion fan and109 surface pressure models on the cold side of the energy balance.110- structures/thermal-structures/thermal-stress-analysis: the wall111 temperature from this leaf as a load for mechanical thermal stress.112113## Pitfalls114115- Searching for peak heating at peak velocity: q grows as V**3 but only116 as sqrt(rho), so the worst point on a reentry trajectory is where the117 density-velocity product is largest, not the fastest point.118- Expecting the wall temperature to fall as fast as the flux: doubling119 the nose radius divides the flux by sqrt(2), but T_w scales as the120 fourth root, so the temperature drop is far smaller than the flux121 drop.122- Trading nose radius across different flight states: radius_scaling is123 only valid at fixed rho and V; re-run the full assessment when the124 flight point changes.125- Judging thermal protection from flux alone: in the worked example the126 2821 K radiation-equilibrium temperature, not the 3.05e6 W/m2 flux,127 is what exceeds metallic limits and forces an ablator or ceramic tile128 class.129- Passing emissivity at the boundary: emissivity must lie in (0, 1];130 zero or negative emissivity raises ValueError, as do non-positive131 density, velocity, radius and heat flux.132- Forgetting the correlation's scope: Sutton-Graves is a133 stagnation-point, blunt-body, thin-shock-layer estimate; it is not a134 general surface-heating method for sharp or three-dimensional135 geometries away from the stagnation point.136137## Behavior contract (gate 3)138139Run the deterministic contract test (stdlib unittest, offline):140141 python3 scripts/test_aerodynamic_heating.py142143The test covers the worked-example magnitude bounds (flux 2.5e6 to1444.0e6 W/m2, temperature 2600 to 3100 K), the Sutton-Graves flux value and145its V**3 and sqrt(rho) scaling laws, the exact sqrt(1/R_n) radius-scaling146identities and the direct correlation cross-check, the147radiation-equilibrium round trip and emissivity dependence, assessment148dict consistency, determinism, and ValueError rejection of every149non-physical input (non-positive density, velocity, radius, heat flux and150emissivity outside (0, 1]).151152## Compliance153154- Standards referenced, not reproduced: NACA TR-824 is named as the155 compressible-flow context standard; the Sutton-Graves correlation and156 Stefan-Boltzmann balance above are standard engineering methodology,157 summary-only per standards-map.yaml.158- compliance: STANDARDS-REF, gated: false.