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

Classes

class  Row

Functions

List[int] _symmetric_n_values (int n_min, int n_max, *, bool quick, Optional[int] bins=None, Optional[int] quick_clip_max=None)
float _geom_A (int n, float d_jet)
Optional[str] _precheck_impinging_skip_reason (cfg, int n_O, float d_O, int n_F, float d_F, *, float P_O_psi, float P_F_psi)
Row _failed_row (int n_O, float d_O, int n_F, float d_F, float P_O_psi, float P_F_psi, str err)
None _apply_impinging_geometry (cfg, int n_O, float d_O, int n_F, float d_F)
Row _one_eval (base_cfg, int n_O, float d_O, int n_F, float d_F, float P_O_psi, float P_F_psi)
bool _in_dp_band (float r_o, float r_f, float lo=DP_BAND_LO, float hi=DP_BAND_HI)
bool _in_r_band (float r, float lo=R_BAND_LO, float hi=R_BAND_HI)
bool _mission_all_met (Row row, float F_t, float MR_t, *, float f_rel=MISSION_F_REL, float mr_rel=MISSION_MR_REL)
float _distance_score (Row row, float F_t, float MR_t, float w_dp=5.0, *, float r_lo=R_BAND_LO, float r_hi=R_BAND_HI, float dp_lo=DP_BAND_LO, float dp_hi=DP_BAND_HI)
int run_grid_independent (List[Row] rows, base, Sequence[int] n_O_list, Sequence[int] n_F_list, Sequence[float] d_O_list, Sequence[float] d_F_list, Sequence[Tuple[float, float]] tank_grid)
Tuple[List[int], List[int], List[float], List[float], List[Tuple[float, float]], str] _scenario_spec (str name, *, int n_min, int n_max, bool quick, float P_O_yaml, float P_F_yaml, float max_lox_psi, float max_fuel_psi, float P_O_lo_l1, float P_O_hi_l1, float P_F_lo_l1, float P_F_hi_l1, float d_jet_upper_m=0.004)
bool _stream_dp_ok (float r)
float _r_distance_to_band (float r)
None _print_extended_feasibility_analysis (List[Row] ok_rows, List[Row] band_rows, float F_target, float MR_target, *, int max_show=8)
None _print_report (List[Row] rows, float F_target, float MR_target, int max_rows, Dict[str, Any] req, int n_max, float P_O_lo, float P_O_hi, float P_F_lo, float P_F_hi, str scenario_footer="")
None main (Optional[Sequence[str]] argv=None)

Variables

float R_BAND_LO = 0.909
float R_BAND_HI = 1.1
float DP_BAND_LO = 0.20
float DP_BAND_HI = 0.35
float MISSION_F_REL = 0.05
float MISSION_MR_REL = 0.05
 ROOT = Path(__file__).resolve().parents[1]
float PSI_TO_PA = 6894.76

Detailed Description

Feasibility sweep: impinging LOX/CH4 geometry vs ΔP/Pc band (no physics changes).

Loads a YAML config (default: configs/impinging_lox_ch4_8000N.yaml) with frozen
chamber/throat/nozzle, sweeps injector counts/orifice diameters (optional tank
pressures), runs runner.evaluate, and ranks cases vs design_requirements thrust/O/F
plus momentum R window and ΔP_inj/Pc band.

Before ``evaluate``, unrealistic impinging combinations are skipped (precheck tags
in ``Row.err``): area vs throat, face packing density, spacing / ring count / n·d_jet,
and coarse mdot-vs-throat proxies from tank PSI.

Usage (from repo root, with venv and PYTHONPATH=.):
  PYTHONPATH=. python scripts/feasibility_impinging_lox_ch4_sweep.py --config configs/impinging_lox_ch4_8000N.yaml
  PYTHONPATH=. python scripts/feasibility_impinging_lox_ch4_sweep.py --quick

Related: ``scripts/pareto_throat_dp_pressures.py`` sweeps throat area × tank-cap scenarios
and solves tank pressures for thrust/MR targets (geometry fixed from YAML).

Function Documentation

◆ _apply_impinging_geometry()

