STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
engine.pipeline.config_schemas.DesignRequirementsConfig Class Reference
Inheritance diagram for engine.pipeline.config_schemas.DesignRequirementsConfig:
[legend]
Collaboration diagram for engine.pipeline.config_schemas.DesignRequirementsConfig:
[legend]

Static Public Attributes

float target_thrust = Field(default=7000.0, gt=0, description="Target peak thrust [N]")
Optional target_chamber_pressure_psi
Optional target_apogee = Field(default=3048.0, gt=0, description="Target apogee above ground level [m]")
Optional max_apogee_m = Field(default=None, gt=0, description="Apogee ceiling (waiver) [m], in max_apogee_datum. Checked on a vertical, windless flight at the low-drag end of the finish.")
Optional max_apogee_datum = Field(default=None, description="Datum of max_apogee_m: 'AGL' above the pad or 'MSL' above sea level. Required with max_apogee_m.")
Optional min_rail_exit_velocity_m_s = Field(default=None, gt=0, description="Minimum velocity leaving the rail [m/s] (e.g. 30.48 = 100 ft/s, Spaceport America Cup DTEG).")
Optional min_static_margin_cal = Field(default=None, description="Minimum static margin [cal], at rail exit and at burnout.")
Optional max_static_margin_cal = Field(default=None, description="Maximum static margin [cal]; above it the vehicle weathercocks hard into wind.")
float optimal_of_ratio = Field(default=2.3, gt=0, description="Target oxidizer-to-fuel mixture ratio")
float target_burn_time = Field(default=10.0, gt=0, description="Target burn time [s]")
float max_lox_tank_pressure_psi = Field(default=700.0, gt=0, description="Maximum LOX tank pressure [psi]")
float max_fuel_tank_pressure_psi = Field(default=850.0, gt=0, description="Maximum fuel tank pressure [psi]")
Optional max_P_tank_O = Field(default=None, gt=0, description="Maximum LOX tank pressure [Pa] (auto-converted from psi if None)")
Optional max_P_tank_F = Field(default=None, gt=0, description="Maximum fuel tank pressure [Pa] (auto-converted from psi if None)")
float max_engine_length = Field(default=0.5, gt=0, description="Maximum total engine length (chamber + nozzle) [m]")
float max_chamber_outer_diameter = Field(default=0.15, gt=0, description="Maximum chamber outer diameter [m]")
float metal_wall_thickness_per_side_m
float max_nozzle_exit_diameter = Field(default=0.101, gt=0, description="Maximum nozzle exit diameter [m]")
float min_Lstar = Field(default=0.95, gt=0, description="Minimum characteristic length [m]")
float max_Lstar = Field(default=1.27, gt=0, description="Maximum characteristic length [m]")
float min_stability_score = Field(default=0.75, ge=0, le=1, description="Minimum stability score (0-1)")
bool require_stable_state = Field(default=True, description="Require 'stable' state (not just 'marginal')")
float stability_margin_handicap = Field(default=0.0, ge=0, le=1, description="Stability requirement relaxation factor (0=strict, 1=any)")
float min_stability_margin
float chugging_margin_min = Field(default=0.2, ge=0, description="Minimum chugging stability margin")
float acoustic_margin_min = Field(default=0.1, ge=0, description="Minimum acoustic stability margin")
float feed_stability_min = Field(default=0.15, ge=0, description="Minimum feed system stability margin")
Optional lox_tank_capacity_kg = Field(default=None, gt=0, description="LOX tank capacity [kg]")
Optional fuel_tank_capacity_kg = Field(default=None, gt=0, description="Fuel tank capacity [kg]")
float propellant_tank_fill_factor
Optional copv_free_volume_L = Field(default=4.5, gt=0, description="COPV free internal volume [L]")
Optional copv_free_volume_m3 = Field(default=None, gt=0, description="COPV free volume [m³] (auto-converted from L if None)")
float injector_dp_ratio_O_min
float injector_dp_ratio_O_max
float injector_dp_ratio_F_min
float injector_dp_ratio_F_max
str feed_pressure_model
Optional regulator_supply_pressure_effect
Optional regulator_supply_pressure_effect_source
Optional regulator_min_differential_psi
float W_geom_ao_af_momentum
Optional W_MOM
Optional impinging_momentum_R_min
Optional impinging_momentum_R_max
Optional layer1_momentum_log_deadband_rel
Optional layer1_impinging_angle_deg_min
Optional layer1_impinging_jet_angle_min_deg
Optional layer1_impinging_angle_deg_max
Optional W_IMPINGING_ANGLE
Optional W_IMPINGING_JET_ASYM
Optional layer1_impinging_jet_angle_max_asym_deg
Optional W_SMD
Optional target_smd_microns
Optional layer1_smd_rel_tol
Optional W_TANK_EQUAL
Optional layer1_tank_equal_scale_psi
Optional layer1_chamber_od_increment_in
Optional layer1_lock_tank_pressures
Optional layer1_thrust_deadband_rel
Optional layer1_derive_tank_from_dp_ratio
Optional layer1_dp_ratio_target
Optional layer1_derive_fuel_jet_from_of
Optional layer1_tank_equal_inband_frac
Optional layer1_chamber_od_snap_target
Optional layer1_Lstar_from_smd
Optional layer1_Lstar_smd_ref_um
Optional layer1_Lstar_ref_m
Optional layer1_Lstar_smd_exponent
Optional layer1_Lstar_deadband_m
Optional layer1_impingement_Ld_target
Optional layer1_resultant_tilt_max_deg
Optional layer1_resultant_tilt_gate_tol_deg
Optional layer1_resultant_tilt_scale_deg
Optional layer1_W_TILT
Optional layer1_resultant_tilt_outward_multiplier
Optional layer1_momentum_wall_side_multiplier
Optional layer1_momentum_scale
Optional layer1_momentum_gate_safe_slack
Optional layer1_derive_impingement_spacing
Optional layer1_impingement_Ld_tol
Optional layer1_ring_order_fuel_outboard
Optional layer1_integer_jet_angles
Optional layer1_derive_expansion_ratio
Optional layer1_derive_throat_from_thrust
Optional layer1_derive_max_iters
Optional layer1_derive_thrust_tol_rel
Optional layer1_tank_equal_tol_psi
Optional layer1_of_deadband_rel
Optional layer1_exit_pressure_deadband_rel
Optional layer1_W_LSTAR
Optional layer1_Lstar_target_m
Optional layer1_W_MASS
Optional layer1_W_ISP
Optional layer1_contraction_half_angle_deg
Optional layer1_min_Lcyl_over_D
Optional layer1_max_element_pitch_m
Optional layer1_chamber_wall_density_kg_m3
Optional layer1_chamber_mass_ref_kg
Optional layer1_W_EXIT
Optional W_IMP_GEOM
Optional layer1_exit_pressure_inside_quad_scale
Optional layer1_impinging_n_doublets_max
Optional layer1_random_seed
Optional layer1_cma_warmstart_trials
Optional layer1_cma_warmstart_sigma_frac
Optional layer1_cma_restart0_sigma_scale
Optional layer1_lbfgs_gtol
Optional layer1_lbfgs_second_pass
Optional W_DP = Field(default=None, ge=0.0, description="Layer 1 fallback injector ΔP weight.")
Optional W_DP_O = Field(default=None, ge=0.0, description="Layer 1 oxidizer stream ΔP hinge weight.")
Optional W_DP_F = Field(default=None, ge=0.0, description="Layer 1 fuel stream ΔP hinge weight.")
Optional W_DP_HIGH
Optional W_DP_CENTER
Optional W_DP_O_FLOOR
Optional injector_dp_ratio_O_soft_floor
Optional layer1_A_throat_mm2_min
Optional layer1_A_throat_mm2_max
Optional layer1_cf_upper_bound_for_throat_floor
Optional layer1_pc_fraction_for_throat_floor
Optional layer1_enforce_ring_geometry
Optional layer1_injector_spray_radius_frac
Optional layer1_injector_spray_radius_tol
Optional layer1_injector_plate_thickness_m
Optional layer1_injector_min_face_incidence_deg
Optional layer1_injector_counterbore_dia_m
Optional layer1_injector_center_clear_dia_m
Optional layer1_injector_min_back_web_m
Optional layer1_injector_min_web_m
Optional layer1_injector_wall_clearance_m
Optional layer1_resultant_tilt_from_reach
Optional layer1_resultant_tilt_reach_margin
Optional layer1_impingement_Ld_min
Optional layer1_impingement_Ld_max
Optional layer1_momentum_band_width
Optional layer1_momentum_low_side_multiplier
Optional layer1_generations_per_restart
Optional max_chamber_length_m
Optional objective_cache_rel
Optional report_every_n
Optional layer1_infeasibility_gate_eps
Optional layer1_W_THRUST
Optional layer1_W_PC
Optional layer1_W_OF
Optional layer1_W_OF_low_MR_scale
Optional layer1_W_OF_high_MR_scale
Optional layer1_of_validation_tol
Optional layer1_thrust_validation_rel_tol
Optional W_CHAMBER_SHAPE
Optional layer1_chamber_dt_ratio_min
Optional layer1_chamber_dt_ratio_max
Optional layer1_chamber_ld_ratio_min
Optional layer1_chamber_ld_ratio_max
Optional layer1_stagnation_pressure_frac_min
Optional layer1_stagnation_pressure_frac_max
Optional layer1_expansion_ratio_min
Optional layer1_expansion_ratio_max
Optional layer1_P_O_start_psi_min
Optional layer1_P_O_start_psi_max
Optional layer1_P_F_start_psi_min
Optional layer1_P_F_start_psi_max
Optional frozen_parameters

