STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
geometry.py
Go to the documentation of this file.
1"""Pintle injector geometry calculations"""
2
3import numpy as np
4from typing import Tuple
5from engine.pipeline.config_schemas import PintleGeometryConfig
6
7
8def calculate_lox_area(geom: PintleGeometryConfig) -> float:
9 """
10 Calculate total LOX flow area (sum of all orifices).
11
12 A_LOX = N × π × (d_orifice/2)²
13
14 Parameters:
15 -----------
16 geom : PintleGeometryConfig
17 Pintle geometry configuration
18
19 Returns:
20 --------
21 A_LOX : float [m²]
22 """
23 A_single = np.pi * (geom.lox.d_orifice / 2) ** 2
24 A_total = geom.lox.n_orifices * A_single
25 return float(A_total)
26
27
28def calculate_fuel_annulus_area(geom: PintleGeometryConfig) -> float:
29 """
30 Calculate fuel flow area (annulus between pintle tip and reservoir wall).
31
32 Uses exact annulus formula: A = π × (R_outer² - R_inner²)
33 where R_inner = d_pintle_tip/2, R_outer = R_inner + h_gap
34
35 Parameters:
36 -----------
37 geom : PintleGeometryConfig
38 Pintle geometry configuration
39
40 Returns:
41 --------
42 A_fuel : float [m²]
43 """
44 R_inner = geom.fuel.d_pintle_tip / 2
45 R_outer = R_inner + geom.fuel.h_gap
46 A_fuel = np.pi * (R_outer ** 2 - R_inner ** 2)
47 return float(A_fuel)
48
49
50def get_effective_areas(geom: PintleGeometryConfig) -> Tuple[float, float]:
51 """
52 Get effective flow areas for both LOX and fuel.
53
54 Parameters:
55 -----------
56 geom : PintleGeometryConfig
57 Pintle geometry configuration
58
59 Returns:
60 --------
61 A_LOX : float [m²]
62 LOX flow area
63 A_fuel : float [m²]
64 Fuel flow area
65 """
66 A_LOX = calculate_lox_area(geom)
67 A_fuel = calculate_fuel_annulus_area(geom)
68 return A_LOX, A_fuel
69
70
71def get_hydraulic_diameters(geom: PintleGeometryConfig) -> Tuple[float, float]:
72 """
73 Get hydraulic diameters for both LOX and fuel.
74
75 Parameters:
76 -----------
77 geom : PintleGeometryConfig
78 Pintle geometry configuration
79
80 Returns:
81 --------
82 d_hyd_O : float [m]
83 LOX hydraulic diameter
84 d_hyd_F : float [m]
85 Fuel hydraulic diameter
86 """
87 d_hyd_O = geom.lox.d_hydraulic
88 d_hyd_F = geom.fuel.d_hydraulic
89 return d_hyd_O, d_hyd_F
Tuple[float, float] get_effective_areas(PintleGeometryConfig geom)
Definition geometry.py:50
float calculate_fuel_annulus_area(PintleGeometryConfig geom)
Definition geometry.py:28
float calculate_lox_area(PintleGeometryConfig geom)
Definition geometry.py:8
Tuple[float, float] get_hydraulic_diameters(PintleGeometryConfig geom)
Definition geometry.py:71