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

Functions

float _gas_radiation (Dict[str, float] gas_props, float Tg, float P, float Tw, float D, float eps_wall)
float calculate_gas_viscosity_huzel (float temperature, float molecular_weight)
float calculate_channel_hydraulic_diameter (float width, float height)
float calculate_friction_factor (float Re, float d_hyd, float roughness=0.0)
float delta_p_regen_channels (float mdot, float rho, float mu, RegenCoolingConfig config, float P_tank)
dict calculate_regen_velocity_profile (float mdot, float rho, RegenCoolingConfig config)
Dict[str, float] compute_regen_heat_transfer (float mdot_coolant, Dict[str, float] coolant_props, Dict[str, float] gas_props, RegenCoolingConfig config, float mdot_total)

Detailed Description

Regenerative cooling channel pressure drop model

Function Documentation

◆ _gas_radiation()

float engine.pipeline.thermal.regen_cooling._gas_radiation ( Dict[str, float] gas_props,
float Tg,
float P,
float Tw,
float D,
float eps_wall )
protected
Net gas-to-wall radiation of the chamber gas (Leckner gray gas, beam length 0.95 D).
Needs the CEA mole fractions x_H2O and x_CO2 in ``gas_props``.

Definition at line 31 of file regen_cooling.py.

References min.

Referenced by compute_regen_heat_transfer().

◆ calculate_channel_hydraulic_diameter()

float engine.pipeline.thermal.regen_cooling.calculate_channel_hydraulic_diameter ( float width,
float height )
Calculate hydraulic diameter for rectangular channel.

d_hyd = 4 × A / P_wetted
For rectangle: d_hyd = 2 × w × h / (w + h)

Parameters:
-----------
width : float
    Channel width [m]
height : float
    Channel height [m]

Returns:
--------
d_hyd : float
    Hydraulic diameter [m]

Definition at line 98 of file regen_cooling.py.

Referenced by compute_regen_heat_transfer(), and delta_p_regen_channels().

◆ calculate_friction_factor()

float engine.pipeline.thermal.regen_cooling.calculate_friction_factor ( float Re,
float d_hyd,
float roughness = 0.0 )
Calculate Darcy-Weisbach friction factor.

For smooth pipes (roughness = 0): Blasius correlation
f = 0.316 / Re^0.25  (for Re < 10^5)

For rough pipes: Colebrook equation (iterative)
Or Swamee-Jain approximation

Parameters:
-----------
Re : float
    Reynolds number
d_hyd : float
    Hydraulic diameter [m]
roughness : float
    Surface roughness [m] (default: 0 = smooth)

Returns:
--------
f : float
    Friction factor

Definition at line 124 of file regen_cooling.py.

Referenced by delta_p_regen_channels().

◆ calculate_gas_viscosity_huzel()

float engine.pipeline.thermal.regen_cooling.calculate_gas_viscosity_huzel ( float temperature,
float molecular_weight )
Calculate gas dynamic viscosity using Huzel's empirical correlation.

Formula: μ = (46.6 × 10^-10) × M^0.5 × T^0.6

Where:
- M = molecular weight [lb/lb-mol] (same as kg/kmol numerically)
- T = temperature [°R] (Rankine)
- Result: μ [lb·s/in²], converted to [Pa·s]

This correlation is specifically for combustion gases and accounts for:
- Temperature dependence (T^0.6)
- Molecular weight dependence (M^0.5)

Parameters
----------
temperature : float
    Gas temperature [K]
molecular_weight : float
    Molecular weight [kg/kmol] (same as lb/lb-mol numerically)

Returns
-------
viscosity : float
    Dynamic viscosity [Pa·s]

References
----------
Huzel & Huang, "Design of Liquid Propellant Rocket Engines"
Equation (4-16) for combustion gas viscosity estimation

Definition at line 47 of file regen_cooling.py.

Referenced by compute_regen_heat_transfer().

◆ calculate_regen_velocity_profile()

dict engine.pipeline.thermal.regen_cooling.calculate_regen_velocity_profile ( float mdot,
float rho,
RegenCoolingConfig config )
Calculate velocity profile through regen cooling system.

Returns velocities at each section for diagnostics.

Parameters:
-----------
mdot : float
    Total mass flow rate [kg/s]
rho : float
    Fluid density [kg/m³]
config : RegenCoolingConfig
    Regenerative cooling configuration

Returns:
--------
velocities : dict
    Dictionary with velocities at each section [m/s]

Definition at line 325 of file regen_cooling.py.

◆ compute_regen_heat_transfer()

Dict[str, float] engine.pipeline.thermal.regen_cooling.compute_regen_heat_transfer ( float mdot_coolant,
Dict[str, float] coolant_props,
Dict[str, float] gas_props,
RegenCoolingConfig config,
float mdot_total )
Calculate heat-transfer coupling for regenerative cooling channels.

Definition at line 369 of file regen_cooling.py.

References _gas_radiation(), calculate_channel_hydraulic_diameter(), calculate_gas_viscosity_huzel(), and max.

◆ delta_p_regen_channels()

float engine.pipeline.thermal.regen_cooling.delta_p_regen_channels ( float mdot,
float rho,
float mu,
RegenCoolingConfig config,
float P_tank )
Calculate pressure drop through regenerative cooling channels.

Flow path:
1. Inlet pipe (3/8" diameter)
2. Split into N parallel channels
3. N channels (each with friction)
4. Merge back
5. Pipe to injector

Pressure drop is a function of tank pressure:
- Higher tank pressure → higher mass flow → higher velocity → higher pressure drop
- This is already captured through mdot(P_tank), but we add explicit pressure scaling
- Channel length should match chamber length (cooling channels go across the length of the chamber)

Parameters:
-----------
mdot : float
    Total mass flow rate [kg/s] (already depends on P_tank)
rho : float
    Fluid density [kg/m³]
mu : float
    Dynamic viscosity [Pa·s]
config : RegenCoolingConfig
    Regenerative cooling configuration
P_tank : float
    Tank pressure [Pa] - used for pressure-dependent scaling

Returns:
--------
delta_p : float
    Total pressure drop [Pa]

Definition at line 166 of file regen_cooling.py.

References calculate_channel_hydraulic_diameter(), calculate_friction_factor(), and max.