STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer Class Reference

Public Member Functions

 __init__ (self, PintleEngineConfig base_config)
Dict[str, Any] optimize_coupled (self, Dict[str, Any] design_requirements, Dict[str, Any] constraints, int max_iterations=10, float convergence_tolerance=0.01, bool use_time_varying=True)

Public Attributes

 base_config = base_config
 pintle_optimizer = ComprehensivePintleOptimizer(base_config)
 chamber_optimizer = ChamberOptimizer(base_config)
list iteration_history = []

Protected Member Functions

Dict[str, Any] _optimize_chamber_time_varying (self, PintleEngineConfig config, Dict[str, Any] design_requirements, Dict[str, Any] constraints, float burn_time, float P_tank_O, float P_tank_F)
Dict[str, float] _extract_pintle_params (self, PintleEngineConfig config)
Dict[str, float] _extract_chamber_params (self, PintleEngineConfig config)
float _calculate_relative_change (self, Dict[str, float] params_prev, Dict[str, float] params_current)

Detailed Description

Coupled optimizer that iteratively solves pintle and chamber optimization.

The optimization problem is:
- Pintle geometry → affects chamber pressure, efficiency, stability
- Chamber geometry → affects pintle flow rates, pressure drops, spray

Solution approach:
1. Initialize with initial guesses
2. Optimize pintle (with current chamber geometry)
3. Optimize chamber (with current pintle geometry)
4. Check convergence (geometry changes < tolerance)
5. Repeat until converged

Definition at line 23 of file coupled_optimizer.py.

Constructor & Destructor Documentation

◆ __init__()

engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.__init__ ( self,
PintleEngineConfig base_config )

Definition at line 39 of file coupled_optimizer.py.

Member Function Documentation

◆ _calculate_relative_change()

float engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer._calculate_relative_change ( self,
Dict[str, float] params_prev,
Dict[str, float] params_current )
protected
Calculate maximum relative change between parameter sets.

Definition at line 454 of file coupled_optimizer.py.

References max.

Referenced by optimize_coupled().

◆ _extract_chamber_params()

Dict[str, float] engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer._extract_chamber_params ( self,
PintleEngineConfig config )
protected
Extract chamber geometry parameters for convergence checking.

Definition at line 443 of file coupled_optimizer.py.

Referenced by optimize_coupled().

◆ _extract_pintle_params()

Dict[str, float] engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer._extract_pintle_params ( self,
PintleEngineConfig config )
protected
Extract pintle geometry parameters for convergence checking.

Definition at line 429 of file coupled_optimizer.py.

Referenced by optimize_coupled().

◆ _optimize_chamber_time_varying()

Dict[str, Any] engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer._optimize_chamber_time_varying ( self,
PintleEngineConfig config,
Dict[str, Any] design_requirements,
Dict[str, Any] constraints,
float burn_time,
float P_tank_O,
float P_tank_F )
protected
Optimize chamber geometry across entire burn time.

This accounts for:
- Ablative recession (chamber volume grows, throat area grows)
- Graphite recession (throat area may grow if graphite erodes)
- Time-varying Cf (thrust coefficient changes with geometry)
- Time-varying efficiency (L* changes affect combustion efficiency)

Objective: Minimize error in average thrust over burn time

Definition at line 271 of file coupled_optimizer.py.

References chamber_optimizer, and max.

Referenced by optimize_coupled().

◆ optimize_coupled()

Dict[str, Any] engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.optimize_coupled ( self,
Dict[str, Any] design_requirements,
Dict[str, Any] constraints,
int max_iterations = 10,
float convergence_tolerance = 0.01,
bool use_time_varying = True )
Optimize pintle and chamber geometry with full coupling.

Parameters:
-----------
design_requirements : dict
    - target_thrust: float [N]
    - target_burn_time: float [s]
    - target_stability_margin: float
    - P_tank_O: float [Pa]
    - P_tank_F: float [Pa]
    - target_Isp: Optional[float] [s]

constraints : dict
    - max_chamber_length: float [m]
    - max_chamber_diameter: float [m]
    - min_Lstar: float [m]
    - max_Lstar: float [m]
    - min_expansion_ratio: float
    - max_expansion_ratio: float
    - max_engine_weight: Optional[float] [kg]
    - max_vehicle_length: Optional[float] [m]
    - max_vehicle_diameter: Optional[float] [m]

max_iterations : int
    Maximum number of coupling iterations

convergence_tolerance : float
    Relative change tolerance for convergence (e.g., 0.01 = 1%)

use_time_varying : bool
    If True, optimize chamber across entire burn time (accounts for ablative recession)
    If False, optimize at t=0 only

Returns:
--------
results : dict
    - optimized_config: PintleEngineConfig
    - iteration_history: List of iteration results
    - convergence_info: Dict with convergence status
    - performance: Final performance metrics

Definition at line 45 of file coupled_optimizer.py.

References _calculate_relative_change(), _extract_chamber_params(), _extract_pintle_params(), _optimize_chamber_time_varying(), engine.pipeline.chamber_optimizer.ChamberOptimizer.base_config, engine.pipeline.comprehensive_optimizer.ComprehensivePintleOptimizer.base_config, engine.pipeline.comprehensive_optimizer.VehicleLevelOptimizer.base_config, base_config, chamber_optimizer, max, engine.pipeline.comprehensive_optimizer.VehicleLevelOptimizer.pintle_optimizer, and pintle_optimizer.

Member Data Documentation

◆ base_config

engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.base_config = base_config

Definition at line 40 of file coupled_optimizer.py.

Referenced by optimize_coupled().

◆ chamber_optimizer

engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.chamber_optimizer = ChamberOptimizer(base_config)

Definition at line 42 of file coupled_optimizer.py.

Referenced by _optimize_chamber_time_varying(), and optimize_coupled().

◆ iteration_history

list engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.iteration_history = []

Definition at line 43 of file coupled_optimizer.py.

◆ pintle_optimizer

engine.pipeline.coupled_optimizer.CoupledPintleChamberOptimizer.pintle_optimizer = ComprehensivePintleOptimizer(base_config)

Definition at line 41 of file coupled_optimizer.py.

Referenced by optimize_coupled().


The documentation for this class was generated from the following file: