Skip to main content

CEA History

Background 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 distribution.

A short outline of the development of the codes is given below.


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. View 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 substances.

Chemical 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 reduction method.

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 1976).

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 to 1994).

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 present)

Case input revised to be format-free.

Variable temperature intervals allowed for condensed products.

Three fixed temperature intervals for gaseous products.

Seven coefficients in empirical equation to represent Cp0.

New thermodynamic database format that includes reactant-only data.

CEA2 (2002) includes some program revisions and new atomic weights.

See NASA RP-1311, Part I (1994) and Part II (1996).

Calculating 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 TND-767 (1961).

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, PAC3, PAC4).

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 TP-1999-208523 (1999).

Nasa Lewis/Glenn Thermodynamic Database (1967 to present)

Continuously updated and expanded with formal documentation as follows

McBride, B.J., Gordon, S., and Reno, M.J.: “Coefficients for Calculating Thermodynamic. and Transport Properties of Individual Species” See NASA TM-4513 (1993).

McBride, B.J., Gordon, S., and Reno, M.J. “Thermodynamic Data for Fifty Reference Elements”. See NASA TP-3287 (1993).

Gordon, S., and McBride, B.J., ” Thermodynamic Data to 20 000 K for Monatomic Gases”. See NASA TP-1999-208523 (1999).

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, liquid, gas.

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).

Provide feedback