diff --git a/Cantera/src/thermo/HMWSoln.cpp b/Cantera/src/thermo/HMWSoln.cpp
index 56dba221d..b33856a96 100644
--- a/Cantera/src/thermo/HMWSoln.cpp
+++ b/Cantera/src/thermo/HMWSoln.cpp
@@ -1,6 +1,5 @@
/**
* @file HMWSoln.cpp
- *
* Member functions of Pitzer activity coefficient implementation.
*/
/*
diff --git a/Cantera/src/thermo/HMWSoln.h b/Cantera/src/thermo/HMWSoln.h
index 50cb2588e..0bad3cbf9 100644
--- a/Cantera/src/thermo/HMWSoln.h
+++ b/Cantera/src/thermo/HMWSoln.h
@@ -83,18 +83,26 @@ namespace Cantera {
class WaterPDSS;
/**
- * Class %HMWSoln represents a dilute or conetrated liquid electrolyte phase which
- * obeys the Pitzer formulation for nonideality.
+ * Class %HMWSoln represents a dilute or concentrated liquid electrolyte
+ * phase which obeys the Pitzer formulation for nonideality.
*
- * The concentrations of the ionic species are assumed to obey the electroneutrality
- * condition.
+ * As a prerequisite to the specification of thermodynamic quantities,
+ * The concentrations of the ionic species are assumed to obey the
+ * electroneutrality condition.
*
*
* Specification of Species Standard %State Properties
*
*
- * The standard states are on the unit molality basis. Therefore, in the
- * documentation below, the normal \f$ o \f$ superscript is replaced with
+ * The solvent is assumed to be liquid water. A real model for liquid
+ * water (IAPWS 1995 formulation) is used as its standard state.
+ * All standard state properties for the solvent are based on
+ * this real model for water, and involve function calls
+ * to the object that handles the real water model, #WaterPropsIAPWS.
+ *
+ * The standard states for solutes are on the unit molality basis.
+ * Therefore, in the documentation below, the normal \f$ o \f$
+ * superscript is replaced with
* the \f$ \triangle \f$ symbol. The reference state symbol is now
* \f$ \triangle, ref \f$.
*
@@ -104,19 +112,24 @@ namespace Cantera {
* manager class (see ThermoPhase::m_spthermo). How to relate pressure
* changes to the reference state thermodynamics is resolved at this level.
*
- * For an incompressible,
- * stoichiometric substance, the molar internal energy is
- * independent of pressure. Since the thermodynamic properties
- * are specified by giving the standard-state enthalpy, the
- * term \f$ P_0 \hat v\f$ is subtracted from the specified molar
- * enthalpy to compute the molar internal energy. The entropy is
- * assumed to be independent of the pressure.
+ * For solutes that rely on ThermoPhase::m_spthermo, are assumed to
+ * have an incompressible standard state mechanical property.
+ * In other words, the molar volumes are independent of temperature
+ * and pressure.
+ *
+ * For these incompressible,
+ * standard states, the molar internal energy is
+ * independent of pressure. Since the thermodynamic properties
+ * are specified by giving the standard-state enthalpy, the
+ * term \f$ P_0 \hat v\f$ is subtracted from the specified molar
+ * enthalpy to compute the molar internal energy. The entropy is
+ * assumed to be independent of the pressure.
*
* The enthalpy function is given by the following relation.
*
* \f[
* \raggedright h^\triangle_k(T,P) = h^{\triangle,ref}_k(T)
- * + \tilde v \left( P - P_{ref} \right)
+ * + \tilde{v}_k \left( P - P_{ref} \right)
* \f]
*
* For an incompressible,
@@ -127,19 +140,19 @@ namespace Cantera {
* enthalpy to compute the molar internal energy.
*
* \f[
- * u^\triangle_k(T,P) = h^{\triangle,ref}_k(T) - P_{ref} \tilde v
+ * u^\triangle_k(T,P) = h^{\triangle,ref}_k(T) - P_{ref} \tilde{v}_k
* \f]
*
*
- * The standard state heat capacity and entropy are independent
- * of pressure. The standard state gibbs free energy is obtained
+ * The solute standard state heat capacity and entropy are independent
+ * of pressure. The solute standard state gibbs free energy is obtained
* from the enthalpy and entropy functions.
*
* The vector Constituents::m_speciesSize[] is used to hold the
* base values of species sizes. These are defined as the
* molar volumes of species at infinite dilution at 300 K and 1 atm
* of water. m_speciesSize are calculated during the initialization of the
- * %DebyeHuckel object and are then not touched.
+ * %HMWSoln object and are then not touched.
*
* The current model assumes that an incompressible molar volume for
* all solutes. The molar volume for the water solvent, however,
@@ -168,7 +181,12 @@ namespace Cantera {
* \f$k\f$.
*
* Individual activity coefficients of ions can not be independently measured. Instead,
- * only binary pairs forming electroneutral solutions can be measured.
+ * only binary pairs forming electroneutral solutions can be measured. This problem
+ * leads to a redundancy in the evaluation of species standard state properties.
+ * The redundancy issue is resolved by setting the standard state chemical potential
+ * enthalpy, entropy, and volume for the hydrogen ion, H+, to zero, for every temperature
+ * and pressure. After this convention is applied, all other standard state
+ * properties of ionic species contain meaningfull information.
*
*
* Ionic Strength
@@ -279,20 +297,32 @@ namespace Cantera {
* category. A neutral solute species is put into the "nonpolarNeutral" category by default.
*
*
- * Debye-Huckel Dilute Limit
+ * Multicomponent Activity Coefficients for Solutes
+ *
+ * In the formulas below the following conventions are used. The subscript M refers
+ * to a particular cation. The subscript X refers to a particular anion, whose
+ * activity is being currently evaluated. the subscript a refers to a summation
+ * over all anions in the solution, while the subscript c refers to a summation
+ * over all cations in the solutions.
+ *
+ * The activity coefficient for a particular cation M is given by
+ *
+ * \f[
+ * \ln(\gamma_M^\triangle) = -z_M^2(F) + \sum_a m_a \left( 2 B_{Ma} + Z C_{Ma} \right)
+ * + z_M \left( \sum_a \sum_c m_a m_c C_{Ma} \right)
+ * + \sum_c m_c \left[ 2 \Phi_{Mc} + \sum_a m_a \psi_{Mca} \right]
+ * + \sum_{a < a'} \sum m_a m_{a'} \psi_{Ma{a'}}
+ * + 2 \sum_n m_n \lambda_{nM}
+ * \f]
*
- * DHFORM_DILUTE_LIMIT = 0
*
- * This form assumes a dilute limit to DH, and is mainly
- * for informational purposes:
- * \f[
- * \ln(\gamma_k^\triangle) = - z_k^2 A_{Debye} \sqrt{I}
- * \f]
* where \f$ I\f$ is the ionic strength
* \f[
* I = \frac{1}{2} \sum_k{m_k z_k^2}
* \f]
*
+ * Activity of the Water Solvent
+ *
* The activity for the solvent water,\f$ a_o \f$, is not independent and must be
* determined from the Gibbs-Duhem relation.
*
@@ -301,91 +331,7 @@ namespace Cantera {
* \f]
*
*
- * Bdot Formulation
- *
- * DHFORM_BDOT_AK = 1
- *
- * This form assumes Bethke's format for the Debye Huckel activity coefficient:
- *
- * \f[
- * \ln(\gamma_k^\triangle) = -z_k^2 \frac{A_{Debye} \sqrt{I}}{ 1 + B_{Debye} a_k \sqrt{I}}
- * + \log(10) B^{dot}_k I
- * \f]
- *
- * Note, this particular form where \f$ a_k \f$ can differ in
- * multielectrolyte
- * solutions has problems with respect to a Gibbs-Duhem analysis. However,
- * we include it here because there is a lot of data fit to it.
- *
- * The activity for the solvent water,\f$ a_o \f$, is not independent and must be
- * determined from the Gibbs-Duhem relation. Here, we use:
- *
- * \f[
- * \ln(a_o) = \frac{X_o - 1.0}{X_o}
- * + \frac{ 2 A_{Debye} \tilde{M}_o}{3} (I)^{1/2}
- * \left[ \sum_k{\frac{1}{2} m_k z_k^2 \sigma( B_{Debye} a_k \sqrt{I} ) } \right]
- * - \frac{\log(10)}{2} \tilde{M}_o I \sum_k{ B^{dot}_k m_k}
- * \f]
- * where
- * \f[
- * \sigma (y) = \frac{3}{y^3} \left[ (1+y) - 2 \ln(1 + y) - \frac{1}{1+y} \right]
- * \f]
- *
- * Additionally, Helgeson's formulation for the water activity is offered as an
- * alternative.
- *
- * Bdot Formulation with Uniform Size Parameter in the Denominator
- *
- * DHFORM_BDOT_AUNIFORM = 2
- *
- * This form assumes Bethke's format for the Debye-Huckel activity coefficient
- *
- * \f[
- * \ln(\gamma_k^\triangle) = -z_k^2 \frac{A_{Debye} \sqrt{I}}{ 1 + B_{Debye} a \sqrt{I}}
- * + \log(10) B^{dot}_k I
- * \f]
- *
- * The value of a is determined at the beginning of the
- * calculation, and not changed.
- *
- * \f[
- * \ln(a_o) = \frac{X_o - 1.0}{X_o}
- * + \frac{ 2 A_{Debye} \tilde{M}_o}{3} (I)^{3/2} \sigma( B_{Debye} a \sqrt{I} )
- * - \frac{\log(10)}{2} \tilde{M}_o I \sum_k{ B^{dot}_k m_k}
- * \f]
- *
- *
- * Beta_IJ formulation
- *
- * DHFORM_BETAIJ = 3
- *
- * This form assumes a linear expansion in a virial coefficient form
- * It is used extensively in the book by Newmann, "Electrochemistry Systems",
- * and is the beginning of
- * more complex treatments for stronger electrolytes, fom Pitzer
- * and from Harvey, Moller, and Weire.
- *
- * \f[
- * \ln(\gamma_k^\triangle) = -z_k^2 \frac{A_{Debye} \sqrt{I}}{ 1 + B_{Debye} a \sqrt{I}}
- * + 2 \sum_j \beta_{j,k} m_j
- * \f]
- *
- * In the current treatment the binary interaction coefficients, \f$ \beta_{j,k}\f$, are
- * independent of temperature and pressure.
- *
- * \f[
- * \ln(a_o) = \frac{X_o - 1.0}{X_o}
- * + \frac{ 2 A_{Debye} \tilde{M}_o}{3} (I)^{3/2} \sigma( B_{Debye} a \sqrt{I} )
- * - \tilde{M}_o \sum_j \sum_k \beta_{j,k} m_j m_k
- * \f]
- *
- * In this formulation the ionic radius, \f$ a \f$, is a constant. This must be supplied to the
- * model, in an ionicRadius XML block.
- *
- * The \f$ \beta_{j,k} \f$ parameters are binary interaction parameters. They are supplied to
- * the object in an DHBetaMatrix XML block. There are in principle \f$ N (N-1) /2 \f$
- * different, symmetric interaction parameters, where \f$ N \f$ are the number of solute species in the
- * mechanism.
+
* An example is given below.
*
* An example activityCoefficients XML block for this formulation is supplied below
@@ -413,26 +359,6 @@ namespace Cantera {
*
* @endcode
*
- * Pitzer Beta_IJ formulation
- *
- * DHFORM_PITZER_BETAIJ = 4
- *
- * * This form assumes an activity coefficient formulation consistent
- * with a truncated form of Pitzer's formulation. Pitzer's formulation is equivalent
- * to the formulations above in the dilute limit, where rigorous theory may be applied.
- *
- * \f[
- * \ln(\gamma_k^\triangle) = -z_k^2 \frac{A_{Debye}}{3} \frac{\sqrt{I}}{ 1 + B_{Debye} a \sqrt{I}}
- * -2 z_k^2 \frac{A_{Debye}}{3} \frac{\ln(1 + B_{Debye} a \sqrt{I})}{ B_{Debye} a}
- * + 2 \sum_j \beta_{j,k} m_j
- * \f]
- *
- *
- * \f[
- * \ln(a_o) = \frac{X_o - 1.0}{X_o}
- * + \frac{ 2 A_{Debye} \tilde{M}_o}{3} \frac{(I)^{3/2} }{1 + B_{Debye} a \sqrt{I} }
- * - \tilde{M}_o \sum_j \sum_k \beta_{j,k} m_j m_k
- * \f]
*
* Specification of the Debye Huckel Constants
*