Input reference¶
The input is a YAML file (or, from Python, a dictionary) with the sections below. Quantities are SI numbers or strings with units:
| Dimension | Units |
|---|---|
| pressure | Pa, kPa, MPa, bar, atm, psi, psia |
| force | N, kN, MN, lbf |
| length | m, cm, mm, in, ft |
| temperature | K |
| angle | deg |
A number without a unit is SI (angles in degrees). A unit of the wrong dimension is an error.
Complete example¶
propellants:
fuel: RP-1
oxidizer: O2(L)
# fuel_temperature: 298.15 K # optional; CEA reference temperature otherwise
# oxidizer_temperature: 90.17 K
chamber:
pressure: 500 psi
mixture_ratio: 2.4
design:
thrust: 500 lbf
altitude: 0 ft # or ambient_pressure and ambient_temperature
sizing: frozen # frozen | equilibrium | constant-gamma
geometry:
characteristic_length: 40 in
convergent_half_angle: 30 deg
divergent_half_angle: 15 deg
contraction_ratio: auto
throat_upstream_radius: 1.5 # times the throat radius
throat_downstream_radius: 1.5
chamber_fillet_radius: 1.0
mesh:
radial_cells: 40
cell_aspect: 1.0
scale: 1.0
wedge_angle: 5.0
growth: 1.05
include_cylinder: false
plume_length: 0
plume_radius: 3
solver:
model: kOmegaSST
iterations: 20000
write_interval: 2000
max_co: 0.2
n_procs: 1
Every key except propellants (or gas), chamber and design.thrust has
the default shown.
propellants¶
| Key | Default | Meaning |
|---|---|---|
fuel |
required | CEA species name, e.g. RP-1, CH4(L), H2(L), CH6N2(L) |
oxidizer |
required | CEA species name, e.g. O2(L), N2O4(L), O2 |
fuel_temperature |
CEA reference | inlet temperature of the fuel |
oxidizer_temperature |
CEA reference | inlet temperature of the oxidizer |
Liquid propellants enter at the reference temperature of their condensed phase in the CEA library (90.17 K for O2(L), 111.643 K for CH4(L), 20.27 K for H2(L), 298.15 K for RP-1), since CEA assigns their enthalpy at that temperature.
gas instead of propellants¶
For cold-flow cases (validation against air nozzles, for instance) a gas of fixed composition replaces the propellants, and the chamber temperature is given:
gas:
composition: {N2: 0.78084, O2: 0.20946, AR: 0.00934} # mole fractions
mechanism: air.yaml # Cantera input file
chamber:
pressure: 100 psi
temperature: 294 K
chamber¶
| Key | Default | Meaning |
|---|---|---|
pressure |
required | chamber (stagnation) pressure \(p_c\) |
mixture_ratio |
required with propellants |
oxidizer-to-fuel mass ratio O/F |
temperature |
required with gas |
chamber temperature \(T_c\) |
design¶
| Key | Default | Meaning |
|---|---|---|
thrust |
required for a sized geometry | design thrust \(F_d\) at matched expansion |
altitude |
0 |
ambient state from the NASA Glenn Earth atmosphere model |
ambient_pressure, ambient_temperature |
— | ambient state given directly (temperature default 288.15 K) |
sizing |
frozen |
sizing model, see below |
gamma |
gammas |
constant-gamma model only: gammas (CEA equilibrium \(\gamma_s\) of the chamber), frozen (frozen \(\gamma\) at \(T_c\)) or a number |
molecular_weight |
chamber |
constant-gamma model only: chamber, station-average (mean of the CEA chamber, throat and exit values) or a number [kg/kmol] |
The sizing models are described on the Method page:
frozensizes the nozzle along the isentrope of the frozen chamber mixture with temperature-dependent \(c_p\). It is consistent with the simulation and is the recommended model.equilibriumtakes \(I_{sp}\), \(c^*\) and the area ratio of CEA's shifting-equilibrium solution.constant-gammauses the calorically perfect gas relations.
The last two are kept for comparison. In a frozen-flow simulation they give nozzles that over-expand the gas (see Verification and validation).
geometry¶
The thrust chamber is sized from the design point unless throat_radius is
given.
| Key | Default | Meaning |
|---|---|---|
characteristic_length |
40 in |
\(L^*\); the chamber volume up to the throat is \(L^* A_t\) |
convergent_half_angle |
30 deg |
\(\theta_c\) |
divergent_half_angle |
15 deg |
\(\theta_d\) |
contraction_ratio |
auto |
\(A_c/A_t\); auto uses \(8.0\,D_t^{-0.6} + 1.25\), \(D_t\) in cm (Humble et al., 1995) |
throat_upstream_radius |
1.5 |
radius of curvature upstream of the throat, in throat radii |
throat_downstream_radius |
1.5 |
radius of curvature downstream of the throat, in throat radii |
chamber_fillet_radius |
1.0 |
fillet between cylinder and convergent cone, in throat radii |
Explicit geometry¶
To reproduce a given nozzle, give its dimensions instead of sizing it:
| Key | Meaning |
|---|---|
throat_radius |
\(r_t\) |
area_ratio |
\(A_e/A_t\) |
contraction_ratio |
\(A_c/A_t\) (a number) |
chamber_length |
optional length of the cylinder; otherwise \(L^*\) sets the volume |
The arc radii and cone angles above apply as well. The mass flow rate of the one-dimensional frozen flow through this throat is then the reference for the discharge coefficient.
mesh¶
| Key | Default | Meaning |
|---|---|---|
radial_cells |
40 |
cells between the axis and the wall, at every axial station |
cell_aspect |
1.0 |
axial over radial cell size |
scale |
1.0 |
multiplies every cell count (mesh studies) |
wedge_angle |
5.0 |
total angle of the wedge [deg] |
growth |
1.05 |
growth ratio of the cells in the plume region, from the exit-plane cell size |
include_cylinder |
false |
mesh the cylindrical chamber as well |
plume_length |
0 |
length of a plume region behind the exit, in exit diameters; 0 ends the domain at the exit |
plume_radius |
3 |
radius of the plume region, in exit radii |
The cell counts scale with the throat radius, so the same settings give the same resolution for a 500 lbf engine and for a 1.5 Mlbf engine.
solver¶
| Key | Default | Meaning |
|---|---|---|
model |
kOmegaSST |
inviscid (slip walls), laminar or kOmegaSST (wall functions) |
iterations |
20000 |
iterations of local time stepping (one time unit each) |
write_interval |
2000 |
iterations between written fields |
max_co |
0.2 |
Courant number of the local time step |
limiter |
vanLeer |
limiter of the reconstruction of \(\rho\), \(U\) and \(T\) |
lts_smoothing |
0.02 |
rDeltaTSmoothingCoeff |
turbulence_intensity |
0.05 |
at the inlet |
mixing_length |
0.07 |
at the inlet, in chamber diameters |
n_procs |
1 |
processors; above 1 Allrun decomposes and runs in parallel |
inlet_velocity_bc |
zeroGradient |
or pressureInletOutletVelocity |
Thermodynamic data¶
| Key | Default | Meaning |
|---|---|---|
mechanism (top level) |
gri30_highT.yaml |
Cantera data set in which the frozen chamber composition is evaluated |
Product species that the data set does not contain are dropped and the
remaining mole fractions renormalised. The dropped fraction is printed and
recorded in ceatofoam.json; for RP-1, CH₄ and H₂ with LOX at 500 and
1500 psia it does not exceed 20 ppm.