cantera/docs/doxyinput/equildemo.txt
2010-08-04 23:15:35 +00:00

60 lines
2.8 KiB
Text

/**
\page cxx-equildemo A C++ Chemical Equilibrium Program
In the program below, the \c equilibrate function is called to set the
gas to a state of chemical equilibrium, holding the temperature and
pressure fixed. This function is declared in the equilibrium.h header
file.
\include demoequil.cpp
The program output is:
\verbatim
temperature 1500 K
pressure 202650 Pa
density 0.316828 kg/m^3
mean mol. weight 19.4985 amu
1 kg 1 kmol
----------- ------------
enthalpy -4.17903e+06 -8.149e+07 J
internal energy -4.81866e+06 -9.396e+07 J
entropy 11283.3 2.2e+05 J/K
Gibbs function -2.1104e+07 -4.115e+08 J
heat capacity c_p 1893.06 3.691e+04 J/K
heat capacity c_v 1466.65 2.86e+04 J/K
X Y Chem. Pot. / RT
------------- ------------ ------------
H2 0.249996 0.0258462 -19.2954
H 6.22521e-06 3.218e-07 -9.64768
O 7.66933e-12 6.29302e-12 -26.3767
O2 7.1586e-12 1.17479e-11 -52.7533
OH 3.55353e-07 3.09952e-07 -36.0243
H2O 0.499998 0.461963 -45.672
HO2 7.30338e-15 1.2363e-14 -62.401
H2O2 3.95781e-13 6.90429e-13 -72.0487
AR 0.249999 0.51219 -21.3391
\endverbatim
How can we tell that this is really a state of chemical equilibrium? Well, by applying the equation of reaction equilibrium to formation reactions from the elements, it is straightforward to show that
\f[
\mu_k = \sum_m \lambda_m a_{km}.
\f]
where \f$\mu_k\f$ is the chemical potential of species \a k, \f$a_{km}\f$ is the number of atoms of element \a m in species \a k, and
\f$\lambda_m\f$ is the chemical potential of the elemental species per
atom (the so-called "element potential"). In other words, the chemical
potential of each species in an equilibrium state is a linear sum of
contributions from each atom. We see that this is true in the output
above -- the chemical potential of H2 is exactly twice that of H, the
chemical potential for OH is the sum of the values for H and O, the value for H2O2 is twice as large as the value for OH, and so
on.
We'll see later how the \c equilibrate function really works. For now, though, the important points are these:
- The \c equilibrate procedure operates on an object, setting its state to a
chemical equilibrium state.
- To use \c equilibrate, you need to include the equilibrium.h header file.
Return to \ref start
*/