Protected Member Functions

 _apogee_ceiling_has_datum (self)
 _injector_dp_bands_ordered (self)

Detailed Description

Design requirements for optimizer

Definition at line 1627 of file config_schemas.py.

Member Function Documentation

◆ _apogee_ceiling_has_datum()

engine.pipeline.config_schemas.DesignRequirementsConfig._apogee_ceiling_has_datum ( self)
protected

Definition at line 1646 of file config_schemas.py.

◆ _injector_dp_bands_ordered()

engine.pipeline.config_schemas.DesignRequirementsConfig._injector_dp_bands_ordered ( self)
protected

Definition at line 2592 of file config_schemas.py.

Member Data Documentation

◆ acoustic_margin_min

float engine.pipeline.config_schemas.DesignRequirementsConfig.acoustic_margin_min = Field(default=0.1, ge=0, description="Minimum acoustic stability margin")
static

Definition at line 1695 of file config_schemas.py.

◆ chugging_margin_min

float engine.pipeline.config_schemas.DesignRequirementsConfig.chugging_margin_min = Field(default=0.2, ge=0, description="Minimum chugging stability margin")
static

Definition at line 1694 of file config_schemas.py.

◆ copv_free_volume_L

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.copv_free_volume_L = Field(default=4.5, gt=0, description="COPV free internal volume [L]")
static

Definition at line 1709 of file config_schemas.py.

◆ copv_free_volume_m3

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.copv_free_volume_m3 = Field(default=None, gt=0, description="COPV free volume [m³] (auto-converted from L if None)")
static

Definition at line 1710 of file config_schemas.py.

◆ feed_pressure_model

str engine.pipeline.config_schemas.DesignRequirementsConfig.feed_pressure_model
static
Initial value:
= Field(
default="dome_regulated",
description="Tank pressure time model: blowdown (decaying segments) or dome_regulated (eq. 6.2)",
)

Definition at line 1733 of file config_schemas.py.

◆ feed_stability_min

float engine.pipeline.config_schemas.DesignRequirementsConfig.feed_stability_min = Field(default=0.15, ge=0, description="Minimum feed system stability margin")
static

Definition at line 1696 of file config_schemas.py.

◆ frozen_parameters

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.frozen_parameters
static
Initial value:
= Field(
default=None,
description="Optional frozen parameter values for Layer 1 optimization. When set, these values are used instead of being optimized."
)

Definition at line 2586 of file config_schemas.py.

◆ fuel_tank_capacity_kg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.fuel_tank_capacity_kg = Field(default=None, gt=0, description="Fuel tank capacity [kg]")
static

Definition at line 1700 of file config_schemas.py.

◆ impinging_momentum_R_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.impinging_momentum_R_max
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Preferred upper edge for momentum_ratio_R validation gate (impinging-only).",
)

Definition at line 1778 of file config_schemas.py.

◆ impinging_momentum_R_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.impinging_momentum_R_min
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Preferred lower edge for momentum_ratio_R hinge R (impinging-only). None disables.",
)

Definition at line 1773 of file config_schemas.py.

◆ injector_dp_ratio_F_max

float engine.pipeline.config_schemas.DesignRequirementsConfig.injector_dp_ratio_F_max
static
Initial value:
= Field(
default=0.40,
gt=0.0,
description="Preferred upper edge for fuel ΔP_inj/Pc (soft hinge)",
)

Definition at line 1728 of file config_schemas.py.

◆ injector_dp_ratio_F_min

engine.pipeline.config_schemas.DesignRequirementsConfig.injector_dp_ratio_F_min
static
Initial value:
= Field(
default=0.20,
ge=0.0,
description="Preferred lower edge for fuel ΔP_inj/Pc (soft hinge)",
)

Definition at line 1723 of file config_schemas.py.

◆ injector_dp_ratio_O_max

float engine.pipeline.config_schemas.DesignRequirementsConfig.injector_dp_ratio_O_max
static
Initial value:
= Field(
default=0.40,
gt=0.0,
description="Preferred upper edge for oxidizer ΔP_inj/Pc (soft hinge)",
)

Definition at line 1718 of file config_schemas.py.

◆ injector_dp_ratio_O_min

engine.pipeline.config_schemas.DesignRequirementsConfig.injector_dp_ratio_O_min
static
Initial value:
= Field(
default=0.20,
ge=0.0,
description="Preferred lower edge for oxidizer ΔP_inj/Pc (soft hinge)",
)

Definition at line 1713 of file config_schemas.py.

◆ injector_dp_ratio_O_soft_floor

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.injector_dp_ratio_O_soft_floor
static
Initial value:
= Field(default=None, gt=0.0, lt=1.0,
description="Soft floor on dP_O/Pc, penalised below this. None => not enforced")

Definition at line 2350 of file config_schemas.py.

◆ layer1_A_throat_mm2_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_A_throat_mm2_max
static
Initial value:
= Field(default=None, gt=0.0,
description="Upper bound on the throat-area search variable [mm^2]. None => derived")

Definition at line 2354 of file config_schemas.py.

◆ layer1_A_throat_mm2_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_A_throat_mm2_min
static
Initial value:
= Field(default=None, gt=0.0,
description="Lower bound on the throat-area search variable [mm^2]. None => derived")

Definition at line 2352 of file config_schemas.py.

◆ layer1_cf_upper_bound_for_throat_floor

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_cf_upper_bound_for_throat_floor
static
Initial value:
= Field(default=None, gt=0.0,
description="Cf ceiling used when deriving the throat-area floor. None => 1.8")

Definition at line 2356 of file config_schemas.py.

◆ layer1_chamber_dt_ratio_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_dt_ratio_max
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Preferred upper bound for chamber-to-throat diameter ratio D_chamber_inner/D_throat.",
)

Definition at line 2520 of file config_schemas.py.

◆ layer1_chamber_dt_ratio_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_dt_ratio_min
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Preferred lower bound for chamber-to-throat diameter ratio D_chamber_inner/D_throat.",
)

Definition at line 2515 of file config_schemas.py.

◆ layer1_chamber_ld_ratio_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_ld_ratio_max
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Preferred upper bound for chamber length ratio L_chamber/D_chamber_inner.",
)

Definition at line 2530 of file config_schemas.py.

◆ layer1_chamber_ld_ratio_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_ld_ratio_min
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Preferred lower bound for chamber length ratio L_chamber/D_chamber_inner.",
)

Definition at line 2525 of file config_schemas.py.

◆ layer1_chamber_mass_ref_kg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_mass_ref_kg
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"Normalising chamber mass [kg] for the layer1_W_MASS penalty — the mass at which the "
"term equals 1.0. Unset ⇒ 5 kg."
),
)

Definition at line 2234 of file config_schemas.py.

◆ layer1_chamber_od_increment_in

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_od_increment_in
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Snap the chamber OUTER diameter to this increment in INCHES (e.g. 0.5 for "
"half-inch stock). Ablative sleeve, chamber tube and case are bought in fixed "
"sizes, so a continuous optimum like 4.2 in is not purchasable — you build 4.0 or "
"4.5 and the engine you build is not the one that was optimised. Snapping inside "
"the evaluation means every candidate scored is one you can order, instead of "
"rounding afterwards and silently moving contraction ratio, L* and wall thickness "
"off the optimum. Unset/0 ⇒ continuous search."
),
)