None feasibility_impinging_lox_ch4_sweep._apply_impinging_geometry ( cfg,
int n_O,
float d_O,
int n_F,
float d_F )
protected

Definition at line 247 of file feasibility_impinging_lox_ch4_sweep.py.

References max.

Referenced by _one_eval().

◆ _distance_score()

float feasibility_impinging_lox_ch4_sweep._distance_score ( Row row,
float F_t,
float MR_t,
float w_dp = 5.0,
* ,
float r_lo = R_BAND_LO,
float r_hi = R_BAND_HI,
float dp_lo = DP_BAND_LO,
float dp_hi = DP_BAND_HI )
protected
Lower is better (composite deviation from targets).

Definition at line 377 of file feasibility_impinging_lox_ch4_sweep.py.

References max.

Referenced by _print_report().

◆ _failed_row()

Row feasibility_impinging_lox_ch4_sweep._failed_row ( int n_O,
float d_O,
int n_F,
float d_F,
float P_O_psi,
float P_F_psi,
str err )
protected

Definition at line 188 of file feasibility_impinging_lox_ch4_sweep.py.

References _geom_A().

Referenced by _one_eval().

◆ _geom_A()

float feasibility_impinging_lox_ch4_sweep._geom_A ( int n,
float d_jet )
protected

◆ _in_dp_band()

bool feasibility_impinging_lox_ch4_sweep._in_dp_band ( float r_o,
float r_f,
float lo = DP_BAND_LO,
float hi = DP_BAND_HI )
protected

Definition at line 337 of file feasibility_impinging_lox_ch4_sweep.py.

Referenced by _mission_all_met(), and _print_report().

◆ _in_r_band()

bool feasibility_impinging_lox_ch4_sweep._in_r_band ( float r,
float lo = R_BAND_LO,
float hi = R_BAND_HI )
protected

◆ _mission_all_met()

bool feasibility_impinging_lox_ch4_sweep._mission_all_met ( Row row,
float F_t,
float MR_t,
* ,
float f_rel = MISSION_F_REL,
float mr_rel = MISSION_MR_REL )
protected
F/MR near targets, R in band, both ΔP/Pc streams in band.

Definition at line 355 of file feasibility_impinging_lox_ch4_sweep.py.

References _in_dp_band(), and _in_r_band().

Referenced by _print_report().

◆ _one_eval()

Row feasibility_impinging_lox_ch4_sweep._one_eval ( base_cfg,
int n_O,
float d_O,
int n_F,
float d_F,
float P_O_psi,
float P_F_psi )
protected

◆ _precheck_impinging_skip_reason()

Optional[str] feasibility_impinging_lox_ch4_sweep._precheck_impinging_skip_reason ( cfg,
int n_O,
float d_O,
int n_F,
float d_F,
* ,
float P_O_psi,
float P_F_psi )
protected
Return skip tag if geometry is unrealistic before runner.evaluate(); else None.

Mirrors Layer-1 soft limits (area vs throat, packing, d_jet vs spacing) plus coarse
Bernoulli mdot proxies using tank PSI and a guessed Pc so obviously oversized A_eff
does not burn closure iterations.

Definition at line 89 of file feasibility_impinging_lox_ch4_sweep.py.

References _geom_A(), max, and min.

Referenced by _one_eval().

◆ _print_extended_feasibility_analysis()

None feasibility_impinging_lox_ch4_sweep._print_extended_feasibility_analysis ( List[Row] ok_rows,
List[Row] band_rows,
float F_target,
float MR_target,
* ,
int max_show = 8 )
protected
Pairwise-best rows and marginal constraint failure stats (successful evals only).

Definition at line 580 of file feasibility_impinging_lox_ch4_sweep.py.

References _in_r_band(), _r_distance_to_band(), _stream_dp_ok(), and max.

Referenced by _print_report().

◆ _print_report()

None feasibility_impinging_lox_ch4_sweep._print_report ( List[Row] rows,
float F_target,
float MR_target,
int max_rows,
Dict[str, Any] req,
int n_max,
float P_O_lo,
float P_O_hi,
float P_F_lo,
float P_F_hi,
str scenario_footer = "" )
protected

