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

Functions

float sound_speed (float gamma, float R_g, float T)
List[float] longitudinal_mode_frequencies (float a, float L_ch, int n_modes=5)

Variables

list __all__

Detailed Description

Shared physics primitives for the combustion/feed stability model.

Pure functions only — no config coupling, no I/O — so every primitive is unit-testable against a
closed form. Integration (pulling gas properties from CEA, choosing defaults for ``n``/``chi``, etc.)
lives in ``chug.py`` / ``acoustic.py`` / ``analysis.py``, not here.

Equation numbers in the docstrings refer to ``docs/stability/combustion_stability_physics.md`` (v0.2).

Sections
--------
1. Acoustic mode frequencies        — longitudinal half-wave (closed-closed); transverse via J'_m roots
2. Combustion response (n-tau)       — Crocco linearized burning-rate gain                 [Phys §2]
3. Gas dynamics                      — choked-flow function, chamber residence time         [Phys §3.1]
4. Vaporization / time lag           — Spalding B, d^2-law K_v, tau_vap, sensitive lag       [Phys §5]
5. Feed / injector primitives        — injector conductance, feed inertance, chamber gain    [Phys §3.2]
6. Acoustic damping                 — compact choked-nozzle admittance, Kirchhoff wall layer [Phys §4.2]

Function Documentation

◆ longitudinal_mode_frequencies()

List[float] engine.pipeline.stability.core.longitudinal_mode_frequencies ( float a,
float L_ch,
int n_modes = 5 )
Longitudinal (axial) acoustic mode frequencies [Hz], closed-closed half-wave set.

``f_nL = n * a / (2 * L_ch)`` for n = 1..n_modes (1L, 2L, ...).  [Phys §4.1]

Both ends are acoustically closed. The injector face is a rigid wall. A choked compact nozzle
has normalised admittance ``(gamma-1)*M_ne/2`` (Crocco; Marble & Candel 1977), ~0.005 at
M_ne 0.07: a near-rigid end, not a pressure-release one. ``tan(kL) = i*Y`` then gives
``Re(kL) = n*pi`` exactly -- the admittance damps the mode (``nozzle_damping_rate``) and
does not move it. This is the q-branch of Harrje & Reardon SP-194 ch. 1's closed-cylinder
``f = (a/2) sqrt((q/L)^2 + (alpha_mn/(pi R))^2)``, and the passive spectrum the hi-fi V3
case checks (engine/stability_hifi/validation/v3_ntau_duct.py). The old quarter-wave set
``(2n-1) a/(4L)`` is the open-end answer and put 1L a factor 2 low.

Definition at line 59 of file core.py.

◆ sound_speed()

float engine.pipeline.stability.core.sound_speed ( float gamma,
float R_g,
float T )
Chamber sound speed ``a = sqrt(gamma * R_g * T)`` [m/s]. Returns 0 for non-physical inputs.

Definition at line 53 of file core.py.

Variable Documentation

◆ __all__

list engine.pipeline.stability.core.__all__
private
Initial value:
1= [
2 "sound_speed",
3 "longitudinal_mode_frequencies",
4 "TRANSVERSE_EIGENVALUES",
5 "transverse_mode_frequencies",
6 "n_tau_gain",
7 "choked_flow_function",
8 "chamber_residence_time",
9 "chamber_residence_time_from_state",
10 "area_ratio_from_mach",
11 "mach_from_area_ratio_subsonic",
12 "spalding_transfer_number_heat",
13 "d2_law_evaporation_constant",
14 "vaporization_time",
15 "sensitive_time_lag",
16 "lags_from_smd",
17 "injector_conductance",
18 "feed_inertance",
19 "chamber_gain",
20 "viscous_damping_rate",
21 "nozzle_admittance_compact",
22 "nozzle_damping_rate",
23]

Definition at line 24 of file core.py.