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

Functions

 _model (bool engine=False)
None test_gauge_from_psia_round_trips_exactly ()
None test_burn_setup_is_the_study_numerics ()
None test_a_model_assembles_without_an_artifact_store ()
None test_prime_by_mass_loads_exactly_that_mass ()
None test_prime_without_loads_fills_by_volume ()
None test_prime_refuses_a_load_that_does_not_fit_or_has_no_tank ()
None test_probes_are_found_on_the_drawing ()
None test_a_short_burn_records_and_conserves_propellant ()
None test_a_model_runs_under_one_session_only ()
float _impulse (trace, plan)
None test_ending_on_depletion_is_continuous_in_the_load ()

Variables

 STAR = Path(__file__).resolve().parents[3]
str STAND = STAR / "feed-twin" / "backend" / "diagrams" / "ethalox_stand.json"
str TABLES = STAR / "feed-twin" / "backend" / "statemachines"
str ENGINE = STAR / "EngineDesign" / "configs" / "ethalox_doublet_7000N.yaml"
str CEA = STAR / "EngineDesign" / "output" / "cache" / "cea_cache_LOX_Ethanol_3D.npz"
 needs_stand
 needs_engine

Detailed Description

The marching session as library code, and a burn as one call.

The session's physics is covered where it was written (feed-twin's
``tests/test_session.py``, which now runs against this package through the
app's re-exports) and by ``scripts/physics_benchmark.py``. What is new here is
the surface a second caller uses: assembling without the app's artifact store,
priming a fixed propellant load by mass, and a burn that records its probes.

Function Documentation

◆ _impulse()

float test_session_burn._impulse ( trace,
plan )
protected
Thrust times each step's own length, over the firing steps.

Definition at line 189 of file test_session_burn.py.

Referenced by test_ending_on_depletion_is_continuous_in_the_load().

◆ _model()

◆ test_a_model_assembles_without_an_artifact_store()

None test_session_burn.test_a_model_assembles_without_an_artifact_store ( )

Definition at line 77 of file test_session_burn.py.

References _model().

◆ test_a_model_runs_under_one_session_only()

None test_session_burn.test_a_model_runs_under_one_session_only ( )
A session writes its run into the model's network; a second session on the same model
would start from the first one's end state. open_session refuses it.

Definition at line 178 of file test_session_burn.py.

References _model().

◆ test_a_short_burn_records_and_conserves_propellant()

None test_session_burn.test_a_short_burn_records_and_conserves_propellant ( )
Fire for a third of a second and check the bookkeeping holds.

Conservation is the check worth having here: the propellant that left the
tanks has to be the propellant the chamber says it burned, integrated over
the same steps. It is independent of every correlation in the model.

Definition at line 135 of file test_session_burn.py.

References _model().

◆ test_burn_setup_is_the_study_numerics()

None test_session_burn.test_burn_setup_is_the_study_numerics ( )

Definition at line 66 of file test_session_burn.py.

◆ test_ending_on_depletion_is_continuous_in_the_load()

None test_session_burn.test_ending_on_depletion_is_continuous_in_the_load ( )
With ``end_on_depletion`` the last step lands the first tank on ``dry_kg``, so
the impulse grows smoothly with the load. On whole steps it moves in jumps of a
step's worth as the depletion crosses a step boundary; that is the default, and
the study keeps it.

Definition at line 201 of file test_session_burn.py.

References _impulse(), _model(), max, and min.

◆ test_gauge_from_psia_round_trips_exactly()

None test_session_burn.test_gauge_from_psia_round_trips_exactly ( )
A caller that knows psia converts through the gauge zero without error.

Definition at line 59 of file test_session_burn.py.

◆ test_prime_by_mass_loads_exactly_that_mass()

None test_session_burn.test_prime_by_mass_loads_exactly_that_mass ( )

Definition at line 87 of file test_session_burn.py.

References _model().

◆ test_prime_refuses_a_load_that_does_not_fit_or_has_no_tank()

None test_session_burn.test_prime_refuses_a_load_that_does_not_fit_or_has_no_tank ( )

Definition at line 111 of file test_session_burn.py.

References _model().

◆ test_prime_without_loads_fills_by_volume()

None test_session_burn.test_prime_without_loads_fills_by_volume ( )
Without ``loads`` every tank holds ``fill_fraction`` of its volume as liquid, by
hand from the volume and the density: the behaviour before ``loads`` existed.

Definition at line 99 of file test_session_burn.py.

References _model().

◆ test_probes_are_found_on_the_drawing()

None test_session_burn.test_probes_are_found_on_the_drawing ( )

Definition at line 120 of file test_session_burn.py.

References _model().

Variable Documentation

◆ CEA

str test_session_burn.CEA = STAR / "EngineDesign" / "output" / "cache" / "cea_cache_LOX_Ethanol_3D.npz"

Definition at line 32 of file test_session_burn.py.

◆ ENGINE

str test_session_burn.ENGINE = STAR / "EngineDesign" / "configs" / "ethalox_doublet_7000N.yaml"

Definition at line 31 of file test_session_burn.py.

◆ needs_engine

test_session_burn.needs_engine
Initial value:
1= pytest.mark.skipif(
2 not (ENGINE.exists() and CEA.exists()), reason="engine config or CEA table absent"
3)

Definition at line 37 of file test_session_burn.py.

◆ needs_stand

test_session_burn.needs_stand
Initial value:
1= pytest.mark.skipif(
2 not (STAND.exists() and TABLES.is_dir()), reason="stand drawing or tables absent"
3)

Definition at line 34 of file test_session_burn.py.

◆ STAND

str test_session_burn.STAND = STAR / "feed-twin" / "backend" / "diagrams" / "ethalox_stand.json"

Definition at line 29 of file test_session_burn.py.

◆ STAR

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

Definition at line 28 of file test_session_burn.py.

◆ TABLES

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

Definition at line 30 of file test_session_burn.py.