Definition at line 1886 of file config_schemas.py.

◆ layer1_chamber_od_snap_target

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_od_snap_target
static
Initial value:
= Field(
default=None,
description=(
"Which diameter the stock increment applies to: 'outer' (the tube you buy) or "
"'bore' (the gas-side diameter). Only one can land on the increment, because "
"bore = OD - wall and the wall is rarely a whole increment — a 1.13 in wall "
"turns a 6.00 in OD into a 4.87 in bore. Unset ⇒ 'outer'."
),
)

Definition at line 1947 of file config_schemas.py.

◆ layer1_chamber_wall_density_kg_m3

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_chamber_wall_density_kg_m3
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"Effective density of the chamber wall stack (metal + ablative + graphite) for the "
"layer1_W_MASS proxy. Unset ⇒ 2000 kg/m³."
),
)

Definition at line 2226 of file config_schemas.py.

◆ layer1_cma_restart0_sigma_scale

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_cma_restart0_sigma_scale
static
Initial value:
= Field(
default=None,
ge=0.0,
le=1.0,
description=(
"After warm-start, multiply legacy CMA-ES initial step size (restart 0 only) by this factor "
"so the first population stays near the feasible mean (default 0.48 in code when unset)."
),
)

Definition at line 2304 of file config_schemas.py.

◆ layer1_cma_warmstart_sigma_frac

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_cma_warmstart_sigma_frac
static
Initial value:
= Field(
default=None,
ge=0.0,
le=0.5,
description=(
"Per-dimension Gaussian scale for warm-start perturbations: ``sigma_frac × (upper−lower)``. "
"Default 0.04 when unset."
),
)

Definition at line 2295 of file config_schemas.py.

◆ layer1_cma_warmstart_trials

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_cma_warmstart_trials
static
Initial value:
= Field(
default=None,
ge=0,
description=(
"Before legacy CMA-ES, evaluate this many clipped/snapped candidates around ``x0`` "
"(same worker objective as CMA). 0 disables. Default 16 in optimizer when unset."
),
)

Definition at line 2287 of file config_schemas.py.

◆ layer1_contraction_half_angle_deg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_contraction_half_angle_deg
static
Initial value:
= Field(
default=None,
gt=0,
lt=90,
description=(
"Convergent half-angle [deg] for the chamber contraction. Was hardcoded at 45 deg. "
"45 deg is the LENGTH-optimal angle; it is not the MASS-optimal one, because a "
"shallower cone is longer but moves volume out of the full-diameter barrel (which "
"carries the whole wall stack) into the tapering cone shell. 30 deg measured lighter "
"at equal L* on the 8 kN ethalox point. Conventional band 25-45 deg. None = 45."
),
)

Definition at line 2194 of file config_schemas.py.

◆ layer1_derive_expansion_ratio

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_derive_expansion_ratio
static
Initial value:
= Field(
default=None,
description=(
"Solve the expansion ratio for a perfectly expanded exit (Pe = ambient) instead "
"of searching it. Closed-form isentropic inversion of Pc/Pe, so the exit plane "
"lands on ambient exactly and one optimizer dimension disappears. Turn OFF only "
"to size deliberately over/under-expanded nozzles, or to explore a range of "
"expansion ratios against fixed hardware. Unset ⇒ ON."
),
)

Definition at line 2088 of file config_schemas.py.

◆ layer1_derive_fuel_jet_from_of

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_derive_fuel_jet_from_of
static
Initial value:
= Field(
default=None,
description=(
"Solve the fuel jet diameter from the O/F target (equal-ΔP area ratio). "
"Experimental — the one-step secant overshoots when Pc moves with it. Unset ⇒ OFF."
),
)

Definition at line 1929 of file config_schemas.py.

◆ layer1_derive_impingement_spacing

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_derive_impingement_spacing
static
Initial value:
= Field(
default=None,
description=(
"Solve the fuel-ring hole pitch so the doublet meets at exactly "
"layer1_impingement_Ld_target jet diameters, instead of searching it. One "
"equation, one unknown: |s_F − s_O| = 2π·k·d_avg·(tanθ_O + tanθ_F)/n. Removes an "
"optimizer dimension and makes the standoff exact rather than a penalty the "
"search negotiates with. Turn OFF to search the fuel pitch freely. Unset ⇒ ON."
),
)

Definition at line 2051 of file config_schemas.py.

◆ layer1_derive_max_iters

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_derive_max_iters
static
Initial value:
= Field(
default=None,
ge=1.0,
description=(
"Cap on root-find iterations per candidate when solving the derived DOFs; the solve "
"exits once thrust is within layer1_derive_thrust_tol_rel and eps has stopped moving. "
"Unset ⇒ 8. (2 fixed steps left a 0.4-0.9 % thrust miss that depended on the start.)"
),
)

Definition at line 2108 of file config_schemas.py.

◆ layer1_derive_tank_from_dp_ratio

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_derive_tank_from_dp_ratio
static
Initial value:
= Field(
default=None,
description=(
"With tanks locked, solve the single tank pressure from the injector ΔP/Pc target "
"(P_tank = Pc·(1+r) + ΔP_feed) instead of searching it. Makes the ΔP/Pc band exact "
"but removes the pressure's Isp anchor, so Pc and Isp fall. Unset ⇒ OFF."
),
)

Definition at line 1917 of file config_schemas.py.

◆ layer1_derive_throat_from_thrust

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_derive_throat_from_thrust
static
Initial value:
= Field(
default=None,
description=(
"Solve the throat area from the thrust requirement instead of searching it. "
"Thrust is monotonic in throat area, so a short root-find lands the target "
"exactly and removes an optimizer dimension. Turn OFF when the throat is fixed "
"hardware (an existing graphite insert) and thrust is an output rather than a "
"requirement. Unset ⇒ ON."
),
)

Definition at line 2098 of file config_schemas.py.

◆ layer1_derive_thrust_tol_rel

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_derive_thrust_tol_rel
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"Relative thrust tolerance for the derived-throat solve; iteration stops inside "
"this band. Unset ⇒ 1e-3 (0.1%)."
),
)

Definition at line 2117 of file config_schemas.py.

◆ layer1_dp_ratio_target

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_dp_ratio_target
static
Initial value:
= Field(
default=None, gt=0.0,
description="ΔP/Pc target for the tank-pressure derivation. Unset ⇒ mid-band.",
)

Definition at line 1925 of file config_schemas.py.

◆ layer1_enforce_ring_geometry

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_enforce_ring_geometry
static
Initial value:
= Field(default=None,
description="Enforce doublet ring fit / element gap / impingement standoff from the "
"DESIGN VARIABLES. None => True. Note the older diagnostics-driven term "
"(_impinging_geometry_fit_squared) is inert because the numba accelerator "
"emits none of the keys it reads -- this flag governs the live one.")

Definition at line 2360 of file config_schemas.py.

◆ layer1_exit_pressure_deadband_rel

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_exit_pressure_deadband_rel
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"Relative deadband around ambient inside which exit-pressure error is free. Was "
"hardcoded at 0.05 — for a 13.64 psi target that made 12.96–14.33 psi cost nothing, "
"so runs settled at 14.6 psi and still reported converged. Tighten (e.g. 0.005) when "
"exit pressure is a real requirement. Unset ⇒ 0.05."
),
)

Definition at line 2144 of file config_schemas.py.

◆ layer1_exit_pressure_inside_quad_scale

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_exit_pressure_inside_quad_scale
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Inside the nominal plus-or-minus 5 percent exit-pressure deadband, multiply W_EXIT by this "
"coefficient times (ΔP_exit/P_tgt) squared to steer toward atmospheric-matched nozzle exit pressure."
),
)

Definition at line 2264 of file config_schemas.py.

◆ layer1_expansion_ratio_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_expansion_ratio_max
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Optional upper bound for Layer 1 expansion-ratio search box (default when unset: 12.0).",
)

Definition at line 2559 of file config_schemas.py.

◆ layer1_expansion_ratio_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_expansion_ratio_min
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Optional lower bound for Layer 1 expansion-ratio search box (default when unset: 4.0).",
)

Definition at line 2554 of file config_schemas.py.

◆ layer1_generations_per_restart

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_generations_per_restart
static
Initial value:
= Field(default=None, gt=0.0,
description="CMA-ES generations per restart. None => 50.0")

