# Finite Area Combustor¶

In a rocket engine, the ratio of chamber cross-sectional area to throat area is called
the **contraction ratio**, **CR**.

Unless otherwise directed, CEA runs rocket calculations assuming an infinite CR.

For an infinite contraction ratio, the pressure at the injector face, **Pcinj_face**, is the same as the
pressure in the chamber combustion end plenum, **Pcomb_end**.:

```
Pcinj_face = Pcomb_end (where: CR = infinite)
```

In a real chamber, however, as the chamber cross-sectional area gets smaller, (as CR gets closer to 1.0), the pressure drop from Pcinj_face to Pcomb_end increases.:

```
Pcinj_face > Pcomb_end (where: CR < infinite)
```

This pressure drop is called the Rayleigh line loss. It is the stagnation pressure loss associated with the heat transfer effects in a duct of constant area and is the locus of points on an enthalpy-entropy diagram defined by the momentum equation, continuity equation, and the equation of state.

A discussion of this phenomenon is included in the classic design manual Design of Liquid Propellant Rocket Engines by Huzel and Huang on page 6, which simplifies the ratio of the injector face pressure to the plenum pressure with the equation:

```
Pcinj_face / Pcomb_end = 1 + gamma * MachNumber**2
```

The above equation, equation *(1-15)* in
Huzel and Huang
is shown in the right-hand image below.

The above graph shows the CEA/RocketCEA calculation of the Rayleigh line loss as well as a simple approximation equation for estimating that loss:

```
Pcinj_face/Pcomb_end = 1.0 + 0.54 / CR**2.2
```

Since different propellant combinations have nearly identical Rayleigh line loss (see above graph), it is often sufficient, for engineering purposes, to approximate the Rayleigh line loss with a simple correlating equation such as the one shown here.

This is especially convenient when designing to a known plenum pressure, **Pcomb_end**,
and deriving the injector face pressure, **Pcinj_face**, that CEA and RocketCEA require
as an input.

One could also get the chamber gamma and mach number from **RocketCEA** and plug those values
into the equation from
Huzel and Huang

## CEA fac Option¶

The CEA program offers the option to calculate the Rayleigh line loss for you
by using the **fac** option. (The above chart was generated with RocketCEA using the fac option).

A traditional CEA run that sets **fac** has an extra column of data called
**COMB END** that indicates what the chamber plenum pressure, **Pcomb_end**, would be
if the injector face pressure, **INJECTOR** pressure, were specified.
An example of that extra column is shown below.:

```
INJECTOR COMB END THROAT EXIT
Pinj/P 1.0000 1.0692 1.7921 473.77
P, ATM 68.046 63.643 37.970 0.14363
T, K 3483.35 3467.55 3288.16 1441.62
RHO, G/CC 3.2038-3 3.0113-3 1.9141-3 1.7133-5
H, CAL/G -235.74 -253.44 -509.60 -2372.05
U, CAL/G -750.09 -765.27 -990.00 -2575.07
G, CAL/G -15090.3 -15057.2 -14547.5 -8526.66
S, CAL/(G)(K) 4.2644 4.2692 4.2692 4.2692
M, (1/n) 13.458 13.463 13.602 14.111
(dLV/dLP)t -1.02525 -1.02508 -1.01972 -1.00000
(dLV/dLT)p 1.4496 1.4485 1.3717 1.0001
Cp, CAL/(G)(K) 2.0951 2.0962 1.9277 0.7309
GAMMAs 1.1401 1.1398 1.1401 1.2387
SON VEL,M/SEC 1566.3 1562.3 1513.8 1025.8
MACH NUMBER 0.000 0.246 1.000 4.122
```

In **RocketCEA** the fac option is implemented by specifying the fac contraction ratio, **fac_CR**
when creating a CEA_Obj. For example:

All calls to the **ispObj** will assume the input contraction ratio, **fac_CR**, and
use the input **Pc** as the **Pcinj_face**.

For example, the above CEA output was generated with the code.

```
from rocketcea.cea_obj import CEA_Obj
ispObj = CEA_Obj( oxName='LOX', fuelName='LH2', fac_CR=2.5)
s = ispObj.get_full_cea_output( Pc=1000.0, MR=6.0, eps=40.0)
print( s )
```

The chamber plenum pressure, **Pcomb_end**, will be determined by applying the
Rayleigh line loss to **Pcinj_face**.

