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

Classes

class  WallContour
class  HotGasState

Functions

 area_ratio_of_mach (M, gamma)
 _mach_bisect_py (ar, sup, gamma)
 mach_from_area_ratio (area_ratio, float gamma, supersonic)
 static_ratios (M, float gamma)
 recovery_temperature (float T0, float gamma, M, float Pr)
 bartz_sigma (Tw, float T0, float gamma, M, float omega=BARTZ_OMEGA)
 bartz_h (float Dt, float rc, float mu, float cp, float Pr, float mass_flux_throat, area_ratio, sigma)
 _leckner_eps0 (np.ndarray c, t, paL_barcm)
 _leckner_species (str sp, T, P_bar, pa_bar, L_cm)
 _leckner_overlap (p_H2O_bar, p_CO2_bar, L_cm)
Dict[str, np.ndarray] leckner_emissivity (T, P_bar, p_H2O_bar, p_CO2_bar, L_m)
 gas_absorptivity (Tg, Tw, P_bar, p_H2O_bar, p_CO2_bar, L_m)
 gray_enclosure_flux (eps_g, alpha_g, eps_w, Tg, Tw)
WallContour wall_contour (float A_throat, float chamber_diameter, float volume, Optional[float] A_exit=None, int n_chamber=160, int n_nozzle=60, float theta=np.pi/4.0)
WallContour contour_for (cg)
HotGasState hot_gas_state (cea_cache, float MR, float Pc, float T0, float gamma, float mdot, float A_throat)
Dict[str, np.ndarray] profile (HotGasState gas, WallContour contour, Tw, eps_wall, mask=None)
Dict[str, float] station_flux (HotGasState gas, WallContour contour, float x, float Tw, float eps_wall)

Variables

float BARTZ_OMEGA = 0.6
float THROAT_RC_OVER_RT = 0.5 * (1.5 + 0.382)
float LECKNER_T_MAX = 2500.0
float BEAM_LENGTH_COEFF = 3.6
float CYLINDER_BEAM_LENGTH_OVER_D = 0.95
 _mach_bisect = _njit(cache=True)(_mach_bisect_py)
 _USE_COMPILED_BISECT = _mach_bisect is not None
 _LECKNER_H2O
 _LECKNER_CO2

Detailed Description

Hot-gas side of the chamber and nozzle wall.

Convection is Bartz, station by station along the real contour (Huzel & Huang eq. 4-13,
Sutton & Biblarz eq. 8-23), with CEA frozen-composition transport at the stagnation state,
the exact isentropic area-Mach number and the adiabatic wall temperature of a turbulent
boundary layer, recovery factor r = Pr^(1/3).

Radiation is the H2O and CO2 of the burnt gas: a gray gas in a gray enclosure. Gas
emissivity is Leckner's correlation (Modest, Radiative Heat Transfer, 3rd ed., sec. 11.10,
Table 11.3), absorptivity at the wall temperature by Hottel's scaling, and the mean beam
length is 3.6 V/A of the chamber (Modest sec. 10.x) capped at 0.95 D of the local bore.

No turbulence multiplier and no laminar switch: Bartz is a fit to turbulent rocket-nozzle
data and already carries the chamber's free-stream turbulence.

Function Documentation

◆ _leckner_eps0()

engine.pipeline.thermal.gas_side._leckner_eps0 ( np.ndarray c,
t,
paL_barcm )
protected
Zero-pressure emissivity, exp(sum_i a_i x^i), a_i = sum_j c_ij t^j, x = log10(paL/1 bar cm).

Definition at line 137 of file gas_side.py.

Referenced by _leckner_species().

◆ _leckner_overlap()

engine.pipeline.thermal.gas_side._leckner_overlap ( p_H2O_bar,
p_CO2_bar,
L_cm )
protected

Definition at line 168 of file gas_side.py.

Referenced by gas_absorptivity(), and leckner_emissivity().

◆ _leckner_species()

engine.pipeline.thermal.gas_side._leckner_species ( str sp,
T,
P_bar,
pa_bar,
L_cm )
protected