Definition at line 2447 of file config_schemas.py.

◆ layer1_impingement_Ld_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impingement_Ld_max
static
Initial value:
= Field(default=None, gt=0.0,
description="Max impingement standoff in orifice diameters. None => Ld_target + Ld_tol")

Definition at line 2441 of file config_schemas.py.

◆ layer1_impingement_Ld_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impingement_Ld_min
static
Initial value:
= Field(default=None, gt=0.0,
description="Min impingement standoff in orifice diameters. None => Ld_target - Ld_tol")

Definition at line 2439 of file config_schemas.py.

◆ layer1_impingement_Ld_target

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impingement_Ld_target
static
Initial value:
= Field(
default=None, gt=0.0,
description=(
"Where the jets of a doublet should meet, in JET DIAMETERS from the injector face. "
"Too close and the collision erodes the injector plate; too far and the sheet "
"spreads before it breaks up. Published practice for unlike doublets is 3–7. "
"Unset ⇒ 4."
),
)

Definition at line 1987 of file config_schemas.py.

◆ layer1_impingement_Ld_tol

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impingement_Ld_tol
static
Initial value:
= Field(
default=None, ge=0.0,
description=(
"Free window around the impingement target, in jet diameters. Only meaningful "
"when the spacing derivation is OFF — when it is on the target is hit exactly. "
"Unset ⇒ 0 with the derivation on, 1.0 with it off."
),
)

Definition at line 2061 of file config_schemas.py.

◆ layer1_impinging_angle_deg_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impinging_angle_deg_max
static
Initial value:
= Field(
default=None,
gt=0.0,
lt=180.0,
description="Preferred upper edge for effective impingement angle hinge [deg] (impinging-only).",
)

Definition at line 1813 of file config_schemas.py.

◆ layer1_impinging_angle_deg_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impinging_angle_deg_min
static
Initial value:
= Field(
default=None,
gt=0.0,
lt=180.0,
description="Preferred lower edge for effective impingement angle hinge [deg] (impinging-only).",
)

Definition at line 1792 of file config_schemas.py.

◆ layer1_impinging_jet_angle_max_asym_deg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impinging_jet_angle_max_asym_deg
static
Initial value:
= Field(
default=None,
gt=0.0,
lt=180.0,
description=(
"Impinging paired jets only: allowable |θ_O−θ_F| before asymmetry hinge activates [deg]. "
"Unset ⇒ optimizer defaults (see layer1_static_optimization)."
),
)

Definition at line 1836 of file config_schemas.py.

◆ layer1_impinging_jet_angle_min_deg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impinging_jet_angle_min_deg
static
Initial value:
= Field(
default=None,
gt=0.0,
lt=90.0,
description=(
"HARD lower bound on a SINGLE jet's inclination from the chamber axis [deg]. "
"Distinct from layer1_impinging_angle_deg_min, which bounds the INCLUDED angle "
"(the sum of the two jets). The per-jet search box is widened by the permitted "
"asymmetry and can fall to 10 deg or below, and the optimiser will use it -- the "
"8 kN ethalox point returned theta_O = 13 deg, which is not drillable on a flat "
"face without a spot-face or jig. Manufacturing, not physics, so nothing in the "
"objective knows about it. None => no floor beyond the derived box. 20 deg is a "
"reasonable default for conventional drilling."
),
)

Definition at line 1798 of file config_schemas.py.

◆ layer1_impinging_n_doublets_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_impinging_n_doublets_max
static
Initial value:
= Field(
default=None,
ge=5,
description=(
"Layer 1 impinging: max paired LOX/fuel element count (n_doublets). "
"The bore-derived ceiling from ``impinging_n_elements_hi_int`` is clipped to this value when set."
),
)

Definition at line 2272 of file config_schemas.py.

◆ layer1_infeasibility_gate_eps

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_infeasibility_gate_eps
static
Initial value:
= Field(
default=None,
ge=0.0,
description="Treat infeasibility_score ≤ eps as feasible for thrust/MR/ΔP objective blending (code default 0.002).",
)

Definition at line 2456 of file config_schemas.py.

◆ layer1_injector_center_clear_dia_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_center_clear_dia_m
static
Initial value:
= Field(default=None, gt=0.0,
description="Clear circle that must remain unobstructed at the centre of the injector "
"face [m] -- igniter boss, centre-body or instrumentation port. The inner "
"edge of the innermost orifice ring must stay outside it. None => 0.0 "
"(no centre reservation). A 3/8-18 NPT spark igniter is 17.15 mm across the "
"thread crest, so ~0.028 m of boss plus clearance is a realistic entry.")

Definition at line 2407 of file config_schemas.py.

◆ layer1_injector_counterbore_dia_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_counterbore_dia_m
static
Initial value:
= Field(default=None, gt=0.0,
description="Feed-passage (counterbore) diameter behind each orifice [m]. The orifice "
"itself is only a short LAND of discharge.orifice_l_over_d diameters at the "
"face end; the rest of the passage is this larger bore. Without it the "
"drilled depth reads as if the orifice diameter ran the whole plate, which "
"reported L/d 13.5 on a design whose small drill only goes 6.6 mm. "
"None => the passage check uses the orifice diameter (conservative).")

Definition at line 2400 of file config_schemas.py.

◆ layer1_injector_min_back_web_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_min_back_web_m
static
Initial value:
= Field(default=None, ge=0.0,
description="Minimum land between neighbouring passage entries on the BACK (manifold) "
"face of the plate [m]. An inclined hole walks t*tan(theta) radially through "
"the plate and the inner ring's entries crowd toward the axis: on "
"ethalox_8kN_SHIP the LOX counterbores leave 1.61 mm on the back against a "
"6.40 mm face web. Needs layer1_injector_plate_thickness_m. None => inert "
"(the drawing still warns against the face web floor).")

Definition at line 2413 of file config_schemas.py.

◆ layer1_injector_min_face_incidence_deg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_min_face_incidence_deg
static
Initial value:
= Field(default=None, ge=0.0, le=90.0,
description="Minimum angle between an orifice axis and the face PLANE [deg], i.e. "
"90 - theta. A drill entering a flat at shallow incidence walks; below this "
"the entry needs a spot-face milled normal to the hole axis. None => 0 "
"(inert). NOTE this is a per-jet ceiling on theta, complementary to "
"layer1_impinging_jet_angle_min_deg which is the floor.")

Definition at line 2394 of file config_schemas.py.

◆ layer1_injector_min_web_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_min_web_m
static
Initial value:
= Field(default=None, ge=0.0,
description="Minimum land (web) between adjacent orifices on the SAME ring [m]. The only "
"prior guard was spacing >= d_jet, i.e. a web of exactly zero. None => 0.0.")

Definition at line 2420 of file config_schemas.py.

◆ layer1_injector_plate_thickness_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_plate_thickness_m
static
Initial value:
= Field(default=None, gt=0.0,
description="Injector face plate thickness [m]. An orifice inclined theta from the "
"chamber axis runs t/cos(theta) through it -- 2.79x the plate at 69 deg. "
"Used for the drilled-passage and face-incidence machining checks. "
"None => the checks are inert.")

Definition at line 2389 of file config_schemas.py.

◆ layer1_injector_spray_radius_frac

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_spray_radius_frac
static
Initial value:
= Field(default=None, gt=0.0, le=1.0,
description="Target impingement radius as a fraction of the chamber bore RADIUS. Every "
"doublet on one ring collides on the same circle r_imp = r_inner + L_imp * "
"tan(theta_inner), and that circle is where the propellant is actually put "
"into the chamber. Nothing constrained it: the ring pair is free to slide "
"radially (the standoff derivation fixes the ring GAP, not its radius), so "
"it parks on whatever bound it meets. Measured: r_imp/r_wall 0.33, feeding "
"10.8 % of the chamber area through a circle NARROWER THAN THE THROAT; and "
"again at 0.44 once only a lower bound existed. The natural target is the "
"EQUAL-AREA radius 1/sqrt(2) = 0.7071, which splits the chamber cross-"
"section in half. None => inert.")

Definition at line 2375 of file config_schemas.py.

◆ layer1_injector_spray_radius_tol

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_spray_radius_tol
static
Initial value:
= Field(default=None, gt=0.0,
description="Half-width of the free band around layer1_injector_spray_radius_frac, in "
"the same fraction-of-radius units. None => 0.08.")

Definition at line 2386 of file config_schemas.py.

