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

Static Public Attributes

Optional line_size
float d_inlet
float A_hydraulic
float K0 = Field(ge=0, description="Base loss coefficient")
float supply_K
float K1 = Field(ge=0, description="Pressure dependence coefficient")
Literal phi_type
Optional length
float K_exit
Optional d_exit
List fittings
Optional roughness_m
float K_entrance
Optional derived_from

Protected Member Functions

 _roughness_needs_length (self)
 _resolve_line_size (cls, data)
 _warn_area_diameter_mismatch (self)

Detailed Description

Feed system configuration for one branch (O or F).

The feed system is the PLUMBING between tank and injector — line bore plus lumped loss
coefficients. It sets how much tank pressure is spent getting propellant to the injector
face, so it directly moves the required tank pressure. It is vehicle hardware and is
deliberately independent of which propellant flows through it.

Give ``line_size`` (preferred — a name from FEED_LINE_SIZES) and the bore and area are
derived for you. ``d_inlet``/``A_hydraulic`` remain available for a non-standard passage,
and an explicitly-given area always wins over the derived one.

Definition at line 309 of file config_schemas.py.

Member Function Documentation

◆ _resolve_line_size()

engine.pipeline.config_schemas.FeedSystemConfig._resolve_line_size ( cls,
data )
protected
Fill d_inlet from line_size, and A_hydraulic from d_inlet, before validation.

d_inlet and A_hydraulic describe ONE passage two ways, and both used to be required and
independently editable, so nothing stopped them from disagreeing -- a stale area silently
outlived the diameter next to it. Deriving here means the pair cannot drift, while an
explicit A_hydraulic still wins for a genuinely non-circular passage.

Definition at line 429 of file config_schemas.py.

◆ _roughness_needs_length()

engine.pipeline.config_schemas.FeedSystemConfig._roughness_needs_length ( self)
protected

Definition at line 419 of file config_schemas.py.

◆ _warn_area_diameter_mismatch()

engine.pipeline.config_schemas.FeedSystemConfig._warn_area_diameter_mismatch ( self)
protected
Flag an A_hydraulic that does not match its own d_inlet (>1% off).

Definition at line 469 of file config_schemas.py.

Member Data Documentation

◆ A_hydraulic

engine.pipeline.config_schemas.FeedSystemConfig.A_hydraulic
static
Initial value:
= Field(
gt=0,
description="Flow area of the feed line [m²]. Derived as πd²/4 from d_inlet when omitted.",
)

Definition at line 335 of file config_schemas.py.

◆ d_exit

Optional engine.pipeline.config_schemas.FeedSystemConfig.d_exit
static
Initial value:
= Field(
default=None,
gt=0,
description=(
"Bore that discharges into the manifold [m], e.g. the 1/2 NPT fitting after a 1/2 in "
"tube run. None => the line itself (A_hydraulic)."
),
)

Definition at line 374 of file config_schemas.py.

◆ d_inlet

engine.pipeline.config_schemas.FeedSystemConfig.d_inlet
static
Initial value:
= Field(
gt=0,
description=(
"Inlet flow-path diameter [m] — the actual bore, not a thread size. Normally derived "
"from line_size; set directly only for a non-standard passage."
),
)

Definition at line 328 of file config_schemas.py.

◆ derived_from

Optional engine.pipeline.config_schemas.FeedSystemConfig.derived_from
static
Initial value:
= Field(
default=None,
description=(
"Where K0 came from when it was fitted rather than typed: Layer X writes the feed-twin "
"drawing it burned, the run, the fitted line and supply terms, the flow they hold at, and "
"the K0 it replaced (engine/layerx/feedfit.py). Read by people, not by the physics."
),
)

Definition at line 409 of file config_schemas.py.

◆ fittings

