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

Functions

Param _p (float value, str unit)
ReliefValve _relief (float cv=5.0, **Param extra)
 _helium (float p, float T=293.15, float lift=1.0)
None test_gas_flow_is_iec_60534_as_fluids_implements_it (float|None x)
None test_rated_capacity_by_hand ()
None test_shut_below_set_opens_at_set_and_reseats_with_hysteresis ()
None test_without_a_session_a_relief_is_shut ()
None test_the_model_block_names_its_sources_and_inputs ()
dict _drawing (dict|None rv_params)
dict _rv_params (float cv, float|None set_psi)
None test_an_rv_without_a_set_pressure_is_shut_and_says_so ()
None test_an_rv_with_a_set_pressure_is_a_relief_on_the_ullage ()
None test_shipped_drawings_have_no_relief_and_build_as_before ()
None test_a_relief_holds_the_fuel_tank_when_the_regulator_fails_open ()

Variables

 STAR = Path(__file__).resolve().parents[3]
str DRAWINGS = STAR / "feed-twin" / "backend" / "diagrams"
str HE = DRAWINGS / "copv_study_he.json"
str TABLES = STAR / "feed-twin" / "backend" / "statemachines"
 needs_drawing
float SET_PSI = 750.0
float BORE_MM = 10.92

Detailed Description

The pressure relief valve (``relief_valve``, model ``spring``).

Checked against things that are not this code:

* its gas capacity, choked and not, against ``fluids``' own implementation of
  IEC 60534-2-1 (``size_control_valve_g``), which returns the Cv that passes a
  flow -- the valve's own Cv must come back;
* its lift law against ISO 4126-1's terms, by hand: shut below set, open at set,
  shut again only below set x (1 - blowdown);
* on the helium hot-fire drawing, a regulator failed wide open into the fuel
  tank: the tank must be held under set x (1 + overpressure), and with the
  regulator back it must vent down past set to the reseating pressure before the
  valve shuts.

And the drawing contract: an RV that declares no set pressure never lifts, so
it is read as shut -- no branch at all -- and the build says so. (It used to be
built as an always-open Cv valve: a hole to atmosphere on the tank it guards,
which on a pid-designer drawing like LE4's meant the stand could never hold
press.)

Function Documentation

◆ _drawing()

◆ _helium()

test_relief._helium ( float p,
float T = 293.15,
float lift = 1.0 )
protected

◆ _p()

Param test_relief._p ( float value,
str unit )
protected

Definition at line 56 of file test_relief.py.

Referenced by _relief().

◆ _relief()

◆ _rv_params()

◆ test_a_relief_holds_the_fuel_tank_when_the_regulator_fails_open()

None test_relief.test_a_relief_holds_the_fuel_tank_when_the_regulator_fails_open ( )
The dome regulator failed wide open (dome above the bottle) into the fuel
tank alone, a relief set at 750 psig on the tank. Half full, so the ullage
is litres rather than the shipped 0.43 L and the test runs in seconds.

Below set the relief is shut. Failed open, the tank pops it and is held
under set + 10 % (the overpressure at which the valve is at full lift) with
the relief passing what the regulator delivers. Regulator restored, the tank
vents down *past* set to the reseating pressure before the valve shuts.

Definition at line 295 of file test_relief.py.

References _drawing(), _rv_params(), and max.

◆ test_an_rv_with_a_set_pressure_is_a_relief_on_the_ullage()

None test_relief.test_an_rv_with_a_set_pressure_is_a_relief_on_the_ullage ( )

Definition at line 266 of file test_relief.py.

References _drawing(), and _rv_params().

◆ test_an_rv_without_a_set_pressure_is_shut_and_says_so()

None test_relief.test_an_rv_without_a_set_pressure_is_shut_and_says_so ( )

Definition at line 252 of file test_relief.py.

References _drawing(), and _rv_params().

◆ test_gas_flow_is_iec_60534_as_fluids_implements_it()

None test_relief.test_gas_flow_is_iec_60534_as_fluids_implements_it ( float | None x)
Choked (x None: discharge to atmosphere) and not: ``fluids`` sizes the
valve for the flow this one passes, and returns this valve's Cv.

Definition at line 84 of file test_relief.py.

References _helium(), and _relief().

◆ test_rated_capacity_by_hand()

None test_relief.test_rated_capacity_by_hand ( )
W = N6 C (2/3) sqrt(F_gamma xT p1 rho1), IEC 60534-2-1 with N6 = 2.73
(Cv; kg/h, kPa, kg/m^3), helium (gamma 5/3) at 825 psig and 293.15 K.

Definition at line 124 of file test_relief.py.

References _helium(), and _relief().

◆ test_shipped_drawings_have_no_relief_and_build_as_before()

None test_relief.test_shipped_drawings_have_no_relief_and_build_as_before ( )

Definition at line 278 of file test_relief.py.

◆ test_shut_below_set_opens_at_set_and_reseats_with_hysteresis()

None test_relief.test_shut_below_set_opens_at_set_and_reseats_with_hysteresis ( )

Definition at line 137 of file test_relief.py.

References _relief().

◆ test_the_model_block_names_its_sources_and_inputs()

None test_relief.test_the_model_block_names_its_sources_and_inputs ( )

Definition at line 175 of file test_relief.py.

References _relief().

◆ test_without_a_session_a_relief_is_shut()

None test_relief.test_without_a_session_a_relief_is_shut ( )

Definition at line 163 of file test_relief.py.

References _helium(), and _relief().

Variable Documentation

◆ BORE_MM

float test_relief.BORE_MM = 10.92

Definition at line 53 of file test_relief.py.

◆ DRAWINGS

str test_relief.DRAWINGS = STAR / "feed-twin" / "backend" / "diagrams"

Definition at line 44 of file test_relief.py.

◆ HE

str test_relief.HE = DRAWINGS / "copv_study_he.json"

Definition at line 45 of file test_relief.py.

◆ needs_drawing

test_relief.needs_drawing
Initial value:
1= pytest.mark.skipif(
2 not (HE.exists() and TABLES.is_dir()), reason="helium drawing or tables absent"
3)

Definition at line 48 of file test_relief.py.

◆ SET_PSI

float test_relief.SET_PSI = 750.0

Definition at line 52 of file test_relief.py.

◆ STAR

test_relief.STAR = Path(__file__).resolve().parents[3]

Definition at line 43 of file test_relief.py.

◆ TABLES

str test_relief.TABLES = STAR / "feed-twin" / "backend" / "statemachines"

Definition at line 46 of file test_relief.py.