Limitations on shock and detonation calculations

All the sound speeds in Gaseq are calculated using frozen specific heats. That is, it is assumed that during the passage of the sound wave the chemistry is too slow to appreciably change the composition of the gas. This is a good approximation at low temperatures, less than say 2000K, but will be increasing wrong at higher temperatures where not only is the chemistry faster, but the fraction of radicals is much higher. Changes in the amount of radicals can therefore significantly change the enthalpy of the mixture.

The magnitude of the error is illustrated by an example of a Chapman-Jouget detonation. The table gives properties for a stoichiometric H2/O2 mixture at 0.9869 atm and 298K calculated by Gaseq and taken from Gordon and McBride (NASA Ref Publ 1311 p137), which uses the correctly calculated sound speeds.


(using frozen Cp
and sound speeds)

(using eqm Cp
and sound speeds)


CJ velocity




T burnt




P burnt 




OH mol frac




So the CJ velocity is nearly right in spite of the frozen assumption being inappropriate at this high temperature. The NASA publication gives values of the Equilibrium and Frozen Cp as 3.90 and 0.79 cal/gK respectively. This is a large difference an there is clearly some compensation in the calculation of the detonation parameters.

I really ought to modify Gaseq to calculate equilibrium specific heats and sound speeds, but I guess this is importance only at high temperatures and especially when the pressure is not too high. I think I would be more interested in extending Gaseq to handle non-ideal gases, which is relvant at low temperatures and high pressures. Don't hold your breath in anticipation of either.

My thanks to Ben Shaw (University of California, Davis) for raising this question and to Joe Shepherd (CalTech) for a useful discussion and who who points out that it is discussed in Chap 4 of Fickett and Davis, Detonation, recently reprinted by Dover.

Duplicate species names

Gaseq identifies species from their name, which are therfore assumed to be unique. But a database like that of Burcat may contain several species with the same name, or a name may be duplicated in different database files (*.tdd) if several are being used. Gaseq will always choose the first one with the name it is looking for, even if another one had been selected in the ViewSpecies form. I should really correct this behaviour since it leads to erroneous results which may not be noticed. In the meantime, a workaround is to edit the names of the species in the .tdd file (remembering that these files are fixed format - use a fixed width font like Courier when editing and make sure the 01 at the end of the line remains lined up).

Condensed water

The specific heat data for H2O(L) in THERM.DAT (which is the default thermodynamics data base used in Gaseq (as thermdat.tdd)) is clearly wrong at temperatures above 500K. (It is negative at 800K!) The valid temperature range, which purports to go up 1000K, needs to be restricted. H2O(S) has a range of 200 to 273K and for higher T Cp, S and H are returned erroneously as 0. Thanks to David Hagen for noticing this. In addition, Gaseq currently does not check whether the thermodata is in its valid temperature range. This is very rarely a problem since the valid range of most small species is 300 to 5000K.

Gaseq anyway does not make a very good job of handling liquid water. For instance, adiabatically compressing mixtures containing liquid water and having this evaporate requires non-frozen chemistry and usually fails to converge. Even more worrying are incorrect mass balances which sometimes arise when attempting to use H2O and H2O(L) as product species to model evaporation. At the moment it is safe to use H2O(L) only as a reactant at up to 500K in a equilibrium or adiabatic T calculation.

Other bugs

Some of these are detailed on the download page. My thanks to the helpful people who have pointed then out.

Back to main Gaseq page