Вы находитесь на странице: 1из 6

Method for calculating equilibrium compositions at a specified temperature

The method is based on the minimisation of free energy (NASA method).

The equilibrium number of moles of species i is xi (i = 1 to nSp).

The Gibbs Free Energy G of the mixture at pressure p is given by:

G nSp
x G0 x
= i i + xi ln i + xi ln p .....(1)
RT i =1 RT xi

Gi0 is the molar free energy at 1 atmosphere of species i

xi is the total number of moles in the mixture.
At equilibrium G/RT is at a minimum, subject to the elemental composition being

For each element j from 1 to nEl


i =1
x bj = 0
ij i .....(2)

where bj is the total molar concentration of atoms of element j. This is set by the
reactant concentrations.
aij is the number of atoms of element j in species i.

G/RT needs to be minimised subject to the constraints (2). To do this introduce the
Lagrangian multipliers j (j=1 to nEl) and define F as:
G0 x nEl nSp
i =1 RT x i j =1 i =1
F = xi i + ln i + ln p j aij xi bi ) .....(3)

The required solution is when F is a minimum i.e. F / xi = 0 for all i from 1 to nSp.

F Gi0 xi ln xi nSp ln xi nEl

= + ln + ln p + xi xk j aij
xi RT xi xi k =1 xi j =1

F Gi0 xi nEl
= + ln + ln p j aij = 0 ....(4)
xi RT xi j =1

There are nSp equations of type (4) and nEl equations of type (2). The unknowns are
nSp values of the number of moles xi and nEl Lagrangian multipliers j. The
equations are non-linear in xi and need to be solved iteratively.

Let yi be an estimate of xi. Expand F / xi as a Taylor series around this estimate:

+ ( xi yi ) ....(5)
xi xi at x = y k =1 x k xi
i i at x = y i i

Differentiate (4):

2F 1
= when i k
x k xi x i
1 1
= when i = k
xi xi
2F 1
= when i k ....(6)
x k xi x = y y i
i i

1 1
= when i = k ....(7)
yi yi

Substituting into (5):

F Gi0 yi nEl
1 nSp
+ ln + ln p i aij + ( xi yi ) ( xi yi )
xi RT yi j =1 yi k =1 yi

F hi nEl x x
i aij + i i ....(8)
xi yi j =1 yi yi


Gi0 xi
hi yi + ln + ln p ....(9)
RT x i

Setting F / xi = 0 (for the minimum) in (8) and rearranging

xi nEl
xi = hi + yi + j a ij ....(10)
y i j =1

Summing over all species

nSp nSp nEl nSp

xi = hi + xi + j yi aij
i =1 i =1 j =1 i =1

nSp nEl nSp

hi = j yi aij
i =1 j =1 i =1
Substitute (10) into (2):
nSp nSp nEl nSp
x i
( )
a ij hi +
y i
yi aij + k aik aij yi b j = 0 for j=1 to nEl ....(12)
i =1 i =1 j =1 i =1

(11) + (12) are nEl +1 equations with unknowns k and xi / yi. We need to solve
the equations and then substitute into (10) to get a better estimate for xi. When the
number of moles is small and contributes negligibly to xi equation (4) is used

nEl Gi0
xi = xi exp j aij
ln p
j =1 RT

Under constant volume conditions we need to minimise the Helmholz free energy,
A = G - PV. It can be shown that the equations to be solved are (2) and ones identical
in form to (4) except that the pressure p is replaced by RT/V.

The equations are solved using modified versions of the subroutines ludcmp and
lubksb from Numerical Recipes. The number crunching is done in a DLL written in C
which is called by the main Visual Basic program.

Some more or less ad hoc adjustments were made to the solution routine to help
decrease the possibility of non-convergence:

The maximum possible concentration of each species, based on the availability of

each element it contains, is identified and the estimate passed to each solution
iteration is not allowed to exceed this value, or fall below zero. This is intended to
prevent the solution entering unrealistic regions where it is less likely to converge.

Reactants with zero concentration and products containing elements with zero
concentration in the reactants are not passed to the DLL.