◆ layer1_injector_wall_clearance_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_injector_wall_clearance_m
static
Initial value:
= Field(default=None, ge=0.0,
description="Minimum radial gap from the outermost orifice's face trace to the chamber "
"bore [m] -- manifold land, and the room a fuel barrier row would need. "
"None => 0.0.")

Definition at line 2423 of file config_schemas.py.

◆ layer1_integer_jet_angles

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_integer_jet_angles
static
Initial value:
= Field(
default=None,
description=(
"Snap impinging-doublet jet angles to whole degrees. A drill jig is indexed in "
"whole degrees, so a 43.7° optimum is not machinable, and rounding it afterwards "
"moves impingement distance, momentum ratio and SMD off the scored point. "
"Impinging injectors only (pintle has no angle DOF). Unset ⇒ ON."
),
)

Definition at line 2079 of file config_schemas.py.

◆ layer1_lbfgs_gtol

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_lbfgs_gtol
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"Gradient norm tolerance for the L-BFGS-B local refinement after CMA-ES (default 1e-9 in code). "
"Tighter values can reduce the weighted objective; they do not target a specific absolute objective magnitude."
),
)

Definition at line 2313 of file config_schemas.py.

◆ layer1_lbfgs_second_pass

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_lbfgs_second_pass
static
Initial value:
= Field(
default=None,
description=(
"If true, run a second L-BFGS-B from the first local optimum with a tighter ``gtol`` (default true in code)."
),
)

Definition at line 2321 of file config_schemas.py.

◆ layer1_lock_tank_pressures

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_lock_tank_pressures
static
Initial value:
= Field(
default=None,
description=(
"Treat the two tank pressures as ONE optimizer variable — the fuel tank follows "
"the LOX tank exactly. 'Match tank pressures' says they are one quantity, so "
"searching them separately and penalizing the gap makes the optimizer pay forever "
"for a degree of freedom it was told not to use. Unset ⇒ follows the match-tanks "
"checkbox (W_TANK_EQUAL > 0)."
),
)

Definition at line 1899 of file config_schemas.py.

◆ layer1_Lstar_deadband_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_Lstar_deadband_m
static
Initial value:
= Field(
default=None, ge=0.0,
description=(
"Total width of the free window around the L* target [m]. Unset ⇒ 0.1 (±0.05), "
"which is finer than the correlation's own accuracy."
),
)

Definition at line 1980 of file config_schemas.py.

◆ layer1_Lstar_from_smd

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_Lstar_from_smd
static
Initial value:
= Field(
default=None,
description=(
"Derive the L* target from the spray SMD instead of using a fixed number. L* buys "
"residence time and the residence time you NEED is set by how long the droplets "
"take to evaporate (d²-law: τ_vap ∝ SMD²), so L*_target ∝ SMD². Treating them as "
"independent knobs is what makes a good design look like a failed one. Unset ⇒ ON."
),
)

Definition at line 1956 of file config_schemas.py.

◆ layer1_Lstar_ref_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_Lstar_ref_m
static
Initial value:
= Field(
default=None, gt=0.0,
description="L* target at the SMD anchor [m]. Unset ⇒ 1.10 (i.e. 99 µm ⇒ 1.05–1.15).",
)

Definition at line 1969 of file config_schemas.py.

◆ layer1_Lstar_smd_exponent

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_Lstar_smd_exponent
static
Initial value:
= Field(
default=None,
description=(
"Exponent in L*_target ∝ SMD^n. Unset ⇒ 2.0, which is the d²-law, not a fit — "
"change it only to model a different evaporation regime."
),
)

Definition at line 1973 of file config_schemas.py.

◆ layer1_Lstar_smd_ref_um

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_Lstar_smd_ref_um
static
Initial value:
= Field(
default=None, gt=0.0,
description="SMD anchor for the L* correlation [µm]. Unset ⇒ 99.",
)

Definition at line 1965 of file config_schemas.py.

◆ layer1_Lstar_target_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_Lstar_target_m
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"L* [m] above which layer1_W_LSTAR starts charging. At or below it is free. "
"Unset ⇒ 1.0 m."
),
)

Definition at line 2165 of file config_schemas.py.

◆ layer1_max_element_pitch_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_max_element_pitch_m
static
Initial value:
= Field(
default=None,
gt=0,
description=(
"Maximum injector element pitch sqrt(A_chamber/n_elements) [m], enforced as "
"infeasibility. eta_mixing (Rupe) sees only momentum ratio, so nothing otherwise "
"charges for spreading a fixed element count over a larger face -- the optimiser can "
"buy chamber diameter for free. None = not enforced."
),
)

Definition at line 2216 of file config_schemas.py.

◆ layer1_min_Lcyl_over_D

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_min_Lcyl_over_D
static
Initial value:
= Field(
default=None,
gt=0,
description=(
"Minimum CYLINDRICAL-length-to-bore ratio, enforced as infeasibility (not a penalty). "
"layer1_chamber_ld_ratio_min gates TOTAL chamber length, which lets the convergent "
"cone masquerade as mixing length; the constant-area section is where impinging "
"sprays actually mix. Pair with spray.evaporation.x_star_limit. None = not enforced."
),
)

Definition at line 2206 of file config_schemas.py.

◆ layer1_momentum_band_width

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_momentum_band_width
static
Initial value:
= Field(default=None, gt=0.0,
description="Half-width of the log-symmetric momentum-ratio preference band. None => 0.05")

Definition at line 2443 of file config_schemas.py.

◆ layer1_momentum_gate_safe_slack

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_momentum_gate_safe_slack
static
Initial value:
= Field(
default=None, ge=1.0,
description=(
"Widens the momentum validation band symmetrically about 1, as a multiple of the "
"configured half-width. Unset ⇒ 1 (the gate is the configured band)."
),
)

Definition at line 2044 of file config_schemas.py.

◆ layer1_momentum_log_deadband_rel

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_momentum_log_deadband_rel
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Multiplicative deadband for Layer-1 log-space momentum pull toward R=1 "
"(optimizer soft term). Default when unset: 0.0 "
"(layer1_static_optimization._LAYER1_DEFAULT_MOMENTUM_LOG_DEADBAND_REL)."
),
)

Definition at line 1783 of file config_schemas.py.

◆ layer1_momentum_low_side_multiplier

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_momentum_low_side_multiplier
static
Initial value:
= Field(default=None, ge=0.0,
description="Extra weight on momentum-ratio misses below the band. None => 10.0")

Definition at line 2445 of file config_schemas.py.

◆ layer1_momentum_scale

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_momentum_scale
static
Initial value:
= Field(
default=None, gt=0.0,
description="Normalizing scale for the momentum-ratio deviation (in log R). Unset ⇒ 0.10.",
)

Definition at line 2040 of file config_schemas.py.

◆ layer1_momentum_wall_side_multiplier

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_momentum_wall_side_multiplier
static
Initial value:
= Field(
default=None, ge=1.0,
description=(
"How much more a momentum-ratio miss costs when it throws the spray toward the "
"chamber WALL than toward the core. With LOX inboard, R > 1 means the LOX stream "
"wins the collision and the fan deflects outward onto the ablative; R < 1 sends "
"it into the core, which only costs mixing. Unset ⇒ 10."
),
)

Definition at line 2031 of file config_schemas.py.

◆ layer1_of_deadband_rel

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_of_deadband_rel
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Relative O/F error that costs nothing, e.g. 0.02 for ±2%. Without it, landing at "
"1.6646 against a 1.65 target (+0.9%, far inside the 15% validation gate) still "
"carried 4.7 objective points. Unset ⇒ 0."
),
)

Definition at line 2135 of file config_schemas.py.

◆ layer1_of_validation_tol

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_of_validation_tol
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"Relative MR error cap used for Layer‑1 bookkeeping and for ``pressure_candidate_valid`` "
"O/F gate (default 0.15)."
),
)

Definition at line 2494 of file config_schemas.py.

◆ layer1_P_F_start_psi_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_P_F_start_psi_max
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Optional fuel stagnation upper bound [psi].",
)

Definition at line 2579 of file config_schemas.py.

◆ layer1_P_F_start_psi_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_P_F_start_psi_min
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Optional fuel stagnation lower bound [psi].",
)

Definition at line 2574 of file config_schemas.py.

◆ layer1_P_O_start_psi_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_P_O_start_psi_max
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Optional absolute LOX stagnation upper bound [psi].",
)

Definition at line 2569 of file config_schemas.py.