Definition at line 145 of file gas_side.py.

References _leckner_eps0().

Referenced by gas_absorptivity(), and leckner_emissivity().

◆ _mach_bisect_py()

engine.pipeline.thermal.gas_side._mach_bisect_py ( ar,
sup,
gamma )
protected
``mach_from_area_ratio``'s bisection as a scalar loop, for compilation (same 64 halvings).

Definition at line 48 of file gas_side.py.

◆ area_ratio_of_mach()

engine.pipeline.thermal.gas_side.area_ratio_of_mach ( M,
gamma )

Definition at line 42 of file gas_side.py.

Referenced by mach_from_area_ratio().

◆ bartz_h()

engine.pipeline.thermal.gas_side.bartz_h ( float Dt,
float rc,
float mu,
float cp,
float Pr,
float mass_flux_throat,
area_ratio,
sigma )
Bartz gas-side coefficient [W/(m^2 K)], SI form of H&H eq. 4-13.

``mass_flux_throat`` is Pc/c* = mdot/At; transport properties at the stagnation state.

Definition at line 117 of file gas_side.py.

Referenced by profile().

◆ bartz_sigma()

engine.pipeline.thermal.gas_side.bartz_sigma ( Tw,
float T0,
float gamma,
M,
float omega = BARTZ_OMEGA )
Bartz property-variation correction (H&H eq. 4-14).

Definition at line 111 of file gas_side.py.

Referenced by profile().

◆ contour_for()

WallContour engine.pipeline.thermal.gas_side.contour_for ( cg)
wall_contour for a ChamberGeometryConfig.

Definition at line 285 of file gas_side.py.

References wall_contour().

◆ gas_absorptivity()