A check for some types of linear dependence between elements is made and if found
the number of elements passed to the DLL is reduced to prevent the solution matrix
becoming singular. For example, for the dissociation of N2O4, where the products
are NO2 and N2O4, the amount of elemental N and O are always equal and only one
of them is needed.

Equilibrium with fixed species

For species with a fixed concentration, there is no equation (10). The sums in
equation (11) do not include the fixed species. In deriving (11) by substituting into
(2), xi for non-fixed species is derived from equation (10) but just the fixed value xi
for the fixed species. Accordingly, the equations (12) becomes:
nSp nSp nEl nSp
( )
a ij hi + a ij xi + i
y a + a
i ij k ik aij yi b j = 0 for j=1 to nEl....(12)
i =1 fixed i =1 j =1 i =1
where the sums over nSp do not include the fixed species, which appear in the new
second term.

Radical overshoot

When the bimolecular reactions are fast but the termolecular reactions are slow the
number of moles is constant. This constitutes an extra constraint with

xi = n (13)
i =1

where n is the specified total number of moles. Equation (3) becomes

Gi0 xi nEl nSp nSp
F = xi
i =1 RT
+ ln
xi j =1 i =1 i =1
+ ln p j aij xi bi s xi n ..(3)

and the derivation follows as before

F Gi0 xi nEl
= + ln + ln p j aij s = 0 ....(4)
xi RT xi j =1

xi nEl
xi = hi + yi + j aij + s ....(10)
yi j =1

nSp nSp nSp nEl nSp

( )
aij hi + aij xi + yi
yi aij + s yi aij + k aik aij yi b j = 0 ....(12)
i =1 fixed i =1 i =1 j =1 i =1

Take x/y as 1:
nSp nSp nSp nEl nSp

aij hi aij xi yi aij + b j = +s yi aij + k aik aij yi ....(15)

i =1 fixed i =1 i =1 j =1 i =1

Substitute (10) into (13)

nSp nSp nEl nSp nSp

hi + n yi = j yi aij + s yi ....(14)
i =1 i =1 j =1 i =1 i =1

The equations to solve are the nEl versions of (15), with (14), and the unknowns are
j, s.

Adiabatic Temperatures
The temperature of the products is adjusted until the equilibrium composition has an
enthalpy (or internal energy under constant volume conditions) which is the same as
that of the reactants. A starting estimate is improved using the secant method.

Shocks and Detonations

A two dimensional secant method is used ("Data reduction and analysis", p234). The
variables P2 and T2 are adjusted until the following functions are zero. (These are the
basic energy and momentum conservation equations.)

P1 P2 + 1u12 2 u22 = 0
h1 h2 + 0. 5( u12 u22 ) = 0

The subscripts 1 and 2 are before and after the shock respectively. The h's are
enthalpies and the 's are densities. The u's are gas velocities relative to the shock and
are obtained in different ways for incident, reflected and C-J detonation calculations.

For incident shocks the shock speed relative to the stationary gas ahead of the shock is
u1, and continuity gives

u2 = u1 1 2

For reflected shocks, an incident shock calculation is done first and the gas velocity in
lab coordinates after the incident shock, vS used:

u2 =
2 1
u1 = u2 + vS

For C-J detonations u2 is the sound speed in the burnt gas, and u1 is calculated from
the continuity equation above.

The initial conditions for starting the iterative secant procedure were usually the same
in each case as in the guide to the NASA program ("Computer program for calculation
of complex chemical equilibrium compositions and applications" Sanford Gordon and
Bonnie J.McBride, NASA Reference Publication 1311). For incident shocks with
frozen chemistry, initial estimates are:

P2 2 1 M12 1 + 1
P1 1 +1
T2 P2 2 M12 + 1 + 1
T1 P1 1 +1

where 1 is the specific heat and M1,, in these formulae, is the Mach number. For non-

frozen chemistry a combustion calculation is carried out to estimated P2 and T2 and

h2 = h1 + 0. 5u12
For reflected shocks, initial estimates are:

T2 = 2 T1
P2 = 7. 6 P1

For C-J detonations, P2 =15 P1 and T2 is determined from the enthalpy:

45 RT1
h2 = h1 +
4 Mw1

where Mw1 is a molecular weight.