|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Functions | |
| str | _fuel_name_for_kinetics (PintleEngineConfig config) |
| Optional[Dict[str, float]] | _fuel_props_for_evaporation (PintleEngineConfig config) |
| float | calculate_reaction_progress (float residence_time, float reaction_time_scale, float initial_progress=0.0) |
| float | _ea_mr_factor (float MR) |
| float | calculate_reaction_rate_constant (float Pc, float Tc, float MR, str fuel_type="RP-1", Optional[PintleEngineConfig] config=None) |
| float | calculate_reaction_time_scale (float Pc, float Tc, float MR, str fuel_type="RP-1", Optional[PintleEngineConfig] config=None) |
| float | calculate_evaporation_time_scale (float Pc, float Tc, float droplet_diameter, Optional[Dict] fuel_props=None, float gamma=1.2, float R_gas=300.0) |
| float | calculate_mixing_time_scale (float L_chamber, float u_mean, float turbulence_intensity=0.1) |
| Dict[str, float] | calculate_chamber_reaction_progress (float Lstar, float Pc, float Tc, float cstar, float gamma, float R, float MR, PintleEngineConfig config, Optional[Dict] spray_diagnostics=None, Optional[float] Tc_kinetics=None) |
| Dict[str, float] | calculate_species_evolution (float progress, Dict[str, float] species_equilibrium, Optional[Dict[str, float]] species_initial=None) |
Variables | |
| float | R_gas = 8314.462618 |
| float | _EA_MR_W = 0.10 |
Finite-rate chemistry and reaction progress modeling for combustion chamber. This module provides physics-based (not reference-based) models for: 1. Reaction progress tracking through chamber 2. Finite-rate chemistry effects using actual Arrhenius kinetics 3. Species evolution modeling 4. Shifting equilibrium in nozzle based on actual flow conditions
|
protected |
Activation-energy multiplier vs O/F: 1.2 (fuel-rich) -> 1.0 -> 0.9 (oxidizer-rich), C1-smooth.
Definition at line 139 of file reaction_chemistry.py.
Referenced by calculate_reaction_rate_constant().
|
protected |
Label used for Arrhenius fuel-type branching (matches reaction_rate_constant lists).
Priority: ``combustion.cea.fuel_name`` -> ``fluids['fuel'].name`` -> generic hydrocarbon ("RP-1").
Definition at line 24 of file reaction_chemistry.py.
Referenced by calculate_chamber_reaction_progress().
|
protected |
Density and boiling point for droplet evaporation time scale.
Definition at line 43 of file reaction_chemistry.py.
Referenced by calculate_chamber_reaction_progress().
| Dict[str, float] engine.pipeline.reaction_chemistry.calculate_chamber_reaction_progress | ( | float | Lstar, |
| float | Pc, | ||
| float | Tc, | ||
| float | cstar, | ||
| float | gamma, | ||
| float | R, | ||
| float | MR, | ||
| PintleEngineConfig | config, | ||
| Optional[Dict] | spray_diagnostics = None, | ||
| Optional[float] | Tc_kinetics = None ) |
Calculate reaction progress through chamber using actual physics.
No reference conditions - all calculations based on actual engine state.
Parameters:
-----------
Lstar : float
Characteristic length [m]
Pc : float
Chamber pressure [Pa]
Tc : float
Chamber temperature [K] (Used for residence time - Ideal is conservative)
cstar : float
Characteristic velocity [m/s]
gamma : float
Specific heat ratio
R : float
Gas constant [J/(kg·K)]
MR : float
Mixture ratio
config : PintleEngineConfig
Engine configuration
spray_diagnostics : dict, optional
Spray diagnostics (SMD, velocities, etc.) for evaporation/mixing
Tc_kinetics : float, optional
Temperature to use for reaction kinetics [K]. If None, uses Tc.
(Actual/Effective is conservative)
Returns:
--------
results : dict
Reaction progress and time scales
Definition at line 484 of file reaction_chemistry.py.
References _fuel_name_for_kinetics(), _fuel_props_for_evaporation(), calculate_evaporation_time_scale(), calculate_mixing_time_scale(), calculate_reaction_progress(), and calculate_reaction_time_scale().
| float engine.pipeline.reaction_chemistry.calculate_evaporation_time_scale | ( | float | Pc, |
| float | Tc, | ||
| float | droplet_diameter, | ||
| Optional[Dict] | fuel_props = None, | ||
| float | gamma = 1.2, | ||
| float | R_gas = 300.0 ) |
Calculate droplet evaporation time scale from physics.
Uses D² law: τ_evap = d² / (8 × D × ln(1 + B))
where D is mass diffusivity and B is Spalding number.
Parameters:
-----------
Pc : float
Chamber pressure [Pa]
Tc : float
Chamber temperature [K]
droplet_diameter : float
Droplet diameter [m] (SMD or characteristic size)
fuel_props : dict, optional
Fuel properties (density, latent heat, etc.)
gamma : float
Specific heat ratio from CEA
R_gas : float
Gas constant [J/(kg·K)] from CEA
Returns:
--------
tau_evap : float
Evaporation time scale [s]
Definition at line 346 of file reaction_chemistry.py.
Referenced by calculate_chamber_reaction_progress().
| float engine.pipeline.reaction_chemistry.calculate_mixing_time_scale | ( | float | L_chamber, |
| float | u_mean, | ||
| float | turbulence_intensity = 0.1 ) |
Calculate turbulent mixing time scale from actual flow conditions.
τ_mix = L / u_turbulent, where u_turbulent = turbulence_intensity × u_mean
Parameters:
-----------
L_chamber : float
Characteristic mixing length [m] (typically L*)
u_mean : float
Mean flow velocity [m/s]
turbulence_intensity : float
Turbulence intensity (typically 0.05-0.2 for rocket chambers)
Returns:
--------
tau_mix : float
Mixing time scale [s]
Definition at line 440 of file reaction_chemistry.py.
Referenced by calculate_chamber_reaction_progress().
| float engine.pipeline.reaction_chemistry.calculate_reaction_progress | ( | float | residence_time, |
| float | reaction_time_scale, | ||
| float | initial_progress = 0.0 ) |
Calculate reaction progress based on residence time and reaction kinetics.
Models chemical reaction progress as first-order kinetics:
dX/dt = (1 - X) / τ_chem
Solution: X(t) = 1 - (1 - X0) × exp(-t / τ)
Parameters:
-----------
residence_time : float
Time spent in chamber [s] (must be >= 0)
reaction_time_scale : float
Chemical reaction time scale [s] (must be > 0)
initial_progress : float
Initial reaction progress (0-1)
Returns:
--------
progress : float
Reaction progress (0-1), where 1 = complete equilibrium
Raises:
-------
ValueError
If inputs are invalid (negative time, non-positive time scale, etc.)
Definition at line 60 of file reaction_chemistry.py.
Referenced by calculate_chamber_reaction_progress().
| float engine.pipeline.reaction_chemistry.calculate_reaction_rate_constant | ( | float | Pc, |
| float | Tc, | ||
| float | MR, | ||
| str | fuel_type = "RP-1", | ||
| Optional[PintleEngineConfig] | config = None ) |
Calculate chemical reaction rate constant using Arrhenius kinetics.
Rate constant: k = A × P^n × exp(-Ea / (R_gas × T))
Reaction time: τ = 1 / k
Uses actual Arrhenius parameters for hydrocarbon/LOX combustion:
- Pre-exponential factor A depends on fuel type and mixture ratio
- Pressure exponent n: typically 0.7-1.0 for gas-phase reactions
- Activation energy Ea: depends on fuel complexity
Parameters:
-----------
Pc : float
Chamber pressure [Pa]
Tc : float
Chamber temperature [K]
MR : float
Mixture ratio (O/F)
fuel_type : str
Fuel type ("RP-1", "Ethanol", "H2", etc.) - affects activation energy
config : PintleEngineConfig, optional
Engine configuration for kinetics parameters. If None, uses built-in defaults.
Returns:
--------
k : float
Reaction rate constant [1/s]
Raises:
-------
ValueError
If inputs are invalid or result is non-physical
Definition at line 150 of file reaction_chemistry.py.
References _ea_mr_factor().
Referenced by calculate_reaction_time_scale().
| float engine.pipeline.reaction_chemistry.calculate_reaction_time_scale | ( | float | Pc, |
| float | Tc, | ||
| float | MR, | ||
| str | fuel_type = "RP-1", | ||
| Optional[PintleEngineConfig] | config = None ) |
Calculate chemical reaction time scale from Arrhenius rate constant.
τ = 1 / k, where k is the reaction rate constant.
Parameters:
-----------
Pc : float
Chamber pressure [Pa]
Tc : float
Chamber temperature [K]
MR : float
Mixture ratio (O/F)
fuel_type : str
Fuel type
config : PintleEngineConfig, optional
Engine configuration for kinetics parameters
Returns:
--------
tau : float
Reaction time scale [s]
Definition at line 306 of file reaction_chemistry.py.
References calculate_reaction_rate_constant().
Referenced by calculate_chamber_reaction_progress().
| Dict[str, float] engine.pipeline.reaction_chemistry.calculate_species_evolution | ( | float | progress, |
| Dict[str, float] | species_equilibrium, | ||
| Optional[Dict[str, float]] | species_initial = None ) |
Calculate species concentrations based on reaction progress.
Linear interpolation between initial and equilibrium:
X_species = X_initial + progress × (X_equilibrium - X_initial)
Parameters:
-----------
progress : float
Reaction progress (0-1)
species_equilibrium : dict
Equilibrium species mole fractions {species_name: fraction}
species_initial : dict, optional
Initial species mole fractions (default: pure reactants)
Returns:
--------
species_current : dict
Current species mole fractions
Definition at line 622 of file reaction_chemistry.py.
|
protected |
Definition at line 136 of file reaction_chemistry.py.
| float engine.pipeline.reaction_chemistry.R_gas = 8314.462618 |
Definition at line 21 of file reaction_chemistry.py.