engine.pipeline.thermal.gas_side.gas_absorptivity ( Tg,
Tw,
P_bar,
p_H2O_bar,
p_CO2_bar,
L_m )
Absorptivity for wall emission at Tw (Hottel's scaling; Modest eq. 11.144):
alpha_i = (Tg/Tw)^n_i eps_i(Tw, p_i L Tw/Tg), n = 0.45 H2O, 0.65 CO2.

Definition at line 193 of file gas_side.py.

References _leckner_overlap(), and _leckner_species().

Referenced by profile().

◆ gray_enclosure_flux()

engine.pipeline.thermal.gas_side.gray_enclosure_flux ( eps_g,
alpha_g,
eps_w,
Tg,
Tw )
Net gas-to-wall radiation of an isothermal gray gas in a gray enclosure [W/m^2].

Definition at line 204 of file gas_side.py.

Referenced by profile().

◆ hot_gas_state()

HotGasState engine.pipeline.thermal.gas_side.hot_gas_state ( cea_cache,
float MR,
float Pc,
float T0,
float gamma,
float mdot,
float A_throat )
HotGasState from the CEA auxiliary tables at (MR, Pc).

Definition at line 307 of file gas_side.py.

◆ leckner_emissivity()

Dict[str, np.ndarray] engine.pipeline.thermal.gas_side.leckner_emissivity ( T,
P_bar,
p_H2O_bar,
p_CO2_bar,
L_m )
Total emissivity of an H2O-CO2 mixture (Modest eqs. 11.139-11.143, Table 11.3).

Pressures in bar, path length in m. Returns eps, the two species' contributions, the
overlap correction and whether the pressure corrections were held at LECKNER_T_MAX.
Scalars or arrays.

Definition at line 178 of file gas_side.py.

References _leckner_overlap(), and _leckner_species().

Referenced by profile().

◆ mach_from_area_ratio()

engine.pipeline.thermal.gas_side.mach_from_area_ratio ( area_ratio,
float gamma,
supersonic )
Exact inversion of the area-Mach relation on the requested branch (vectorised bisection;
A/A* is monotone on each branch). Scalars in, scalar out.

Definition at line 74 of file gas_side.py.

References _mach_bisect, and area_ratio_of_mach().

Referenced by profile().

◆ profile()

Dict[str, np.ndarray] engine.pipeline.thermal.gas_side.profile ( HotGasState gas,
WallContour contour,
Tw,
eps_wall,
mask = None )
Convective and radiative flux into the wall at every contour station (or ``mask``ed
ones), wall at Tw with emissivity eps_wall (scalars or per-station).

Definition at line 318 of file gas_side.py.

References bartz_h(), bartz_sigma(), gas_absorptivity(), gray_enclosure_flux(), leckner_emissivity(), mach_from_area_ratio(), and recovery_temperature().

Referenced by station_flux().

◆ recovery_temperature()

engine.pipeline.thermal.gas_side.recovery_temperature ( float T0,
float gamma,
M,
float Pr )
Adiabatic wall temperature, turbulent recovery factor r = Pr^(1/3) (H&H eq. 4-10/4-11).

Definition at line 104 of file gas_side.py.

Referenced by profile().

◆ static_ratios()

engine.pipeline.thermal.gas_side.static_ratios ( M,
float gamma )
(T/T0, P/P0) at Mach M.

Definition at line 96 of file gas_side.py.

◆ station_flux()

Dict[str, float] engine.pipeline.thermal.gas_side.station_flux ( HotGasState gas,
WallContour contour,
float x,
float Tw,
float eps_wall )
profile() at one axial position, radius interpolated on the contour.

Definition at line 348 of file gas_side.py.

References profile().

◆ wall_contour()

WallContour engine.pipeline.thermal.gas_side.wall_contour ( float A_throat,
float chamber_diameter,
float volume,
Optional[float] A_exit = None,
int n_chamber = 160,
int n_nozzle = 60,
float theta = np.pi / 4.0 )
The drawn contour: barrel, cone at half-angle theta, 1.5 Rt entrance arc, Rao bell.

The barrel length is the one that closes the declared volume (chamber_length_calc), the
same construction the geometry generator draws; it is not read from a stored length.

Definition at line 234 of file gas_side.py.

References max.

Referenced by contour_for().

Variable Documentation

◆ _LECKNER_CO2

engine.pipeline.thermal.gas_side._LECKNER_CO2
protected
Initial value:
1= np.array([[-3.9893, 2.7669, -2.1081, 0.39163],
2 [1.2710, -1.1090, 1.0195, -0.21897],
3 [-0.23678, 0.19731, -0.19544, 0.044644]])

Definition at line 132 of file gas_side.py.

◆ _LECKNER_H2O

engine.pipeline.thermal.gas_side._LECKNER_H2O
protected
Initial value:
1= np.array([[-2.2118, -1.1987, 0.035596],
2 [0.85667, 0.93048, -0.14391],
3 [-0.10838, -0.17156, 0.045915]])

Definition at line 129 of file gas_side.py.

◆ _mach_bisect

engine.pipeline.thermal.gas_side._mach_bisect = _njit(cache=True)(_mach_bisect_py)
protected

Definition at line 67 of file gas_side.py.

Referenced by mach_from_area_ratio().

◆ _USE_COMPILED_BISECT

engine.pipeline.thermal.gas_side._USE_COMPILED_BISECT = _mach_bisect is not None
protected

Definition at line 71 of file gas_side.py.

◆ BARTZ_OMEGA

float engine.pipeline.thermal.gas_side.BARTZ_OMEGA = 0.6

Definition at line 27 of file gas_side.py.

◆ BEAM_LENGTH_COEFF

float engine.pipeline.thermal.gas_side.BEAM_LENGTH_COEFF = 3.6

Definition at line 36 of file gas_side.py.

◆ CYLINDER_BEAM_LENGTH_OVER_D

float engine.pipeline.thermal.gas_side.CYLINDER_BEAM_LENGTH_OVER_D = 0.95

Definition at line 37 of file gas_side.py.

◆ LECKNER_T_MAX

float engine.pipeline.thermal.gas_side.LECKNER_T_MAX = 2500.0

Definition at line 33 of file gas_side.py.

◆ THROAT_RC_OVER_RT

float engine.pipeline.thermal.gas_side.THROAT_RC_OVER_RT = 0.5 * (1.5 + 0.382)

Definition at line 30 of file gas_side.py.