Worked on the Margules Documentation
This commit is contained in:
parent
f18989a7be
commit
673cf207ed
3 changed files with 95 additions and 58 deletions
|
|
@ -612,9 +612,7 @@ namespace Cantera {
|
|||
* Get the standard state values in m^3 kmol-1
|
||||
*/
|
||||
getStandardVolumes(vbar);
|
||||
//cout << "species name(0) = " << speciesName(0) << endl;
|
||||
//cout << "iA = " << speciesName(m_pSpecies_A_ij[0]) << endl;
|
||||
//cout << "iB = " << speciesName(m_pSpecies_B_ij[0]) << endl;
|
||||
|
||||
|
||||
for ( iK = 0; iK < m_kk; iK++ ){
|
||||
delAK = 0;
|
||||
|
|
|
|||
|
|
@ -78,8 +78,10 @@ namespace Cantera {
|
|||
* <H2> Specification of Solution Thermodynamic Properties </H2>
|
||||
* <HR>
|
||||
*
|
||||
* The molar excess Gibbs free energy is given by the following formula which is a sum over interactions i.
|
||||
* This is the generalization of the Margules formulation within a phase
|
||||
* The molar excess Gibbs free energy is given by the following formula which is a sum over interactions <I>i</I>.
|
||||
* Each of the interactions are binary interactions involving two of the species in the phase, denoted, <I>Ai</I>
|
||||
* and <I>Bi</I>.
|
||||
* This is the generalization of the Margules formulation for a phase
|
||||
* that has more than 2 species.
|
||||
*
|
||||
* \f[
|
||||
|
|
@ -103,44 +105,53 @@ namespace Cantera {
|
|||
* where
|
||||
*
|
||||
* \f[
|
||||
* R T \log( \gamma_k )= \frac{d(n G^E)}{d(n_k)}\Bigg|_{n_i}
|
||||
* R T \ln( \gamma_k )= \frac{d(n G^E)}{d(n_k)}\Bigg|_{n_i}
|
||||
* \f]
|
||||
*
|
||||
* where \f$ X_k \f$ is the mole fraction of species <I>k</I>.
|
||||
* Taking the derivatives results in the following expression
|
||||
*
|
||||
* \f[
|
||||
* R T \ln( \gamma_k )= \sum_i \left( \left( \delta_{Ai,k} X_{Bi} + \delta_{Bi,k} X_{Ai} - X_{Ai} X_{Bi} \right)
|
||||
* \left( g^E_{o,i} + g^E_{1,i} X_{Bi} \right) +
|
||||
* \left( \delta_{Ai,k} - X_{Bi} \right) X_{Ai} X_{Bi} g^E_{1,i} \right)
|
||||
* \f]
|
||||
* where
|
||||
* \f$ g^E_{o,i} = h_{o,i} - T s_{o,i} \f$ and \f$ g^E_{1,i} = h_{1,i} - T s_{1,i} \f$
|
||||
* and where \f$ X_k \f$ is the mole fraction of species <I>k</I>.
|
||||
*
|
||||
* This object inherits from the class VPStandardStateTP. Therefore, the specification and
|
||||
* calculation of all standard state and reference state values are handled at that level. Various functional
|
||||
* forms for the standard state are permissible.
|
||||
* The chemical potential for species <I>k</I> is equal to
|
||||
*
|
||||
* \f[
|
||||
* \mu_k(T,P) = \mu^o_k(T, P) + R T \log(\gamma_k 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}})
|
||||
* \mu_k(T,P) = \mu^o_k(T, P) + R T \ln(\gamma_k X_k)
|
||||
* \f]
|
||||
*
|
||||
* The partial molar entropy for species <I>k</I> 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}})
|
||||
* \tilde{s}_k(T,P) = s^o_k(T,P) - R \ln( \gamma_k X_k )
|
||||
* - R T \frac{d \ln(\gamma_k) }{dT}
|
||||
* \f]
|
||||
*
|
||||
* The partial molar enthalpy for species <I>k</I> is
|
||||
* The partial molar enthalpy for species <I>k</I> is given by
|
||||
*
|
||||
* \f[
|
||||
* \tilde{h}_k(T,P) = h^o_k(T,P) = h^{ref}_k(T)
|
||||
* \tilde{h}_k(T,P) = h^o_k(T,P) - R T^2 \frac{d \ln(\gamma_k)}{dT}
|
||||
* \f]
|
||||
*
|
||||
* The partial molar Internal Energy for species <I>k</I> is
|
||||
* The partial molar volume for species <I>k</I> is
|
||||
*
|
||||
* \f[
|
||||
* \tilde{u}_k(T,P) = u^o_k(T,P) = u^{ref}_k(T)
|
||||
* \tilde V_k(T,P) = V^o_k(T,P) + R T \frac{d \ln(\gamma_k) }{dP}
|
||||
* \f]
|
||||
*
|
||||
* The partial molar Heat Capacity for species <I>k</I> is
|
||||
*
|
||||
* \f[
|
||||
* \tilde{Cp}_k(T,P) = Cp^o_k(T,P) = Cp^{ref}_k(T)
|
||||
* \tilde{C}_{p,k}(T,P) = C^o_{p,k}(T,P) - 2 R T \frac{d \ln( \gamma_k )}{dT}
|
||||
* - R T^2 \frac{d^2 \ln(\gamma_k) }{{dT}^2}
|
||||
* \f]
|
||||
*
|
||||
* <HR>
|
||||
|
|
@ -647,20 +658,6 @@ namespace Cantera {
|
|||
*/
|
||||
void getElectrochemPotentials(doublereal* mu) const;
|
||||
|
||||
//! Get the change in activity coefficients w.r.t. change in state (temp, mole fraction, etc.) along
|
||||
//! a line in parameter space or along a line in physical space
|
||||
/*!
|
||||
*
|
||||
* @param dTds Input of temperature change along the path
|
||||
* @param dXds Input vector of changes in mole fraction along the path. length = m_kk
|
||||
* Along the path length it must be the case that the mole fractions sum to one.
|
||||
* @param dlnActCoeffds Output vector of the directional derivatives of the
|
||||
* log Activity Coefficients along the path. length = m_kk
|
||||
* units are 1/units(s). if s is a physical coordinate then the units are 1/m.
|
||||
*/
|
||||
virtual void getdlnActCoeffds(const doublereal dTds, const doublereal * const dXds, doublereal *dlnActCoeffds) const;
|
||||
|
||||
|
||||
//! Get the array of temperature second derivatives of the log activity coefficients
|
||||
/*!
|
||||
* This function is a virtual class, but it first appears in GibbsExcessVPSSTP
|
||||
|
|
@ -687,28 +684,6 @@ namespace Cantera {
|
|||
*/
|
||||
virtual void getdlnActCoeffdT(doublereal *dlnActCoeffdT) const;
|
||||
|
||||
|
||||
//! Get the array of log concentration-like derivatives of the
|
||||
//! log activity coefficients
|
||||
/*!
|
||||
* This function is a virtual method. For ideal mixtures
|
||||
* (unity activity coefficients), this can return zero.
|
||||
* Implementations should take the derivative of the
|
||||
* logarithm of the activity coefficient with respect to the
|
||||
* logarithm of the concentration-like variable (i.e. mole fraction,
|
||||
* molality, etc.) that represents the standard state.
|
||||
* This quantity is to be used in conjunction with derivatives of
|
||||
* that concentration-like variable when the derivative of the chemical
|
||||
* potential is taken.
|
||||
*
|
||||
* units = dimensionless
|
||||
*
|
||||
* @param dlnActCoeffdlnX Output vector of log(mole fraction)
|
||||
* derivatives of the log Activity Coefficients.
|
||||
* length = m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const;
|
||||
virtual void getdlnActCoeffdlnN(doublereal *dlnActCoeffdlnN) const;
|
||||
|
||||
|
||||
//@}
|
||||
|
|
@ -799,6 +774,70 @@ namespace Cantera {
|
|||
*/
|
||||
void initThermoXML(XML_Node& phaseNode, std::string id);
|
||||
|
||||
/**
|
||||
* @}
|
||||
* @name Derivatives of Thermodynamic Variables needed for Applications
|
||||
* @{
|
||||
*/
|
||||
|
||||
//! Get the change in activity coefficients w.r.t. change in state (temp, mole fraction, etc.) along
|
||||
//! a line in parameter space or along a line in physical space
|
||||
/*!
|
||||
*
|
||||
* @param dTds Input of temperature change along the path
|
||||
* @param dXds Input vector of changes in mole fraction along the path. length = m_kk
|
||||
* Along the path length it must be the case that the mole fractions sum to one.
|
||||
* @param dlnActCoeffds Output vector of the directional derivatives of the
|
||||
* log Activity Coefficients along the path. length = m_kk
|
||||
* units are 1/units(s). if s is a physical coordinate then the units are 1/m.
|
||||
*/
|
||||
virtual void getdlnActCoeffds(const doublereal dTds, const doublereal * const dXds, doublereal *dlnActCoeffds) const;
|
||||
|
||||
//! Get the array of log concentration-like derivatives of the
|
||||
//! log activity coefficients
|
||||
/*!
|
||||
* This function is a virtual method. For ideal mixtures
|
||||
* (unity activity coefficients), this can return zero.
|
||||
* Implementations should take the derivative of the
|
||||
* logarithm of the activity coefficient with respect to the
|
||||
* logarithm of the concentration-like variable (i.e. mole fraction,
|
||||
* molality, etc.) that represents the standard state.
|
||||
* This quantity is to be used in conjunction with derivatives of
|
||||
* that concentration-like variable when the derivative of the chemical
|
||||
* potential is taken.
|
||||
*
|
||||
* units = dimensionless
|
||||
*
|
||||
* @param dlnActCoeffdlnX Output vector of log(mole fraction)
|
||||
* derivatives of the log Activity Coefficients.
|
||||
* length = m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const;
|
||||
virtual void getdlnActCoeffdlnN(doublereal *dlnActCoeffdlnN) const;
|
||||
|
||||
|
||||
//! Get the array of derivatives of the log activity coefficients with respect to the species mole numbers
|
||||
/*!
|
||||
* Implementations should take the derivative of the logarithm of the activity coefficient with respect to a
|
||||
* species mole number (with all other species mole numbers held constant)
|
||||
*
|
||||
* units = 1 / kmol
|
||||
*
|
||||
* dlnActCoeffdN[ ld * k + m] will contain the derivative of log act_coeff for the <I>m</I><SUP>th</SUP>
|
||||
* species with respect to the number of moles of the <I>k</I><SUP>th</SUP> species.
|
||||
*
|
||||
* \f[
|
||||
* \frac{d \ln(\gamma_m) }{d n_k }\Bigg|_{n_i}
|
||||
* \f]
|
||||
*
|
||||
* @param ld Number of rows in the matrix
|
||||
* @param dlnActCoeffdN Output vector of derivatives of the
|
||||
* log Activity Coefficients. length = m_kk * m_kk
|
||||
*/
|
||||
virtual void getdlnActCoeffdN(const int ld, doublereal * const dlnActCoeffdN) const {
|
||||
err("getdlnActCoeffdN");
|
||||
}
|
||||
//@}
|
||||
|
||||
private:
|
||||
|
||||
|
|
|
|||
|
|
@ -1655,7 +1655,7 @@ UML_LOOK = NO
|
|||
# If set to YES, the inheritance and collaboration graphs will show the
|
||||
# relations between templates and their instances.
|
||||
|
||||
TEMPLATE_RELATIONS = YES
|
||||
TEMPLATE_RELATIONS = NO
|
||||
|
||||
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
|
||||
# tags are set to YES then doxygen will generate a graph for each documented
|
||||
|
|
@ -1690,7 +1690,7 @@ CALLER_GRAPH = NO
|
|||
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
|
||||
# will graphical hierarchy of all classes instead of a textual one.
|
||||
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
GRAPHICAL_HIERARCHY = NO
|
||||
|
||||
# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
|
||||
# then doxygen will show the dependencies a directory has on other directories
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue