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

Classes

class  MaterialLayer
class  ThermalBoundaryConditions

Functions

Dict[str, np.ndarray] calculate_steady_state_temperature_profile (List[MaterialLayer] layers, ThermalBoundaryConditions bc, int n_points_per_layer=10)
Dict[str, float] calculate_pyrolysis_response (float surface_temperature, AblativeCoolingConfig ablative_config, float heat_flux, float time_step=0.01)
Dict[str, float] calculate_vaporization_rate (float surface_temperature, AblativeCoolingConfig|GraphiteInsertConfig material_config, float heat_flux, float pressure=1e6)
Dict[str, any] analyze_multi_layer_system (List[MaterialLayer] layers, ThermalBoundaryConditions bc, Optional[AblativeCoolingConfig] ablative_config=None, Optional[GraphiteInsertConfig] graphite_config=None)
Dict[str, float] calculate_required_ablative_thickness (float heat_flux, float burn_time, AblativeCoolingConfig ablative_config, float backface_temp_limit=500.0, float stainless_thickness=0.002, float stainless_k=15.0)

Variables

float SIGMA = 5.670374419e-8

Detailed Description

Comprehensive thermal analysis for multi-layer ablative/graphite system.

This module provides:
1. Multi-layer thermal conduction (stainless steel + phenolic + graphite)
2. Pyrolysis modeling with char layer formation
3. Vaporization at high temperatures
4. Transient thermal response
5. Temperature profiles through wall thickness
6. Back-face temperature limits for structural integrity

Function Documentation

◆ analyze_multi_layer_system()

Dict[str, any] engine.pipeline.thermal_analysis.analyze_multi_layer_system ( List[MaterialLayer] layers,
ThermalBoundaryConditions bc,
Optional[AblativeCoolingConfig] ablative_config = None,
Optional[GraphiteInsertConfig] graphite_config = None )
Comprehensive thermal analysis of multi-layer system.

Combines:
- Steady-state temperature profile
- Pyrolysis response (if ablative)
- Vaporization (if high temperature)
- Back-face temperature check

Parameters:
-----------
layers : List[MaterialLayer]
    Material layers (hot to cold)
bc : ThermalBoundaryConditions
    Boundary conditions
ablative_config : Optional[AblativeCoolingConfig]
    Ablative configuration (if applicable)
graphite_config : Optional[GraphiteInsertConfig]
    Graphite configuration (if applicable)

Returns:
--------
dict
    Comprehensive thermal analysis results

Definition at line 305 of file thermal_analysis.py.

References calculate_pyrolysis_response(), calculate_steady_state_temperature_profile(), and calculate_vaporization_rate().

◆ calculate_pyrolysis_response()

Dict[str, float] engine.pipeline.thermal_analysis.calculate_pyrolysis_response ( float surface_temperature,
AblativeCoolingConfig ablative_config,
float heat_flux,
float time_step = 0.01 )
Calculate pyrolysis response including char layer formation.

Pyrolysis occurs when T > T_pyrolysis:
- Material decomposes into char + pyrolysis gases
- Char layer forms on surface (lower conductivity)
- Pyrolysis gases flow outward (blowing effect)

Parameters:
-----------
surface_temperature : float
    Surface temperature [K]
ablative_config : AblativeCoolingConfig
    Ablative material configuration
heat_flux : float
    Incident heat flux [W/m²]
time_step : float
    Time step [s] for transient calculations

Returns:
--------
dict
    - pyrolysis_rate: float [kg/(m²·s)] - Mass flux of pyrolysis gases
    - char_formation_rate: float [m/s] - Char layer growth rate
    - char_thickness: float [m] - Current char layer thickness
    - pyrolysis_active: bool - Whether pyrolysis is occurring
    - energy_consumed: float [J/kg] - Energy consumed by pyrolysis

Definition at line 160 of file thermal_analysis.py.

Referenced by analyze_multi_layer_system().

◆ calculate_required_ablative_thickness()

Dict[str, float] engine.pipeline.thermal_analysis.calculate_required_ablative_thickness ( float heat_flux,
float burn_time,
AblativeCoolingConfig ablative_config,
float backface_temp_limit = 500.0,
float stainless_thickness = 0.002,
float stainless_k = 15.0 )
Calculate required ablative thickness to keep backface below limit.

This is a sizing function to determine how much ablative material is needed.

Parameters:
-----------
heat_flux : float
    Design heat flux [W/m²]
burn_time : float
    Burn time [s]
ablative_config : AblativeCoolingConfig
    Ablative material configuration
backface_temp_limit : float
    Maximum backface temperature [K]
stainless_thickness : float
    Stainless steel wall thickness [m]
stainless_k : float
    Stainless steel thermal conductivity [W/(m·K)]

Returns:
--------
dict
    - required_thickness: float [m] - Required ablative thickness
    - recession_allowance: float [m] - Material lost to recession
    - conduction_thickness: float [m] - Thickness for thermal protection
    - safety_margin: float [m] - Recommended safety margin

Definition at line 382 of file thermal_analysis.py.

References max.

◆ calculate_steady_state_temperature_profile()

Dict[str, np.ndarray] engine.pipeline.thermal_analysis.calculate_steady_state_temperature_profile ( List[MaterialLayer] layers,
ThermalBoundaryConditions bc,
int n_points_per_layer = 10 )
Calculate steady-state temperature profile through multi-layer wall.

Uses thermal resistance network:
    q = (T_hot - T_cold) / R_total
    R_total = R_conv_hot + R_cond_1 + R_cond_2 + ... + R_conv_cold

For each layer:
    R_cond = t / (k * A)  (1D conduction)

Parameters:
-----------
layers : List[MaterialLayer]
    Material layers from hot side to cold side
bc : ThermalBoundaryConditions
    Boundary conditions
n_points_per_layer : int
    Number of temperature points per layer

Returns:
--------
dict
    - positions: np.ndarray [m] - Distance from hot surface
    - temperatures: np.ndarray [K] - Temperature at each position
    - heat_flux: float [W/m²] - Steady-state heat flux
    - T_surface_hot: float [K] - Hot surface temperature
    - T_surface_cold: float [K] - Cold surface temperature
    - layer_boundaries: List[float] - Positions of layer boundaries

Definition at line 47 of file thermal_analysis.py.

References max.

Referenced by analyze_multi_layer_system().

◆ calculate_vaporization_rate()

Dict[str, float] engine.pipeline.thermal_analysis.calculate_vaporization_rate ( float surface_temperature,
AblativeCoolingConfig | GraphiteInsertConfig material_config,
float heat_flux,
float pressure = 1e6 )
Calculate material vaporization rate at high temperatures.

Vaporization occurs when T > T_vaporization:
- Material directly sublimates/vaporizes
- No char formation (unlike pyrolysis)
- High energy consumption

Parameters:
-----------
surface_temperature : float
    Surface temperature [K]
material_config : AblativeCoolingConfig | GraphiteInsertConfig
    Material configuration
heat_flux : float
    Incident heat flux [W/m²]
pressure : float
    Local pressure [Pa]

Returns:
--------
dict
    - vaporization_rate: float [kg/(m²·s)] - Mass flux of vaporized material
    - vaporization_active: bool - Whether vaporization is occurring
    - energy_consumed: float [J/kg] - Energy consumed by vaporization

Definition at line 238 of file thermal_analysis.py.

References max.

Referenced by analyze_multi_layer_system().

Variable Documentation

◆ SIGMA

float engine.pipeline.thermal_analysis.SIGMA = 5.670374419e-8

Definition at line 20 of file thermal_analysis.py.