List engine.pipeline.config_schemas.FeedSystemConfig.fittings
static
Initial value:
= Field(
default_factory=list,
description=(
"Itemised valves, bends, tees, filters and fittings, each {name, K, source} with K on "
"the line velocity head. Summed into K_eff on both paths (K0 and roughness_m). Empty "
"=> no change."
),
)

Definition at line 382 of file config_schemas.py.

◆ K0

float engine.pipeline.config_schemas.FeedSystemConfig.K0 = Field(ge=0, description="Base loss coefficient")
static

Definition at line 339 of file config_schemas.py.

◆ K1

float engine.pipeline.config_schemas.FeedSystemConfig.K1 = Field(ge=0, description="Pressure dependence coefficient")
static

Definition at line 350 of file config_schemas.py.

◆ K_entrance

float engine.pipeline.config_schemas.FeedSystemConfig.K_entrance
static
Initial value:
= Field(
default=0.5,
ge=0,
description=(
"Tank-to-line entrance loss, line velocity heads; used only when roughness_m is set. "
"0.5 = sharp-edged entrance (Crane TP-410 A-29)."
),
)

Definition at line 401 of file config_schemas.py.

◆ K_exit

float engine.pipeline.config_schemas.FeedSystemConfig.K_exit
static
Initial value:
= Field(
default=1.0,
ge=0,
description=(
"Loss where the line discharges into the injector manifold, in velocity heads of the "
"exit bore (d_exit). 1.0: a plenum takes the whole velocity head (Borda-Carnot, "
"(1 - A_exit/A_manifold)^2 -> 1; Crane TP-410 pipe exit K = 1.0). Set 0 only when K0 "
"already counts it."
),
)

Definition at line 364 of file config_schemas.py.

◆ length

Optional engine.pipeline.config_schemas.FeedSystemConfig.length
static
Initial value:
= Field(
default=None,
gt=0,
description=(
"Feed-line length from tank outlet to injector manifold [m]. Sets the line inertance "
"(length / area) in the chug model. Leave unset and the stability model records a "
"0.305 m assumption instead of using it silently."
),
)

Definition at line 355 of file config_schemas.py.

◆ line_size

Optional engine.pipeline.config_schemas.FeedSystemConfig.line_size
static
Initial value:
= Field(
default=None,
description=(
"Named feed-line size, e.g. '3/8_NPT'. Sets d_inlet (and hence A_hydraulic) from "
f"the standard bore table. Valid: {', '.join(sorted(FEED_LINE_SIZES))}."
),
)

Definition at line 321 of file config_schemas.py.

◆ phi_type

Literal engine.pipeline.config_schemas.FeedSystemConfig.phi_type
static
Initial value:
= Field(
default="none",
description="Pressure function type"
)

Definition at line 351 of file config_schemas.py.

◆ roughness_m

Optional engine.pipeline.config_schemas.FeedSystemConfig.roughness_m
static
Initial value:
= Field(
default=None,
ge=0,
description=(
"Absolute wall roughness [m] (drawn stainless tube 1.5e-6, Crane TP-410 A-23). When "
"set, K_eff = K_entrance + f L/d_inlet + sum(fittings) with Darcy f from Colebrook-"
"White at the actual Re = rho v d_inlet / mu of each call, and K0 is NOT used. None "
"=> K0 is the loss (the measured-override path), exactly as before. Assumes one "
"circular passage of bore d_inlet; requires length."
),
)

Definition at line 390 of file config_schemas.py.

◆ supply_K

float engine.pipeline.config_schemas.FeedSystemConfig.supply_K
static
Initial value:
= Field(
default=0.0, ge=0,
description=(
"The part of K0 that is the pressurant supply sagging under flow (regulator droop and "
"supply effect), not the line: it lowers the injector inlet exactly as K0 does, but at "
"chug frequencies it is the regulator's compliance (modelled separately in stability), so "
"the chug loop's feed resistance leaves it out. Written by Layer X's feed fit. 0: K0 is "
"all line, as before."
),
)

Definition at line 340 of file config_schemas.py.


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