◆ layer1_P_O_start_psi_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_P_O_start_psi_min
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Optional absolute LOX stagnation pressure lower bound [psi] for Layer 1 (overrides frac box).",
)

Definition at line 2564 of file config_schemas.py.

◆ layer1_pc_fraction_for_throat_floor

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_pc_fraction_for_throat_floor
static
Initial value:
= Field(default=None, gt=0.0, le=1.0,
description="Fraction of target Pc used when deriving the throat floor. None => 0.75")

Definition at line 2358 of file config_schemas.py.

◆ layer1_random_seed

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_random_seed
static
Initial value:
= Field(
default=None,
description=(
"Layer 1 integer seed for NumPy restart perturbations and CMA-ES ``seed`` "
"(each restart uses seed + restart_index × 1_000_003). Omit or null → base 42."
),
)

Definition at line 2280 of file config_schemas.py.

◆ layer1_resultant_tilt_from_reach

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_resultant_tilt_from_reach
static
Initial value:
= Field(default=None,
description="Derive the permitted outward spray tilt from the design's own geometry "
"instead of taking layer1_resultant_tilt_max_deg as a constant. An outward "
"fan is only a hazard if it REACHES the liner while the spray is still "
"liquid, and the angle at which it does depends on the impingement radius -- "
"which the optimizer is free to move underneath a fixed allowance. When true "
"the limit is atan((r_wall - r_imp) / (margin * L_chamber)). None => False "
"(the constant is used, previous behaviour exactly).")

Definition at line 2427 of file config_schemas.py.

◆ layer1_resultant_tilt_gate_tol_deg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_resultant_tilt_gate_tol_deg
static
Initial value:
= Field(
default=None, ge=0.0,
description=(
"Tolerance added to the outward-tilt limit for the VALIDATION gate only, so "
"whole-degree jet angles cannot fail a design by rounding. Unset ⇒ 1°."
),
)

Definition at line 2007 of file config_schemas.py.

◆ layer1_resultant_tilt_max_deg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_resultant_tilt_max_deg
static
Initial value:
= Field(
default=None,
description=(
"Largest OUTWARD tilt of the doublet's spray resultant, in degrees from the "
"chamber axis, before the design is treated as infeasible. This is the real "
"ablative guard: the fan follows the vector sum of the two streams, and a fan "
"aimed at the liner erodes it. Positive is toward the wall. Unset ⇒ 0 (never "
"outward). The momentum-flux ratio R is NOT this quantity — p_O/p_F = R²·A_O/A_F, "
"so R = 1 is not balance."
),
)

Definition at line 1996 of file config_schemas.py.

◆ layer1_resultant_tilt_outward_multiplier

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_resultant_tilt_outward_multiplier
static
Initial value:
= Field(
default=None, ge=1.0,
description="Outward-side multiplier on the tilt preference (layer1_W_TILT). Unset ⇒ 25.",
)

Definition at line 2027 of file config_schemas.py.

◆ layer1_resultant_tilt_reach_margin

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_resultant_tilt_reach_margin
static
Initial value:
= Field(default=None, gt=0.0,
description="Safety factor on chamber length for layer1_resultant_tilt_from_reach. "
"1.5 means the fan may not reach the liner inside 1.5 chamber lengths. "
"None => 1.5.")

Definition at line 2435 of file config_schemas.py.

◆ layer1_resultant_tilt_scale_deg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_resultant_tilt_scale_deg
static
Initial value:
= Field(
default=None, gt=0.0,
description="Normalizing scale [deg] for the resultant-tilt violation. Unset ⇒ 2.",
)

Definition at line 2014 of file config_schemas.py.

◆ layer1_ring_order_fuel_outboard

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_ring_order_fuel_outboard
static
Initial value:
= Field(
default=None,
description=(
"Put the FUEL ring outboard of the LOX ring on the injector face. Whatever passes "
"the impingement point on the outer ring is what reaches the chamber wall, and a "
"fuel-rich wall film is what an ablative liner wants — an oxidizer-rich one attacks "
"it. The impingement physics uses |ΔD_pitch| and is indifferent to the order, so "
"this costs nothing. Unset ⇒ ON."
),
)

Definition at line 2069 of file config_schemas.py.

◆ layer1_smd_rel_tol

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_smd_rel_tol
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Half-width of the SMD deadband as a fraction of target (e.g. 0.20 ⇒ band is "
"target·[0.8, 1.2]). Unset ⇒ optimizer default (0.20)."
),
)

Definition at line 1862 of file config_schemas.py.

◆ layer1_stagnation_pressure_frac_max

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_stagnation_pressure_frac_max
static
Initial value:
= Field(
default=None,
ge=0.0,
le=1.0,
description="Companion upper fraction for stagnation-pressure box. Default when unset: 1.0 "
"(the search reaches the cap itself).",
)

Definition at line 2547 of file config_schemas.py.

◆ layer1_stagnation_pressure_frac_min

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_stagnation_pressure_frac_min
static
Initial value:
= Field(
default=None,
ge=0.0,
le=1.0,
description=(
"Layer 1 search-box lower edge as a fraction of each tank cap: "
"P_O ∈ [max_lox×f_min, max_lox×f_max], P_F similarly (unless overridden below). "
"Default when unset: 0.35 (the cap is the limit; the old 0.65 left the bottom of "
"the band unsearched)."
),
)

Definition at line 2536 of file config_schemas.py.

◆ layer1_tank_equal_inband_frac

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_tank_equal_inband_frac
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Weak always-on pull toward equal tank pressures INSIDE the match tolerance, as a "
"fraction of the out-of-band weight. A pure deadband is flat inside the band, so "
"nothing separates 1 psi from 9.9 psi and the optimizer parks on the edge — which "
"is how a 10 psi requirement comes back at 10.1 psi. Unset ⇒ 0.05; 0 restores the "
"flat deadband."
),
)

Definition at line 1936 of file config_schemas.py.

◆ layer1_tank_equal_scale_psi

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_tank_equal_scale_psi
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Normalizing scale [psi] for the equal-tank-pressure penalty. Unset ⇒ 100 psi.",
)

Definition at line 1881 of file config_schemas.py.

◆ layer1_tank_equal_tol_psi

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_tank_equal_tol_psi
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Tank-pressure delta [psi] that costs nothing — set it to your PT margin of error. "
"Without it any nonzero delta is squared, so matching to 1.93 psi (a success against "
"a 10 psi spec) still carried 11 objective points and read as non-convergence. "
"Unset ⇒ 0 (no deadband, historical behaviour)."
),
)

Definition at line 2125 of file config_schemas.py.

◆ layer1_thrust_deadband_rel

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_thrust_deadband_rel
static
Initial value:
= Field(
default=None, ge=0.0,
description=(
"Relative thrust deadband in the objective. Unset ⇒ 0.1% when the throat is solved "
"from thrust (the derivation lands on target; a wide band only lets edge-sitting "
"designs through 2-3% off), 2% when the throat is searched."
),
)

Definition at line 1909 of file config_schemas.py.

◆ layer1_thrust_validation_rel_tol

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_thrust_validation_rel_tol
static
Initial value:
= Field(
default=None,
gt=0.0,
description=(
"Relative thrust error gate for ``pressure_candidate_valid``. "
"If unset, uses ``tolerances['thrust']`` passed into ``run_layer1_optimization`` (default 10%)."
),
)

Definition at line 2502 of file config_schemas.py.

◆ layer1_W_EXIT

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_EXIT
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 weight on the nozzle exit-pressure term (P_exit vs ambient). Was hardcoded "
"at 2e2 in two places, i.e. ~300x weaker than layer1_W_THRUST (6e4), so exit pressure "
"never bound. Unset ⇒ optimizer default (2e2)."
),
)

Definition at line 2242 of file config_schemas.py.

◆ layer1_W_ISP

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_ISP
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 figure of merit: weight on the propellant the delivered Isp costs beyond an "
"ideal engine for the required total impulse, W_ISP·(Isp_ideal/Isp − 1) (Sutton & "
"Biblarz ch. 2: m_prop = F·t_b/(g0·Isp)). O/F and a Pc target are held at their "
"requirement inside it, so it cannot pull them off target. Reported as isp_penalty "
"(1000 ⇒ tenths of a percent of the ideal propellant). Unset ⇒ 1000; 0 ⇒ off."
),
)

Definition at line 2183 of file config_schemas.py.

