doxygen update

Started writing header info for IdealGasPhase
This commit is contained in:
Harry Moffat 2007-03-13 00:58:04 +00:00
parent 3dcba97a80
commit 2a6f9647e7
6 changed files with 314 additions and 53 deletions

View file

@ -34,7 +34,7 @@ namespace Cantera {
// Chemical Potentials and Activities ----------------------
/*
* Returns the standard concentration \f$ C^0_k \f$, which is used to normalize
* Returns the standard concentration \f$ C^0_k \f$, which is used to normalize
* the generalized concentration.
*/
doublereal IdealGasPhase::standardConcentration(int k) const {
@ -239,60 +239,60 @@ namespace Cantera {
// Thermodynamic Values for the Species Reference States ---------
/**
* Returns the vector of nondimensional
* enthalpies of the reference state at the current temperature
* and reference presssure.
*/
void IdealGasPhase::getEnthalpy_RT_ref(doublereal *hrt) const {
const array_fp& _h = enthalpy_RT_ref();
copy(_h.begin(), _h.end(), hrt);
}
/*
* Returns the vector of nondimensional
* enthalpies of the reference state at the current temperature
* and reference presssure.
*/
void IdealGasPhase::getEnthalpy_RT_ref(doublereal *hrt) const {
const array_fp& _h = enthalpy_RT_ref();
copy(_h.begin(), _h.end(), hrt);
}
/**
* Returns the vector of nondimensional
* enthalpies of the reference state at the current temperature
* and reference pressure.
*/
void IdealGasPhase::getGibbs_RT_ref(doublereal *grt) const {
const array_fp& gibbsrt = gibbs_RT_ref();
copy(gibbsrt.begin(), gibbsrt.end(), grt);
}
/*
* Returns the vector of nondimensional
* enthalpies of the reference state at the current temperature
* and reference pressure.
*/
void IdealGasPhase::getGibbs_RT_ref(doublereal *grt) const {
const array_fp& gibbsrt = gibbs_RT_ref();
copy(gibbsrt.begin(), gibbsrt.end(), grt);
}
/**
* Returns the vector of the
* gibbs function of the reference state at the current temperature
* and reference pressure.
* units = J/kmol
*/
void IdealGasPhase::getGibbs_ref(doublereal *g) const {
const array_fp& gibbsrt = gibbs_RT_ref();
scale(gibbsrt.begin(), gibbsrt.end(), g, _RT());
}
/*
* Returns the vector of the
* gibbs function of the reference state at the current temperature
* and reference pressure.
* units = J/kmol
*/
void IdealGasPhase::getGibbs_ref(doublereal *g) const {
const array_fp& gibbsrt = gibbs_RT_ref();
scale(gibbsrt.begin(), gibbsrt.end(), g, _RT());
}
/**
* Returns the vector of nondimensional
* entropies of the reference state at the current temperature
* and reference pressure.
*/
void IdealGasPhase::getEntropy_R_ref(doublereal *er) const {
const array_fp& _s = entropy_R_ref();
copy(_s.begin(), _s.end(), er);
}
/*
* Returns the vector of nondimensional
* entropies of the reference state at the current temperature
* and reference pressure.
*/
void IdealGasPhase::getEntropy_R_ref(doublereal *er) const {
const array_fp& _s = entropy_R_ref();
copy(_s.begin(), _s.end(), er);
}
/**
* Returns the vector of nondimensional
* internal Energies of the reference state at the current temperature
* of the solution and the reference pressure for each species.
*/
void IdealGasPhase::getIntEnergy_RT_ref(doublereal *urt) const {
const array_fp& _h = enthalpy_RT_ref();
for (int k = 0; k < m_kk; k++) {
urt[k] = _h[k] - 1.0;
}
/*
* Returns the vector of nondimensional
* internal Energies of the reference state at the current temperature
* of the solution and the reference pressure for each species.
*/
void IdealGasPhase::getIntEnergy_RT_ref(doublereal *urt) const {
const array_fp& _h = enthalpy_RT_ref();
for (int k = 0; k < m_kk; k++) {
urt[k] = _h[k] - 1.0;
}
}
/**
/*
* Returns the vector of nondimensional
* constant pressure heat capacities of the reference state
* at the current temperature and reference pressure.

View file

@ -26,7 +26,7 @@
namespace Cantera {
//!Class IdealGasPhase represents low-density gases that obey the
//!Class %IdealGasPhase represents low-density gases that obey the
//! ideal gas equation of state.
/*!
*
@ -36,6 +36,221 @@ namespace Cantera {
*
* This class is optimized for speed of execution.
*
* <HR>
* <H2> Specification of Species Standard %State Properties </H2>
* <HR>
*
* It is assumed that the reference state thermodynamics may be
* obtained by a pointer to a populated species thermodynamic property
* manager class in the base class, ThermoPhase::m_spthermo
* (see the base class \link Cantera#SpeciesThermo SpeciesThermo \endlink for a
* description of the specification of reference state species thermodynamics functions).
* The reference state,
* where the pressure is fixed at a single pressure,
* is key species property calculation for the Ideal Gas Equation
* of state.
*
* Functions for the calculation of standard state properties for species
* at arbitray pressure are provided in %IdealGasPhase. However, they
* are all derived from their reference state conterparts.
*
* The standard state enthalpy is independent of pressure:
*
* \f[
* h^o_k(T,P) = h^{ref}_k(T)
* \f]
*
* The standard state constant-pressure heat capacity is independent of pressure:
*
* \f[
* Cp^o_k(T,P) = Cp^{ref}_k(T)
* \f]
*
* The standard state entropy depends in the following fashion on pressure:
*
* \f[
* S^o_k(T,P) = S^{ref}_k(T) - R \ln(\frac{P}{P_{ref}})
* \f]
* The standard state gibbs free energy is obtained from the enthalpy and entropy
* functions:
*
* \f[
* \mu^o_k(T,P) = h^o_k(T,P) - S^o_k(T,P) T
* \f]
*
* \f[
* \mu^o_k(T,P) = \mu^{ref}_k(T) + R T \ln( \frac{P}{P_{ref}})
* \f]
*
* where
* \f[
* \mu^{ref}_k(T) = h^{ref}_k(T) - T S^{ref}_k(T)
* \f]
*
* The standard state internal energy is obtained from the enthalpy function too
*
* \f[
* u^o_k(T,P) = h^o_k(T) - R T
* \f]
*
* The molar volume of a species is given by the ideal gas law
*
* \f[
* V^o_k(T,P) = \frac{R T}{P} \mbox{\quad where}
* \f]
*
* R = 8314.47215 Joules kmol<SUP>-1</SUP> K<SUP>-1</SUP>, from the 1999 CODATA convention.
* For a complete list of physical constants used within %Cantera, see \ref physConstants .
*
* <HR>
* <H2> Specification of Solution Thermodynamic Properties </H2>
* <HR>
*
* The activity of a species defined in the phase is given by the ideal gas law:
* \f[
* a_k = X_k
* \f]
* where \f$ X_k \f$ is the mole fraction of species <I>k</I>.
* The chemical potential for species <I>k</I> is equal to
*
* \f[
* \mu_k(T,P) = \mu^o_k(T, P) + R T \log(X_k)
* \f]
*
* In terms of the reference state, the above can be rewritten
*
*
* \f[
* \mu_k(T,P) = \mu^{ref}_k(T, P) + R T \log(\frac{P X_k}{P_{ref}})
* \f]
*
* The partial molar entropy for species k is given by the following relation,
*
* \f[
* \tilde{s}_k(T,P) = s^o_k(T,P) - R \log(X_k) = s^{ref}_k(T) - R \log(\frac{P X_k}{P_{ref}})
* \f]
*
* The partial molar enthalpy for species k is
*
* \f[
* \tilde{h}_k(T,P) = h^o_k(T,P) = h^{ref}_k(T)
* \f]
*
* The partial molar heat capacity for species k is
*
* \f[
* \tilde{Cp}_k(T,P) = Cp^o_k(T,P) = Cp^{ref}_k(T)
* \f]
*
*
* <HR>
* <H2> %Application within %Kinetics Managers </H2>
* <HR>
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
* C^s_k, \f$ where \f$ C^s_k \f$ is a standard concentration
* defined below and \f$ a_k \f$ are activities used in the
* thermodynamic functions. These activity (or generalized)
* concentrations are used
* by kinetics manager classes to compute the forward and
* reverse rates of elementary reactions.
* The activity concentration,\f$ C^a_k \f$,is given by the following expression.
*
* \f[
* C^a_k = C^s_k X_k = \frac{P}{R T} X_k
* \f]
*
* The standard concentration for species <I>k</I> is independent of <I>k</I> and equal to
*
* \f[
* C^s_k = C^s = \frac{P}{R T}
* \f]
*
* For example, a bulk-phase binary gas reaction between species j and k, producing
* a new gas species l would have the
* following equation for its rate of progress variable, \f$ R^1 \f$, which has
* units of kmol m-3 s-1.
*
* \f[
* R^1 = k^1 C_j^a C_k^a = k^1 (C^s a_j) (C^s a_k)
* \f]
* where
* \f[
* C_j^a = C^s a_j \mbox{\quad and \quad} C_k^a = C^s a_k
* \f]
*
* \f$ C_j^a \f$ is the activity concentration of species j, and
* \f$ C_k^a \f$ is the activity concentration of species k. \f$ C^s \f$
* is the standard concentration. \f$ a_j \f$ is
* the activity of species j which is equal to the mole fraction of j.
*
* The reverse rate constant can then be obtained from the law of microscopic reversibility
* and the equilibrium expression for the system.
*
* \f[
* \frac{a_j a_k}{ a_l} = K_a^{o,1} = \exp(\frac{\mu^o_l - \mu^o_j - \mu^o_k}{R T} )
* \f]
*
* \f$ K_a^{o,1} \f$ is the dimensionless form of the equilibrium constant, associated with
* the pressure dependent standard states \f$ \mu^o_l(T,P) \f$ and their associated activities,
* \f$ a_l \f$, repeated here:
*
* \f[
* \mu_l(T,P) = \mu^o_l(T, P) + R T \log(a_l)
* \f]
*
* We can switch over to expressing the equilibrium constant in terms of the reference
* state chemical potentials
*
* \f[
* K_a^{o,1} = \exp(\frac{\mu^{ref}_l - \mu^{ref}_j - \mu^{ref}_k}{R T} ) * \frac{P_{ref}}{P}
* \f]
*
* The concentration equilibrium constant, \f$ K_c \f$, may be obtained by changing over
* to activity concentrations. When this is done:
*
* \f[
* \frac{C^a_j C^a_k}{ C^a_l} = C^o K_a^{o,1} = K_c^1 =
* \exp(\frac{\mu^{ref}_l - \mu^{ref}_j - \mu^{ref}_k}{R T} ) * \frac{P_{ref}}{RT}
* \f]
*
* %Kinetics managers will calculate the concentration equilibrium constant, \f$ K_c \f$,
* using the second and third part of the above expression as a definition for the concentration
* equilibrium constant.
*
* For completeness, the pressure equilibrium constant may be obtained as well
*
* \f[
* \frac{P_j P_k}{ P_l P_{ref}} = K_p^1 = \exp(\frac{\mu^{ref}_l - \mu^{ref}_j - \mu^{ref}_k}{R T} )
* \f]
*
* \f$ K_p \f$ is the simplest form of the equilibrium constant for ideal gases. However, it isn't
* necessarily the simplest form of the equilibrium constant for other types of phases; \f$ K_c \f$ is
* used instead because it is completely general.
*
* The reverse rate of progress may be written down as
* \f[
* R^{-1} = k^{-1} C_l^a = k^{-1} (C^o a_l)
* \f]
*
* where we can use the concept of microscopic reversibility to write the reverse rate constant in terms of the
* forward reate constant and the concentration equilibrium constant, \f$ K_c \f$.
*
* \f[
* k^{-1} = k^1 K^1_c
* \f]
*
* \f$k^{-1} \f$ has units of s-1.
*
* <HR>
* <H2> Instantiation of the Class </H2>
* <HR>
*
*
* <HR>
* <H2> XML Example </H2>
* <HR>
*
* @ingroup thermoprops
*/
class IdealGasPhase : public ThermoPhase {

View file

@ -1,11 +1,10 @@
/**
* @file SpeciesThermo.h
*
* Species thermodynamic property managers. In this file we describe
* the base class for the calculation of species thermodynamic
* property managers.
*
* We also describe the doxygen module spthermo
* We also describe the doxygen module spthermo (see \ref spthermo )
*/
/*

View file

@ -156,6 +156,31 @@ namespace Cantera {
* unimplimented, which will cause an exception to be thrown if it
* is called.
*
* Relationship with the kinetics operator:
*
* Describe activity coefficients.
*
* Describe K_a, K_p, and K_c, These are three different equilibrium
* constants.
*
* K_a is the calculation of the equilibrium constant from the
* standard state Gibbs free energy values. It is by definition
* dimensionless.
*
* K_p is the calculation of the equilibrium constant from the
* reference state gibbs free energy values. It is by definition
* dimensionless. The pressure dependence is handled entirely
* on the rhs of the equilibrium expression.
*
* K_c is the equilibrium constant calculated from the
* activity concentrations. The dimensions depend on the number
* of products and reactants.
*
*
* The kinetics manager requires the calculation of K_c for the
* calculation of the reverse rate constant
*
*
* @ingroup thermoprops
* @ingroup phases
*/

View file

@ -1,3 +1,19 @@
/***********************************************************************
* $RCSfile$
* $Author$
* $Date$
* $Revision$
***********************************************************************/
// Copyright 2001 California Institute of Technology
/**
* @file equil.h
* This file contains the definition of some high level general equilibration
* routines and the text for the module \ref equilfunctions.
*
* It also contains the Module doxygen text for the Equilibration Solver
* capability within %Cantera. see \ref equilfunctions
*/
#ifndef CT_KERNEL_EQUIL_H
#define CT_KERNEL_EQUIL_H
@ -6,6 +22,11 @@
namespace Cantera {
/*!
* @defgroup equilfunctions Equilibrium Solver Capability
*
* Cantera has several different equilibrium routines.
*/
//-----------------------------------------------------------
// convenience functions
//-----------------------------------------------------------

View file

@ -121,7 +121,8 @@ FILE_PATTERNS = Kinetics.h Kinetics.cpp \
WaterPropsIAPWSphi.h WaterPropsIAPWSphi.cpp \
WaterPropsIAPWS.h WaterPropsIAPWS.cpp \
WaterTP.h WaterTP.cpp \
PureFluidPhase.h PureFluidPhase.cpp
PureFluidPhase.h PureFluidPhase.cpp \
equil.h
RECURSIVE = NO
EXCLUDE = CVS examples converters zeroD
EXCLUDE_SYMLINKS = NO