◆ _r_distance_to_band()

float feasibility_impinging_lox_ch4_sweep._r_distance_to_band ( float r)
protected
0 if R in [R_BAND_LO, R_BAND_HI], else squared distance to nearest edge.

Definition at line 569 of file feasibility_impinging_lox_ch4_sweep.py.

Referenced by _print_extended_feasibility_analysis().

◆ _scenario_spec()

Tuple[List[int], List[int], List[float], List[float], List[Tuple[float, float]], str] feasibility_impinging_lox_ch4_sweep._scenario_spec ( str name,
* ,
int n_min,
int n_max,
bool quick,
float P_O_yaml,
float P_F_yaml,
float max_lox_psi,
float max_fuel_psi,
float P_O_lo_l1,
float P_O_hi_l1,
float P_F_lo_l1,
float P_F_hi_l1,
float d_jet_upper_m = 0.004 )
protected
Return (n_O, n_F, d_O, d_F, tanks, description). n_max/d_jet_hi scale with chamber bore.

Definition at line 448 of file feasibility_impinging_lox_ch4_sweep.py.

References _symmetric_n_values(), max, and min.

Referenced by main().

◆ _stream_dp_ok()

bool feasibility_impinging_lox_ch4_sweep._stream_dp_ok ( float r)
protected

◆ _symmetric_n_values()

List[int] feasibility_impinging_lox_ch4_sweep._symmetric_n_values ( int n_min,
int n_max,
* ,
bool quick,
Optional[int] bins = None,
Optional[int] quick_clip_max = None )
protected
Coarse n_grid: small engines keep step-5 sweep; large n_max uses ~8-bin linspace.

Definition at line 64 of file feasibility_impinging_lox_ch4_sweep.py.

References min.

Referenced by _scenario_spec(), and main().

◆ main()

None feasibility_impinging_lox_ch4_sweep.main ( Optional[Sequence[str]] argv = None)

◆ run_grid_independent()

int feasibility_impinging_lox_ch4_sweep.run_grid_independent ( List[Row] rows,
base,
Sequence[int] n_O_list,
Sequence[int] n_F_list,
Sequence[float] d_O_list,
Sequence[float] d_F_list,
Sequence[Tuple[float, float]] tank_grid )
Append evaluations; returns total count for this grid.

Definition at line 418 of file feasibility_impinging_lox_ch4_sweep.py.

References _one_eval().

Referenced by main().

Variable Documentation

◆ DP_BAND_HI

float feasibility_impinging_lox_ch4_sweep.DP_BAND_HI = 0.35

Definition at line 28 of file feasibility_impinging_lox_ch4_sweep.py.

◆ DP_BAND_LO

float feasibility_impinging_lox_ch4_sweep.DP_BAND_LO = 0.20

Definition at line 27 of file feasibility_impinging_lox_ch4_sweep.py.

◆ MISSION_F_REL

float feasibility_impinging_lox_ch4_sweep.MISSION_F_REL = 0.05

Definition at line 30 of file feasibility_impinging_lox_ch4_sweep.py.

◆ MISSION_MR_REL

float feasibility_impinging_lox_ch4_sweep.MISSION_MR_REL = 0.05

Definition at line 31 of file feasibility_impinging_lox_ch4_sweep.py.

◆ PSI_TO_PA

float feasibility_impinging_lox_ch4_sweep.PSI_TO_PA = 6894.76

Definition at line 61 of file feasibility_impinging_lox_ch4_sweep.py.

◆ R_BAND_HI

float feasibility_impinging_lox_ch4_sweep.R_BAND_HI = 1.1

Definition at line 25 of file feasibility_impinging_lox_ch4_sweep.py.

◆ R_BAND_LO

float feasibility_impinging_lox_ch4_sweep.R_BAND_LO = 0.909

Definition at line 24 of file feasibility_impinging_lox_ch4_sweep.py.

◆ ROOT

feasibility_impinging_lox_ch4_sweep.ROOT = Path(__file__).resolve().parents[1]

Definition at line 44 of file feasibility_impinging_lox_ch4_sweep.py.