◆ layer1_W_LSTAR

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_LSTAR
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 weight on L* ABOVE layer1_Lstar_target_m: ((L*-target)/target)², one-sided. "
"L* is the only design variable with no opposing force in the objective — more "
"residence time is pure reward — so it pinned to its max bound in every run. A chamber "
"mass penalty does NOT substitute: wall mass scales as D·L while volume scales as D²·L, "
"so charging for mass buys a fatter chamber at the same L*. Unset/0 ⇒ disabled."
),
)

Definition at line 2154 of file config_schemas.py.

◆ layer1_W_MASS

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_MASS
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 weight on chamber dry mass, (m/layer1_chamber_mass_ref_kg)², the "
"counterweight to layer1_W_ISP. Unset ⇒ priced like propellant: at the reference mass "
"1 kg of chamber costs what 1 kg of propellant does at fixed total impulse, "
"W_MASS = W_ISP·m_ref/(2·m_prop_ideal). 0 ⇒ disabled."
),
)

Definition at line 2173 of file config_schemas.py.

◆ layer1_W_OF

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_OF
static
Initial value:
= Field(
default=None,
ge=0.0,
description="Layer 1 weight on relative MR error squared (code default 1e4 when unset).",
)

Definition at line 2473 of file config_schemas.py.

◆ layer1_W_OF_high_MR_scale

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_OF_high_MR_scale
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"When MR exceeds optimal_of_ratio, multiply the O/F penalty by max(1, this scale) "
"(default 1: symmetric with low‑MR tuning optional)."
),
)

Definition at line 2486 of file config_schemas.py.

◆ layer1_W_OF_low_MR_scale

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_OF_low_MR_scale
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"When MR is below optimal_of_ratio, multiply the O/F penalty by max(1, this scale) "
"(default 1: no extra weight on fuel-rich side)."
),
)

Definition at line 2478 of file config_schemas.py.

◆ layer1_W_PC

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_PC
static
Initial value:
= Field(
default=None,
ge=0.0,
description="Layer 1 weight on the chamber-pressure target penalty — an exact (L1) penalty on "
"|Pc - target|, so Pc lands ON the target (only active when target_chamber_pressure_psi "
"is set; code default 1e4 when unset). Raise to hold Pc tighter, lower to let thrust win ties.",
)

Definition at line 2466 of file config_schemas.py.

◆ layer1_W_THRUST

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_THRUST
static
Initial value:
= Field(
default=None,
ge=0.0,
description="Layer 1 weight on thrust penalty term (code default 1e4 when unset).",
)

Definition at line 2461 of file config_schemas.py.

◆ layer1_W_TILT

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.layer1_W_TILT
static
Initial value:
= Field(
default=None, ge=0.0,
description=(
"Weight of the resultant-spray-tilt preference: W (tilt/scale)^2 around 0 deg, with the "
"outward (wall) side multiplied by layer1_resultant_tilt_outward_multiplier. Inward lean "
"is allowed at a mild cost; the hard wall guard (layer1_resultant_tilt_max_deg / reach) "
"still applies. Unset or 0 = off."
),
)

Definition at line 2018 of file config_schemas.py.

◆ lox_tank_capacity_kg

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.lox_tank_capacity_kg = Field(default=None, gt=0, description="LOX tank capacity [kg]")
static

Definition at line 1699 of file config_schemas.py.

◆ max_apogee_datum

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.max_apogee_datum = Field(default=None, description="Datum of max_apogee_m: 'AGL' above the pad or 'MSL' above sea level. Required with max_apogee_m.")
static

Definition at line 1640 of file config_schemas.py.

◆ max_apogee_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.max_apogee_m = Field(default=None, gt=0, description="Apogee ceiling (waiver) [m], in max_apogee_datum. Checked on a vertical, windless flight at the low-drag end of the finish.")
static

Definition at line 1639 of file config_schemas.py.

◆ max_chamber_length_m

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.max_chamber_length_m
static
Initial value:
= Field(default=None, gt=0.0,
description="Hard cap on chamber length (injector face to throat) [m]. None => 0.50")

Definition at line 2449 of file config_schemas.py.

◆ max_chamber_outer_diameter

float engine.pipeline.config_schemas.DesignRequirementsConfig.max_chamber_outer_diameter = Field(default=0.15, gt=0, description="Maximum chamber outer diameter [m]")
static

Definition at line 1665 of file config_schemas.py.

◆ max_engine_length

float engine.pipeline.config_schemas.DesignRequirementsConfig.max_engine_length = Field(default=0.5, gt=0, description="Maximum total engine length (chamber + nozzle) [m]")
static

Definition at line 1664 of file config_schemas.py.

◆ max_fuel_tank_pressure_psi

float engine.pipeline.config_schemas.DesignRequirementsConfig.max_fuel_tank_pressure_psi = Field(default=850.0, gt=0, description="Maximum fuel tank pressure [psi]")
static

Definition at line 1659 of file config_schemas.py.

◆ max_lox_tank_pressure_psi

float engine.pipeline.config_schemas.DesignRequirementsConfig.max_lox_tank_pressure_psi = Field(default=700.0, gt=0, description="Maximum LOX tank pressure [psi]")
static

Definition at line 1658 of file config_schemas.py.

◆ max_Lstar

float engine.pipeline.config_schemas.DesignRequirementsConfig.max_Lstar = Field(default=1.27, gt=0, description="Maximum characteristic length [m]")
static

Definition at line 1678 of file config_schemas.py.

◆ max_nozzle_exit_diameter

float engine.pipeline.config_schemas.DesignRequirementsConfig.max_nozzle_exit_diameter = Field(default=0.101, gt=0, description="Maximum nozzle exit diameter [m]")
static

Definition at line 1674 of file config_schemas.py.

◆ max_P_tank_F

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.max_P_tank_F = Field(default=None, gt=0, description="Maximum fuel tank pressure [Pa] (auto-converted from psi if None)")
static

Definition at line 1661 of file config_schemas.py.

◆ max_P_tank_O

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.max_P_tank_O = Field(default=None, gt=0, description="Maximum LOX tank pressure [Pa] (auto-converted from psi if None)")
static

Definition at line 1660 of file config_schemas.py.

◆ max_static_margin_cal

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.max_static_margin_cal = Field(default=None, description="Maximum static margin [cal]; above it the vehicle weathercocks hard into wind.")
static

Definition at line 1643 of file config_schemas.py.

◆ metal_wall_thickness_per_side_m

float engine.pipeline.config_schemas.DesignRequirementsConfig.metal_wall_thickness_per_side_m
static
Initial value:
= Field(
default=0.00635, gt=0,
description="Chamber metal case thickness per side [m] (geometry envelope; default 0.25 in). "
"Layer 1 derives the total OD -> gas-side wall as 2 * (this + ablative liner "
"thickness when ablative cooling is enabled) — see optimizer.utils.total_wall_thickness_m. "
"There is no separate lump wall field: the ablative share tracks "
"ablative_cooling.initial_thickness automatically after Layer 3 sizes it. "
"Distinct from stainless_steel_case.thickness (thermal-model conduction wall, often null).")

Definition at line 1666 of file config_schemas.py.

◆ min_Lstar

float engine.pipeline.config_schemas.DesignRequirementsConfig.min_Lstar = Field(default=0.95, gt=0, description="Minimum characteristic length [m]")
static

Definition at line 1677 of file config_schemas.py.

◆ min_rail_exit_velocity_m_s

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.min_rail_exit_velocity_m_s = Field(default=None, gt=0, description="Minimum velocity leaving the rail [m/s] (e.g. 30.48 = 100 ft/s, Spaceport America Cup DTEG).")
static

Definition at line 1641 of file config_schemas.py.

◆ min_stability_margin

float engine.pipeline.config_schemas.DesignRequirementsConfig.min_stability_margin
static
Initial value:
= Field(
default=1.2, gt=0,
description=(
"Minimum combustion-stability gain margin [-], 1 = neutral: the chug loop's Nyquist gain "
"margin (low end of the mixing-lag band), and the acoustic damping/driving ratio when "
"stability.acoustic_gate gates it. 2.0 = 6 dB. Not the flight static margin."
),
)

Definition at line 1686 of file config_schemas.py.

◆ min_stability_score

float engine.pipeline.config_schemas.DesignRequirementsConfig.min_stability_score = Field(default=0.75, ge=0, le=1, description="Minimum stability score (0-1)")
static

Definition at line 1681 of file config_schemas.py.