It is also possible to calculate **Pcinj_face / Pcomb_end** for any contraction ratio using the following:

```
PinjOverPcomb = ispObj.get_Pinj_over_Pcomb( Pc=Pc, MR=MR, fac_CR=CR )
```

The graph in the 1st section above was created using this approach.

```
from rocketcea.cea_obj import CEA_Obj
from pylab import *
crL = [1.4+i*0.2 for i in range(19) ]
propL = [('N2O4','MMH',2.0), ('CLF5','N2H4',2.5),
('LOX','CH4',3.0), ('LOX','LH2',6.0)]
Pc = 500.0
est_pratL = [1.0 + 0.54 / cr**2.2 for cr in crL]
plot(crL, est_pratL, '.', label='Est Eqn = 1.0 + 0.54 / CR**2.2', markersize=16)
def make_pratL( oxName, fuelName, MR ):
C = CEA_Obj( oxName=oxName, fuelName=fuelName)
pratL = [C.get_Pinj_over_Pcomb( Pc=Pc, MR=MR, fac_CR=cr) for cr in crL]
plot(crL, pratL, label='%s/%s'%(oxName,fuelName), linewidth=2)
for (oxName, fuelName, MR) in propL:
make_pratL( oxName, fuelName, MR )
legend(loc='best')
grid(True)
title( 'Rayleigh Line Loss' )
xlabel( 'Contraction Ratio' )
ylabel( 'Pinj_face / Pplenum' )
savefig('compare_rayleigh.png', dpi=120)
show()
```

## Specify Plenum Pressure¶

Since it is more common to specify a plenum pressure, **Pcomb_end**,
and calculate an injector face pressure, **Pcinj_face**,
The following script will use **RocketCEA** to calculate the required **Pcinj_face**
that gives **Pcomb_end**.

```
"""
figure out Pcinj_face to get desired Pcomb_end (100 atm in example)
"""
from rocketcea.cea_obj import CEA_Obj
cr = 2.5 # contraction ratio
ispObj = CEA_Obj( oxName='LOX', fuelName='LH2', fac_CR=cr)
# Use 100 atm to make output easy to read
Pc = 100.0 * 14.6959
# use correlation to make 1st estimate of Pcinj_face / Pcomb_end
PinjOverPcomb = 1.0 + 0.54 / cr**2.2
# use RocketCEA to refine initial estimate
PinjOverPcomb = ispObj.get_Pinj_over_Pcomb( Pc=Pc * PinjOverPcomb, MR=6.0 )
# print results (noting that "COMB END" == 100.00 atm)
s = ispObj.get_full_cea_output( Pc=Pc * PinjOverPcomb, MR=6.0, eps=40.0)
print( s )
```

Output from the above script:

```
INJECTOR COMB END THROAT EXIT
Pinj/P 1.0000 1.0693 1.7944 479.16
P, ATM 106.93 100.00 59.593 0.22317
T, K 3532.34 3516.04 3327.30 1432.71
RHO, G/CC 4.9892-3 4.6890-3 2.9813-3 2.6786-5
H, CAL/G -235.74 -253.64 -512.51 -2378.56
U, CAL/G -754.77 -770.11 -996.59 -2580.33
G, CAL/G -15064.1 -15030.3 -14496.0 -8399.74
S, CAL/(G)(K) 4.1979 4.2026 4.2026 4.2026
M, (1/n) 13.524 13.529 13.659 14.111
(dLV/dLP)t -1.02259 -1.02243 -1.01737 -1.00000
(dLV/dLT)p 1.3977 1.3966 1.3245 1.0001
Cp, CAL/(G)(K) 1.9426 1.9433 1.7862 0.7293
GAMMAs 1.1431 1.1429 1.1435 1.2393
SON VEL,M/SEC 1575.6 1571.5 1521.9 1022.9
MACH NUMBER 0.000 0.246 1.000 4.140
```

## System Performance¶

Choosing a contraction ratio is part of an overall system performance trade.

A smaller CR gives a smaller, lighter engine, but leads to a heavier pressurization system and perhaps heavier tankage.

Focusing on engine thrust to weight ratio completely ignores system implications.

That said, the most common contraction ratio is **2.5**.
Very large booster engines tend to have smaller CR, small engines tend to have larger CR.