on the Development of the CEA, PAC and CAP Codes
In the late 1940's, a small Rocket Branch at the NACA Lewis
Flight Propulsion Laboratory had responsibility for
evaluating rocket performance of various potential propellants. Two
sections of this branch were concerned with experimental performance
while a third section was concerned with theoretical performance.
The evaluation of theoretical performance presented two
problems. The first problem was to develop numerical methods for
obtaining chemical equilibrium compositions assuming dissociation. This
involved the solution of systems of large numbers of nonlinear
equations. The second problem was to obtain the appropriate
thermodynamic data for various products of combustion. For many
chemical systems, thermodynamic data in the literature were available
only to much lower temperatures than required for rocket combustion.
For some possible products of combustion, no thermodynamic data were
available or the data available were obsolete.
The theoretical section of the Rocket Branch initially
consisted of only two employees: Vearl N. Huff and Virginia E. Morrell.
The early work on numerical methods was for specific chemical systems.
In 1948, Huff began work on a more general calculation method, based on
the work of Brinkley (1947) who
presented a method for chemical equilibrium calculations in a notation
suitable for general problems. Assisting Huff with these numerical
calculations was Morrell. Sanford Gordon joined the NACA Lewis Flight
Propulsion Laboratory in late 1948 and began working with Huff and
Morrell on developing numerical methods for predicting theoretical
rocket performance and creating the comprehensive thermodynamic
database required by such calculations.
Huff and Morrell
(1950) described a general method for computing equilibrium
composition,and the temperature of the combustion products if enthalpy
or entropy were specified, for problems with a large number of product
species. Huff and Gordon (1950)
published tables of thermodynamic functions for 42
substances for a temperature range of 300 to 6000 K, based on
various sources available at the time, as well as computations
performed by NACA. The above work was consolidated and updated in NACA Report 1037 (Huff,
Gordon and Morrel, 1951). This work was the genesis of what later
became the CEA, PAC and CAP codes.
Frank J. Zeleznik began working at the NACA Lewis Flight Propulsion
Laboratory as a summer student in 1955 while completing his doctoral
research and became a full-time employee in 1957. Zeleznik initially
worked with Huff and Gordon on improving the Lewis method for the
calculation of chemical equilibrium composition and rocket performance,
and during 1957, helped create the first Lewis computer code using this
method for an IBM 650 data processing system (Gordon, Zeleznik and Huff,
1959). Zeleznik worked with Gordon on least squares methods for
fitting thermodynamic data to empirical formulas (Zeleznik and Gordon, 1961),
adding applications (Zeleznik
and Gordon, 1962a and 1962b) and on the comparison of various
mathematical methods for the calculation of complex chemical equilibria
(Zeleznik and Gordon, 1960
and 1968). The Lewis
chemical equilibrium code with rocket performance and Chapman-Jouguet
detonations for the IBM 704 and 7090 was documented in 1962 (Zeleznik and Gordon, 1962c).
This code used a modified version of the Brinkley-Huff iteration
procedure (such as NACA
TR 1037) for chemical equilibria which required no special initial
estimates for composition and no constraints on mass balance or
equilibrium relationships during iterations. This was the first version
of the Lewis chemical equilibrium code widely distributed.
Bonnie J. McBride started at the NACA Lewis Flight
Propulsion Laboratory in 1957 and initially worked on the generation of
thermodynamic data needed in the Lewis code for the calculation of
chemical equilibrium composition and rocket performance (McBride and Gordon, 1961). A
general discussion of methods used to calculate the internal partition
function of ideal gases was documented in 1963 (McBride, Heimel, Ehlers and
Gordon, 1963). Later, McBride
and Gordon (1967) consolidated and documented the computer codes
used in calculating and fitting thermodynamic data into a single
FORTRAN IV code called PAC1 (Properties and Coefficients 1). McBride
became involved with the Lewis chemical equilibrium and applications
code in the mid-1960's and performed a major rewrite of this code using
FORTRAN IV (Gordon and
McBride, 1971 and 1976). The resulting code was called CEC71
(Chemical Equilibrium Code for 1971) and was widely distributed. The
iteration equations used to obtain equilibrium compositions were
derived from minimizing the Gibbs function. The NASA Glenn method for
calculating equilibrium compositions is a modified version of the
minimization method developed by White, Johnson and Dantzig
(1958), as described by Zeleznik
and Gordon (1960).
Gordon and McBride continued to make updates to the
chemical equilibrium and applications code, and the thermodynamic
databases and associated codes. These codes and databases have been
widely used throughout their development by the aerodynamics and
thermodynamics community, with over 2000 copies currently in
A short outline of the development of the codes is given
The NACA Lewis Flight Propulsion Laboratory became the NASA Lewis Research Center
in 1958, and was renamed the NASA John H. Glenn Research Center at
Lewis Field in 1999. Click NASA Glenn
History for more information.
The 42 substances in Huff and Gordon (1950) contained the following elements:
argon, aluminum, boron, carbon, chlorine, fluorine, hydrogen, lithium, nitrogen,
and oxygen. Today, the thermodynamic database contains over 1400
Equilibrium and Applications Codes
Early versions (1950 to 1971)
Huff works on methods for computing chemical equilibrium
in mid-1940's. See Huff and Calvert (1948) for an example of algebraic
Huff modifies the Brinkley method, the first formulation
in a notation suitable for general problems. Gordon joins in this work
(1948). See NACA TN 2113 (1950) and NACA Rep. 1037 (1951) for earliest
versions of what eventually became CEC code.
Zeleznik joins in this work (1957). See NASA TN D-132
(1959) for first documented code of method described in NACA Rep. 1037,
with some improvements, for the IBM 650 data processing system.
(according to TN D-132, the first code was created in 1957 and was
operational in Jan 1958).
See NASA TN D-1454 (1962) and NASA TN D-1737 (1963) for
version of the code with applications. Update of the NASA D-132 code
for the IBM 704 and 7090. First version to be widely distributed.
These 'codes' all used an Equilibrium Constant method
(Brinkley-Huff) for deriving the iteration equations for finding
chemical equilibrium composition. However, sometime in the 1960's, the
switch was made to the minimization of Gibbs function for deriving the
chemical equilibrium iteration equations.
CEC = Chemical Equilibrium Code (1971 to 1984).
McBride does major rewrite of the existing code, which is
now based on minimization of the Gibbs Function. Gordon and McBride
present first documentation of this switch in NASA SP-273 (1971). Has
application modules for: Rocket Performance; Incident and Reflected
Shocks; Chapman-Jouguet Detonations.
Does not have transport properties
Does not have finite area combustion
CEC71 was the version referred to in NASA SP-273 (1971).
See NASA SP-273 (1971) and NASA SP-273 (Interim
TRANS72 = Svehla's version of CEC with a first-order
rigorous gas-mixture transport code added (1973).
See NASA TN D-7056 (Jan 1973).
CET = Chemical Equilibrium and Transport Properties (1984
Add transport properties for pure gas species and simple
rules for mixture transport properties. See NASA TM 86885 (1984).
Add finite area combustion (FAC routine). Call this CET89.
See NASA TM 100785 (1988).
Add two input options (ONLY and comments). Call this
CET93. See NASA TM 4557 (1994).
Use smaller arrays and compile for IBM PC. Call this
CETPC. See NASA TM 4557 (1994).
CEA = Chemical Equilibrium and Applications (1994 to
Case input revised to be format-free.
Variable temperature intervals allowed for condensed
Three fixed temperature intervals for gaseous products.
Seven coefficients in empirical equation to represent Cp0.
New thermodynoamic database format that includes
CEA2 (2002) includes some program revisions and new atomic
See NASA RP-1311, Part I (1994) and Part II (1996).
Thermodynamic Properties and Fitting Data to Empirical Equations Codes
Early work (1950 to 1967)
Gordon begins generating tables of thermodynamic functions
and interpolation formulas in NACA TN 2161 (1950). An update of this
data is given in NACA Report 1037 (1951).
McBride joins this work in 1957.
Zeleznik & Gordon develop a simultaneous least-squares
methods for fitting thermodynamic data to empirical formulas. See NASA
McBride and Gordon calculate thermodynamic functions for
triatomic gases with corrections for anharmonicity, vibration-rotation
interaction stretching, and Fermi resonance. J. Chem. Phys.,
vol.35,no.6, 1961, pp2198-2206.
McBride, Heimel, Ehlers and Gordon extend the
thermodynamic database to 210 substances involving the first 18
elements. See NASA SP-3001 (1963).
Several codes exist related to calculating thermodynamic
data and performing least squares curve fits.
PAC = Properties and Coefficients (1967 to present)
McBride and Gordon consolidate existing codes into a
single code called PAC1. Present first documentation of this code for
the IBM 7094 in NASA TN D-4097 (1967).
Updates continue, but are not published in reports. (PAC2,
McBride and Gordon present an update of PAC code with the
following new capabilities: (1) group additivity method; (2) internal
rotors; (3) extrapolation to high temperatures. See NASA RP 1271
(1992). This is the PAC91 code.
McBride and Gordon add special method for calculating
atomic species to high temperatures. This is the PAC97 code. See NASA
Lewis/Glenn Thermodynamic Database (1967 to present)
Continuously updated and expanded with formal
documentation as follows:
o McBride, B.J., Gordon, S., and Reno,
M.J.: "Coefficients for Calculating Thermodynamic. and Transport
Properties of Individual Species" See NASA TM-4513 (1993).
o McBride, B.J., Gordon, S., and Reno,
M.J. "Thermodynamic Data for Fifty Reference Elements". See
NASA TP-3287 (1993).
o Gordon, S., and McBride, B.J., "
Thermodynamic Data to 20 000 K for Monatomic Gases". See NASA
o McBride, B.J., Zehe, M., and Gordon, S.,
" NASA Glenn Coefficients for Calculating Thermodynamic Properties
of Individual Species". See NASA TP-2002-211556 (2002).
Current database contains over 2000 species, solid,
CAP = Coefficients and Properties (1994 to present)
Computer program to calculate tables of thermodynamic
functions for individual species from a set of least squares
coefficients in the CEA format.
NASA TP-2001-210959 (2001).