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

Functions

float _arc_start_slope_deg (float theta_rad)
 test_cone_meets_entrance_arc_tangentially (deg)
 test_old_hardcoded_arc_would_fail ()
 test_contour_uses_the_requested_angle (deg)
 test_default_angle_is_45_degrees ()
 test_default_call_matches_explicit_45 ()

Variables

 PC
 THRUST
 D_EXIT
list ANGLES_DEG = [45.0, 40.0, 35.0, 30.0, 25.0]

Detailed Description

The convergent cone must meet the 1.5-Rt entrance arc tangentially at ANY angle.

The entrance arc used to be hardcoded ``linspace(-135 deg, -90 deg)``. Its wall slope at
parameter t is -cot(t), so -135 deg is tangency with a 45 deg cone and only a 45 deg cone.
Any other convergent angle met the arc at a corner -- 15 deg of it at theta = 30 -- right
where the gas accelerates hardest into the throat.

``layer1_contraction_half_angle_deg`` made that angle configurable in Layer 1's arithmetic
while the built contour stayed at 45 deg, so the optimiser was scoring a chamber nobody
would build. These tests pin both halves: the default is unchanged, and a non-default angle
produces a tangent wall.

Function Documentation

◆ _arc_start_slope_deg()

float test_convergent_angle_tangency._arc_start_slope_deg ( float theta_rad)
protected
Wall angle of the entrance arc's first segment, in degrees (negative = converging).

Definition at line 31 of file test_convergent_angle_tangency.py.

Referenced by test_cone_meets_entrance_arc_tangentially(), and test_old_hardcoded_arc_would_fail().

◆ test_cone_meets_entrance_arc_tangentially()

test_convergent_angle_tangency.test_cone_meets_entrance_arc_tangentially ( deg)
No corner in the wall at the cone -> arc junction, for any convergent angle.

Definition at line 42 of file test_convergent_angle_tangency.py.

References _arc_start_slope_deg().

◆ test_contour_uses_the_requested_angle()

test_convergent_angle_tangency.test_contour_uses_the_requested_angle ( deg)
The straight convergent section is actually drawn at the requested half-angle.

Definition at line 62 of file test_convergent_angle_tangency.py.

◆ test_default_angle_is_45_degrees()

test_convergent_angle_tangency.test_default_angle_is_45_degrees ( )
theta_default is load-bearing: it is the value every existing config inherits.

Definition at line 79 of file test_convergent_angle_tangency.py.

◆ test_default_call_matches_explicit_45()

test_convergent_angle_tangency.test_default_call_matches_explicit_45 ( )
Omitting theta must be identical to passing 45 deg -- no silent behaviour change.

Definition at line 84 of file test_convergent_angle_tangency.py.

◆ test_old_hardcoded_arc_would_fail()

test_convergent_angle_tangency.test_old_hardcoded_arc_would_fail ( )
Guard the guard: pinning the arc at 45 deg must reintroduce the corner.

Without this, the tangency test above would still pass if someone re-hardcoded the
arc and every caller happened to ask for 45 deg.

Definition at line 48 of file test_convergent_angle_tangency.py.

References _arc_start_slope_deg().

Variable Documentation

◆ ANGLES_DEG

list test_convergent_angle_tangency.ANGLES_DEG = [45.0, 40.0, 35.0, 30.0, 25.0]

Definition at line 28 of file test_convergent_angle_tangency.py.

◆ D_EXIT

test_convergent_angle_tangency.D_EXIT

Definition at line 27 of file test_convergent_angle_tangency.py.

◆ PC

test_convergent_angle_tangency.PC

Definition at line 27 of file test_convergent_angle_tangency.py.

◆ THRUST

test_convergent_angle_tangency.THRUST

Definition at line 27 of file test_convergent_angle_tangency.py.