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

Functions

 config ()
 drawing ()
 _prep (config, drawing, **settings)
 _burst_rated (drawing, tank_psi=1500.0, bottle_psi=15000.0, relief_psi=None)
 _fails (prep)
 test_a_lockup_over_the_mawp_trip_fails_preflight (config, drawing)
 test_burst_pressure_is_the_rating_when_drawn (config, drawing)
 test_a_fill_over_the_bottles_relief_is_said (config, drawing)
 test_a_burn_that_starts_off_its_datum_is_not_a_settled_answer (config, drawing)
 _burn (float peak_ox, float peak_fuel)
 test_the_limits_grade_the_tank_peak_on_the_trip ()
 test_the_set_point_and_optimiser_caps_are_the_trip ()

Variables

 reason
float PSI = 6894.757293168361
float ATM_PSI = 101325.0 / PSI
str GN2 = "copv_study_gn2"
str CFG = Path(__file__).resolve().parent / "fixtures" / "ethalox_6500N_doublet_cad_2026-09-28.yaml"
 needs_drawing

Detailed Description

Layer X holds each vessel to the pressure the feed twin trips the stand at.

The twin trips a vessel when its absolute pressure is over ``_trip_limit``: the drawing's burst
pressure over ``Setup.burst_safety_factor`` (across the wall) when one is drawn, else its MAWP --
both read as the drawing reads them, a bare psi being gauge, so ``.si`` is already absolute.

Before 2026-11-02 Layer X read the MAWP as a pressure *across* the wall: preflight passed a lockup
up to one atmosphere plus the site's over the trip (``target - ambient > MAWP.si``), the optimiser
and set point capped the lockup at ``MAWP.si + ambient``, the water-hammer rating added another
atmosphere, and the limits graded ``peak - ambient`` against the absolute figure. And it read no
burst pressure at all, which is how LE4 (3) rates every vessel: preflight said "nothing checks
those vessels" while the twin tripped its tanks at 764.7 psia.

Worked by hand: copv_study_gn2's tanks are drawn MAWP 1000 psi -> 1014.70 psia. LE4 (3)-style burst
1500 psi over a factor of 2 -> (1500 / 2) psig = 764.70 psia; 15000 psi -> 7514.70 psia.

Function Documentation

◆ _burn()

test_layerx_ratings._burn ( float peak_ox,
float peak_fuel )
protected
Two lead-in samples and four firing steps, flat but for each tank's peak.

Definition at line 157 of file test_layerx_ratings.py.

Referenced by test_the_limits_grade_the_tank_peak_on_the_trip().

◆ _burst_rated()

test_layerx_ratings._burst_rated ( drawing,
tank_psi = 1500.0,
bottle_psi = 15000.0,
relief_psi = None )
protected
``drawing`` rated as LE4 (3) is: burst pressures, no MAWP; optionally a relief on the bottle's manifold.

Definition at line 61 of file test_layerx_ratings.py.

Referenced by test_a_burn_that_starts_off_its_datum_is_not_a_settled_answer(), test_a_fill_over_the_bottles_relief_is_said(), and test_burst_pressure_is_the_rating_when_drawn().

◆ _fails()

test_layerx_ratings._fails ( prep)
protected

◆ _prep()

◆ config()

test_layerx_ratings.config ( void )

Definition at line 46 of file test_layerx_ratings.py.

◆ drawing()

test_layerx_ratings.drawing ( )

Definition at line 51 of file test_layerx_ratings.py.

◆ test_a_burn_that_starts_off_its_datum_is_not_a_settled_answer()

test_layerx_ratings.test_a_burn_that_starts_off_its_datum_is_not_a_settled_answer ( config,
drawing )
The 4500 psia fill vents through the 4000 psi relief in the settle (to ~3895 psia) and the tanks
follow the regulator's supply effect: T-0 is not the burn asked for. The run said only "T-0 did not
settle" and stood as converged; it now says what it started from and is not converged.

Definition at line 137 of file test_layerx_ratings.py.

References _burst_rated(), and _prep().

◆ test_a_fill_over_the_bottles_relief_is_said()

test_layerx_ratings.test_a_fill_over_the_bottles_relief_is_said ( config,
drawing )
A relief on the bottle's manifold at 4000 psi lifts at 4014.7 psia: a 4500 psia fill vents in
the settle, so preflight warns; a 3900 psia one does not.

Definition at line 124 of file test_layerx_ratings.py.

References _burst_rated(), and _prep().

◆ test_a_lockup_over_the_mawp_trip_fails_preflight()

test_layerx_ratings.test_a_lockup_over_the_mawp_trip_fails_preflight ( config,
drawing )
1000 psi MAWP trips at 1014.70 psia. 1012 passes; 1022 -- under MAWP.si plus the site's 13.64
psia, which the old check allowed -- fails, naming the trip. The session holds the same limit.

Definition at line 84 of file test_layerx_ratings.py.

References _fails(), and _prep().

◆ test_burst_pressure_is_the_rating_when_drawn()

test_layerx_ratings.test_burst_pressure_is_the_rating_when_drawn ( config,
drawing )

Definition at line 102 of file test_layerx_ratings.py.

References _burst_rated(), _fails(), and _prep().

◆ test_the_limits_grade_the_tank_peak_on_the_trip()

test_layerx_ratings.test_the_limits_grade_the_tank_peak_on_the_trip ( )
``tank_mawp_psi`` is absolute: a 770 psia peak against a 764.70 psia trip is 755.30 psig of 750.00,
100.7 % -- over the red line, where reading the trip as across the wall (peak less the site's
13.64 psia, against 764.70) put it at 756.36, under. 700 psia is 685.30 of 750.00, 91 %: amber.

Definition at line 181 of file test_layerx_ratings.py.

References _burn().

◆ test_the_set_point_and_optimiser_caps_are_the_trip()

test_layerx_ratings.test_the_set_point_and_optimiser_caps_are_the_trip ( )
The optimiser's lockup ceiling, the set point's MAWP cap and the set point's fallback grade all
stop at the trip itself; each used to add the site's atmosphere (13.64 psia) on top.

Definition at line 200 of file test_layerx_ratings.py.

Variable Documentation

◆ ATM_PSI

float test_layerx_ratings.ATM_PSI = 101325.0 / PSI

Definition at line 37 of file test_layerx_ratings.py.

◆ CFG

str test_layerx_ratings.CFG = Path(__file__).resolve().parent / "fixtures" / "ethalox_6500N_doublet_cad_2026-09-28.yaml"

Definition at line 39 of file test_layerx_ratings.py.

◆ GN2

str test_layerx_ratings.GN2 = "copv_study_gn2"

Definition at line 38 of file test_layerx_ratings.py.

◆ needs_drawing

test_layerx_ratings.needs_drawing
Initial value:
1= pytest.mark.skipif(not (shipped_drawings_dir() / f"{GN2}.json").is_file(),
2 reason="feed-twin's shipped drawings are not next to this checkout")

Definition at line 41 of file test_layerx_ratings.py.

◆ PSI

float test_layerx_ratings.PSI = 6894.757293168361

Definition at line 36 of file test_layerx_ratings.py.

◆ reason

test_layerx_ratings.reason

Definition at line 27 of file test_layerx_ratings.py.