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

Functions

 config ()
 drawing ()
float _line_head (prep, str edge_id)
 test_off_by_default_no_line_heads (config, drawing)
 test_flying_adds_no_geometry_to_the_drawing (config, drawing)
 _with_heights (drawing, heights)
 test_a_drawn_or_restated_height_is_the_head (config, drawing)
 test_a_line_that_falls_further_than_it_is_long_is_flagged (config, drawing)
 test_the_acceleration_at_liftoff_is_thrust_over_mass (config)
 test_change_between_histories ()
 test_flown_the_fuel_side_gains_the_head (config, drawing)
 test_the_flight_follows_the_end_of_the_curve (config)

Variables

 reason
str FIXTURE = Path(__file__).parent / "fixtures" / "ethalox_6500N_doublet_cad_2026-09-28.yaml"
str GN2 = "copv_study_gn2"
 pytestmark
float G0 = 9.80665

Detailed Description

Layer X phase 6: the burn flown, and the flight's acceleration fed back into it.

Checked by hand or by direction, never against a stored answer:

* the drawing is the feed system: flying adds no geometry to it. A line's head in flight is its
  elevation_change as drawn or restated; a line with none carries none, and the preflight says so;
* the proper acceleration read off the flight is thrust over mass at liftoff, F/m;
* flown with the fuel line falling further than the LOX line, the fuel injector inlet gains more
  than LOX, so the burn runs fuel-richer than on the pad. A burn that ignored the acceleration
  would show none of it;
* off by default: a run that does not ask to fly is the phase 3 run.

Function Documentation

◆ _line_head()

float test_layerx_phase6._line_head ( prep,
str edge_id )
protected

◆ _with_heights()

test_layerx_phase6._with_heights ( drawing,
heights )
protected

◆ config()

test_layerx_phase6.config ( void )

Definition at line 39 of file test_layerx_phase6.py.

◆ drawing()

test_layerx_phase6.drawing ( )

Definition at line 44 of file test_layerx_phase6.py.

◆ test_a_drawn_or_restated_height_is_the_head()

test_layerx_phase6.test_a_drawn_or_restated_height_is_the_head ( config,
drawing )

Definition at line 90 of file test_layerx_phase6.py.

References _line_head(), and _with_heights().

◆ test_a_line_that_falls_further_than_it_is_long_is_flagged()

test_layerx_phase6.test_a_line_that_falls_further_than_it_is_long_is_flagged ( config,
drawing )

Definition at line 106 of file test_layerx_phase6.py.

References _with_heights().

◆ test_change_between_histories()

test_layerx_phase6.test_change_between_histories ( )

Definition at line 131 of file test_layerx_phase6.py.

◆ test_flown_the_fuel_side_gains_the_head()

test_layerx_phase6.test_flown_the_fuel_side_gains_the_head ( config,
drawing )
The whole loop, on drawn heights: the fuel line falls 0.9 m, the LOX line 0.07 m (each
within its drawn length). Under ~9 g the fuel inlet gains far more than LOX, so the burn runs
fuel-rich of the pad, and the loop settles.

Definition at line 142 of file test_layerx_phase6.py.

References _with_heights().

◆ test_flying_adds_no_geometry_to_the_drawing()

test_layerx_phase6.test_flying_adds_no_geometry_to_the_drawing ( config,
drawing )
The stand drawing states no line heights: flown, its lines stay as drawn (no head, no
length changed) and the preflight names the gap instead of guessing it from the config.

Definition at line 59 of file test_layerx_phase6.py.

References _line_head().

◆ test_off_by_default_no_line_heads()

test_layerx_phase6.test_off_by_default_no_line_heads ( config,
drawing )

Definition at line 53 of file test_layerx_phase6.py.

References _line_head().

◆ test_the_acceleration_at_liftoff_is_thrust_over_mass()

test_layerx_phase6.test_the_acceleration_at_liftoff_is_thrust_over_mass ( config)
A flat 6.5 kN, 3 s burn. At the first instant the vehicle has not moved and drag is zero,
so the proper acceleration along the axis is F/m exactly; it then grows as mass burns off.

Definition at line 115 of file test_layerx_phase6.py.

◆ test_the_flight_follows_the_end_of_the_curve()

test_layerx_phase6.test_the_flight_follows_the_end_of_the_curve ( config)
Cut a flat burn short by 10, 20, 30 ms: every cut is impulse lost, so every cut is apogee
lost, by about the same amount each time. Before ui/flight_sim.py sampled an untruncated
curve itself, RocketPy re-sampled it at 50 points; the apogee held still across these cuts
and then fell in one step.

Definition at line 160 of file test_layerx_phase6.py.

References max, and min.

Variable Documentation

◆ FIXTURE

str test_layerx_phase6.FIXTURE = Path(__file__).parent / "fixtures" / "ethalox_6500N_doublet_cad_2026-09-28.yaml"

Definition at line 29 of file test_layerx_phase6.py.

◆ G0

float test_layerx_phase6.G0 = 9.80665

Definition at line 35 of file test_layerx_phase6.py.

◆ GN2

str test_layerx_phase6.GN2 = "copv_study_gn2"

Definition at line 30 of file test_layerx_phase6.py.

◆ pytestmark

test_layerx_phase6.pytestmark
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 33 of file test_layerx_phase6.py.

◆ reason

test_layerx_phase6.reason

Definition at line 21 of file test_layerx_phase6.py.