◆ min_static_margin_cal

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.min_static_margin_cal = Field(default=None, description="Minimum static margin [cal], at rail exit and at burnout.")
static

Definition at line 1642 of file config_schemas.py.

◆ objective_cache_rel

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.objective_cache_rel
static
Initial value:
= Field(default=None, gt=0.0,
description="Relative tolerance for the objective memo cache. None => 1e-5")

Definition at line 2451 of file config_schemas.py.

◆ optimal_of_ratio

float engine.pipeline.config_schemas.DesignRequirementsConfig.optimal_of_ratio = Field(default=2.3, gt=0, description="Target oxidizer-to-fuel mixture ratio")
static

Definition at line 1654 of file config_schemas.py.

◆ propellant_tank_fill_factor

float engine.pipeline.config_schemas.DesignRequirementsConfig.propellant_tank_fill_factor
static
Initial value:
= Field(
default=0.90,
gt=0.0,
le=1.0,
description="Max liquid fill fraction of tank internal volume for flight simulation (e.g. 0.90 = 90% ullage margin)",
)

Definition at line 1701 of file config_schemas.py.

◆ regulator_min_differential_psi

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.regulator_min_differential_psi
static
Initial value:
= Field(
default=None, ge=0.0,
description=(
"Inlet-minus-outlet pressure below which the regulator can no longer hold its outlet [psi]; "
"the dome-regulated curve raises instead of drawing through it. Unset = 0 (outlet <= inlet)."
),
)

Definition at line 1749 of file config_schemas.py.

◆ regulator_supply_pressure_effect

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.regulator_supply_pressure_effect
static
Initial value:
= Field(
default=None, ge=0.0,
description=(
"Dome regulator supply-pressure effect: outlet rise per unit inlet drop [psi/psi]. A property "
"of the regulator: Aqua 1092 datasheet 0.010, TB 1031 ~0.017. Unset = 0.010 (Aqua 1092), "
"recorded as an assumption until the regulator is confirmed."
),
)

Definition at line 1737 of file config_schemas.py.

◆ regulator_supply_pressure_effect_source

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.regulator_supply_pressure_effect_source
static
Initial value:
= Field(
default=None,
description="Where regulator_supply_pressure_effect came from (datasheet, flow test).",
)

Definition at line 1745 of file config_schemas.py.

◆ report_every_n

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.report_every_n
static
Initial value:
= Field(default=None, gt=0,
description="Progress reporting stride in evaluations. None => 1")

Definition at line 2453 of file config_schemas.py.

◆ require_stable_state

bool engine.pipeline.config_schemas.DesignRequirementsConfig.require_stable_state = Field(default=True, description="Require 'stable' state (not just 'marginal')")
static

Definition at line 1682 of file config_schemas.py.

◆ stability_margin_handicap

float engine.pipeline.config_schemas.DesignRequirementsConfig.stability_margin_handicap = Field(default=0.0, ge=0, le=1, description="Stability requirement relaxation factor (0=strict, 1=any)")
static

Definition at line 1683 of file config_schemas.py.

◆ target_apogee

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.target_apogee = Field(default=3048.0, gt=0, description="Target apogee above ground level [m]")
static

Definition at line 1637 of file config_schemas.py.

◆ target_burn_time

float engine.pipeline.config_schemas.DesignRequirementsConfig.target_burn_time = Field(default=10.0, gt=0, description="Target burn time [s]")
static

Definition at line 1655 of file config_schemas.py.

◆ target_chamber_pressure_psi

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.target_chamber_pressure_psi
static
Initial value:
= Field(
default=None, gt=0,
description="Optional target chamber pressure [psi]. Pc is emergent in a pressure-fed engine, so "
"this is a soft objective target (not a hard constraint): when set, the Layer-1 optimizer "
"drives tank pressure to land Pc near this value and sizes the throat for the thrust target, "
"instead of pushing Pc higher to make thrust. Leave null to let Pc float freely.")

Definition at line 1631 of file config_schemas.py.

◆ target_smd_microns

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.target_smd_microns
static
Initial value:
= Field(
default=None,
gt=0.0,
description="Target effective Sauter mean diameter [µm] for the SMD objective (e.g. 50).",
)

Definition at line 1857 of file config_schemas.py.

◆ target_thrust

float engine.pipeline.config_schemas.DesignRequirementsConfig.target_thrust = Field(default=7000.0, gt=0, description="Target peak thrust [N]")
static

Definition at line 1630 of file config_schemas.py.

◆ W_CHAMBER_SHAPE

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_CHAMBER_SHAPE
static
Initial value:
= Field(
default=None,
ge=0.0,
description="Layer 1 weight on chamber-shape regularization (D_chamber/D_throat and L_chamber/D_chamber).",
)

Definition at line 2510 of file config_schemas.py.

◆ W_DP

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_DP = Field(default=None, ge=0.0, description="Layer 1 fallback injector ΔP weight.")
static

Definition at line 2327 of file config_schemas.py.

◆ W_DP_CENTER

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_DP_CENTER
static
Initial value:
= Field(default=None, ge=0.0,
description="Weight pulling injector dP/Pc toward the centre of its band. None => 500.0")

Definition at line 2346 of file config_schemas.py.

◆ W_DP_F

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_DP_F = Field(default=None, ge=0.0, description="Layer 1 fuel stream ΔP hinge weight.")
static

Definition at line 2329 of file config_schemas.py.

◆ W_DP_HIGH

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_DP_HIGH
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 weight on injector ΔP hinge term when both ΔP/Pc streams exceed their bands "
"(used together with W_DP_O/W_DP_F in weighted injector ΔP penalty)."
),
)

Definition at line 2330 of file config_schemas.py.

◆ W_DP_O

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_DP_O = Field(default=None, ge=0.0, description="Layer 1 oxidizer stream ΔP hinge weight.")
static

Definition at line 2328 of file config_schemas.py.

◆ W_DP_O_FLOOR

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_DP_O_FLOOR
static
Initial value:
= Field(default=None, ge=0.0,
description="Weight on the oxidiser dP/Pc soft floor. None => 0.0 (disabled)")

Definition at line 2348 of file config_schemas.py.

◆ W_geom_ao_af_momentum

float engine.pipeline.config_schemas.DesignRequirementsConfig.W_geom_ao_af_momentum
static
Initial value:
= Field(
default=0.0,
ge=0.0,
description=(
"Layer 1 impinging-only: weight × (relative error)² steering A_geom_O/A_geom_F toward "
"MR/√(ρ_O/ρ_F) (consistent with R≈1 for bulk velocities). 0 disables."
),
)

Definition at line 1756 of file config_schemas.py.

◆ W_IMP_GEOM

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_IMP_GEOM
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 impinging-only weight on the geometry/vaporization-fit penalty (normalized "
"squared violations of: L_imp+x* within the evaporation budget, ring pitch diameter "
"within the chamber bore, and element non-overlap). 0/None disables."
),
)

Definition at line 2255 of file config_schemas.py.

◆ W_IMPINGING_ANGLE

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_IMPINGING_ANGLE
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 impinging-only weight on effective impingement angle hinge term "
"(uses layer1_impinging_angle_deg_min/max when both are set)."
),
)

Definition at line 1819 of file config_schemas.py.

◆ W_IMPINGING_JET_ASYM

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_IMPINGING_JET_ASYM
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Impinging paired jets only: weight on normalized excess [|θ_O−θ_F| − "
"`layer1_impinging_jet_angle_max_asym_deg`]₊ squared (paired-doublet coherence preference)."
),
)

Definition at line 1828 of file config_schemas.py.

◆ W_MOM

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_MOM
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Weight on momentum_ratio_R quadratic hinge relative to bands below "
"(default in layer1_static_optimization.py is 75 when unset)."
),
)

Definition at line 1765 of file config_schemas.py.

◆ W_SMD

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_SMD
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 impinging-only weight on the SMD range penalty. 0/None disables. The penalty is "
"a two-sided deadband: zero inside [target·(1−tol), target·(1+tol)], squared outside."
),
)

Definition at line 1849 of file config_schemas.py.

◆ W_TANK_EQUAL

Optional engine.pipeline.config_schemas.DesignRequirementsConfig.W_TANK_EQUAL
static
Initial value:
= Field(
default=None,
ge=0.0,
description=(
"Layer 1 impinging-only weight on ((P_tank_O − P_tank_F)/scale)². 0/None disables."
),
)

Definition at line 1874 of file config_schemas.py.


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