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

Functions

Optional[Dict[str, Any]] forward_design_point (Any prep, Any config, Any runner=None, Optional[Mapping[str, Any]] forward=None)
np.ndarray _replay_onto (Mapping[str, Any] result, str key, np.ndarray t)
Dict[str, Any] build_injector (Mapping[str, Any] result, Any prep=None, Any config=None, *, Optional[Mapping[str, Any]] forward=None, Any runner=None)

Variables

tuple SOURCE

Detailed Description

The injector's state per twin step: jet velocities, momentum ratio, the spray's resultant tilt,
and eta_c* from the replay.

``build_injector(result, prep=None, config, *, forward=None, runner=None)`` ->
``diagnostics.injector`` (DATA-CONTRACT 3).

Every quantity is EngineDesign's own definition, called rather than restated:

* jet bulk velocity ``v = mdot / (rho n A_jet)``, ``A_jet = pi d_jet^2 / 4``, at the config density
  (the same ``v_O_bulk``/``v_F_bulk`` ``engine.core.injectors.impinging`` computes);
* momentum ratio ``R = sqrt(rho_O v_O^2 / (rho_F v_F^2))``
  (``impinging.momentum_ratio_R_from_bulk_velocities``; R is the Cd-dp split, not Rupe's mixing
  criterion) and Rupe's ``M = rho_O v_O^2 d_O / (rho_F v_F^2 d_F)`` (``impinging.rupe_mixing_ratio``:
  Rupe, JPL PR 20-195, restated by Elverum & Morey, JPL Memo 30-5, 1959, eq. 1);
* the resultant's tilt from the chamber axis, + toward the wall, from the vector sum of the two
  streams' momenta (``layer1_static_optimization._impinging_resultant_tilt_deg``, the rule
  ``reconcile._angles_for_tilt`` uses; which ring is inboard from the pitch circles).

The flows are the twin's (``series.*.mdot``), so these follow the burn; the densities are the
config's, because that is what the card's injector was tabulated at (AUDIT ledger #27: the twin's
saturated-line densities differ by 0.2 % / 0.04 %). ``design_momentum_ratio`` is EngineDesign's
Forward solve at the burn's lockup (``forward``, or evaluated with ``runner``); without either it
is null. ``eta_cstar`` is the replay's, linearly interpolated onto the twin's steps inside the
replay's span and null outside it (the replay has ~28 points: never read 50 ms resolution into it).

Function Documentation

◆ _replay_onto()

np.ndarray engine.layerx.diag.injector._replay_onto ( Mapping[str, Any] result,
str key,
np.ndarray t )
protected

Definition at line 64 of file injector.py.

Referenced by build_injector().

◆ build_injector()

Dict[str, Any] engine.layerx.diag.injector.build_injector ( Mapping[str, Any] result,
Any prep = None,
Any config = None,
* ,
Optional[Mapping[str, Any]] forward = None,
Any runner = None )
``diagnostics.injector``. Never raises. Needs ``config`` (the orifices) and the series.

Definition at line 76 of file injector.py.

References _replay_onto(), and forward_design_point().

◆ forward_design_point()

Optional[Dict[str, Any]] engine.layerx.diag.injector.forward_design_point ( Any prep,
Any config,
Any runner = None,
Optional[Mapping[str, Any]] forward = None )
EngineDesign's Forward solve at the burn's lockup, both tanks, at the site's ambient: what
the design column of a "design assumed X -> feed delivers Y(t)" row must come from (AUDIT 4).
``forward`` (a ``runner.evaluate`` result) is returned as is; else ``runner`` is evaluated.

Definition at line 44 of file injector.py.

Referenced by build_injector().

Variable Documentation

◆ SOURCE

tuple engine.layerx.diag.injector.SOURCE
Initial value:
1= ("EngineDesign: engine.core.injectors.impinging.momentum_ratio_R_from_bulk_velocities and "
2 "rupe_mixing_ratio (Rupe, JPL PR 20-195; Elverum & Morey, JPL Memo 30-5, 1959, eq. 1); "
3 "engine.optimizer.layers.layer1_static_optimization._impinging_resultant_tilt_deg (momentum "
4 "vector sum, + toward the wall)")

Definition at line 38 of file injector.py.