Doxygen update

Filled in some more holes into DebyeHuckel.h
  Eliminated the warning messages. Still more work to be done.
This commit is contained in:
Harry Moffat 2007-03-05 21:02:33 +00:00
parent 28154b5088
commit 924afeceb4
3 changed files with 183 additions and 62 deletions

View file

@ -311,13 +311,15 @@ namespace Cantera {
* This function sets the internally storred temperature of the phase.
*
* @param temp Temperature in kelvin
*
* @todo Make State::setTemperature a virtual function
*/
void setTemperature(doublereal temp) {
m_temp = temp;
}
//@}
/// True if the number species has been set
//! True if the number species has been set
bool ready() const { return (m_kk > 0); }

View file

@ -11,7 +11,7 @@
/*
* $Id$
*/
//! Max function
#ifndef MAX
#define MAX(x,y) (( (x) > (y) ) ? (x) : (y))
#endif
@ -120,7 +120,7 @@ namespace Cantera {
*this = b;
}
/**
/*
* operator=()
*
* Note this stuff will not work until the underlying phase
@ -440,7 +440,7 @@ namespace Cantera {
* function sets the temperature, and makes sure that
* the value propagates to underlying objects.
*/
void DebyeHuckel::setTemperature(double temp) {
void DebyeHuckel::setTemperature(doublereal temp) {
if (m_waterSS) {
m_waterSS->setTemperature(temp);
}
@ -1264,7 +1264,7 @@ namespace Cantera {
* Initialize all of the lengths of arrays in the object
* now that we know what species are in the phase.
*/
initLengths();
initThermo();
/*
* Reconcile the solvent name and index.
@ -1909,7 +1909,7 @@ namespace Cantera {
}
/**
/*
* initLengths():
*
* This internal function adjusts the lengths of arrays based on
@ -1917,7 +1917,6 @@ namespace Cantera {
*/
void DebyeHuckel::initLengths() {
m_kk = nSpecies();
MolalityVPSSTP::initThermo();
/*
* Obtain the limits of the temperature from the species
@ -2284,7 +2283,7 @@ namespace Cantera {
lnActivitySolvent - log(xmolSolvent);
}
/**
/*
* s_update_dMolalityActCoeff_dT() (private, const )
*
* Using internally stored values, this function calculates
@ -2430,7 +2429,6 @@ namespace Cantera {
* solvent activity coefficient is on the molality
* scale. It's derivatives are too.
*/
void DebyeHuckel::s_update_d2lnMolalityActCoeff_dT2() const {
double z_k, coeff, tmp, y, yp1, sigma, tmpLn;
int k;
@ -2555,7 +2553,7 @@ namespace Cantera {
}
}
/**
/*
* s_update_dlnMolalityActCoeff_dP() (private, const )
*
* Using internally stored values, this function calculates

View file

@ -80,17 +80,25 @@ namespace Cantera {
* + 2 * sum_j (beta_jk m_j)
*
*/
/*!
* @name Formats for the Activity Coefficients
*
* These are possible formats for the molality-based activity coefficients.
*/
//@{
#define DHFORM_DILUTE_LIMIT 0
#define DHFORM_BDOT_AK 1
#define DHFORM_BDOT_ACOMMON 2
#define DHFORM_BETAIJ 3
#define DHFORM_PITZER_BETAIJ 4
//@}
/*
* Acceptable ways to calculate the value of A_Debye
* @name Acceptable ways to calculate the value of A_Debye
*/
//@{
#define A_DEBYE_CONST 0
#define A_DEBYE_WATER 1
//@}
class WaterProps;
class WaterPDSS;
@ -101,7 +109,8 @@ namespace Cantera {
* Class %DebyeHuckel represents a dilute liquid electrolyte phase which
* obeys the Debye Huckel formulation for nonideality.
*
*
* The concentrations of the ionic species are assumed to obey the electroneutrality
* condition.
*
* <b> Specification of Species Standard %State Properties </b>
*
@ -159,8 +168,31 @@ namespace Cantera {
* where the water phase is not a stable phase, i.e., beyond its
* spinodal curve.
*
* <HR>
* <H1> Specification of Solution Thermodynamic Properties </H1>
* <HR>
* Chemical potentials
* of the solutes, \f$ \mu_k \f$, and the solvent, \f$ \mu_o \f$, which are based
* on the molality form, have the following general format:
*
* <b> Specification of Solution Thermodynamic Properties </b>
* \f[
* \mu_k = \mu^{\triangle}_k(T,P) + R T ln(\gamma_k^{\triangle} \frac{m_k}{m^\triangle})
* \f]
* \f[
* \mu_o = \mu^o_o(T,P) + RT ln(a_o)
* \f]
*
* where \f$ \gamma_k^{\triangle} \f$ is the molality based activity coefficient for species
* \f$k\f$.
*
* Individual activity coefficients of ions can not be independently measured. Instead,
* only binary pairs forming electroneutral solutions can be measured.
*
* The specification of solute activity coefficients depends on the model
* assumed for the Debye-Huckel term. The model is set by the
* internal parameter #m_formDH.
*
* <H3> Debye-Huckel Dilute Limit </H3>
*
* DHFORM_DILUTE_LIMIT = 0
*
@ -214,9 +246,9 @@ namespace Cantera {
* ln(gamma_k)/RT = -z_k**2 * alpha * sqrt(I) / (1 + B * a * sqrt(I))
* -2 * z_k**2 * alpha * ln(1 + B * a * sqrt(I)) / (B * a)
* + 2 * sum_j (beta_jk m_j)
*
* <HR>
* <b> %Application within %Kinetics Managers </b>
*
* <HR>
* The standard concentration is equal to 1.0. This means that the
* kinetics operator works on an (activities basis). Since this
* is a stoichiometric substance, this means that the concentration
@ -255,9 +287,9 @@ namespace Cantera {
* StoichSubstanceSSTP solid;
* importPhase(*xm, &solid);
* @endcode
*
* <HR>
* <b> XML Example </b>
*
* <HR>
* The phase model name for this is called StoichSubstance. It must be supplied
* as the model attribute of the thermo XML element entry.
* Within the phase XML block,
@ -304,18 +336,35 @@ namespace Cantera {
public:
/// Constructors
//! Empty Constructor
DebyeHuckel();
//! Copy constructor
DebyeHuckel(const DebyeHuckel &);
//! Assignment operator
DebyeHuckel& operator=(const DebyeHuckel&);
//! Full constructor for creating the phase.
/*!
* @param inputFile File name containing the XML description of the phase
* @param id id attribute containing the name of the phase.
* (default is the empty string)
*/
DebyeHuckel(std::string inputFile, std::string id = "");
//! Full constructor for creating the phase.
/*!
* @param phaseRef XML phase node containing the description of the phase
* @param id id attribute containing the name of the phase.
* (default is the empty string)
*/
DebyeHuckel(XML_Node& phaseRef, std::string id = "");
/// Destructor.
virtual ~DebyeHuckel();
//! Duplicator from the ThermoPhase parent class
ThermoPhase *duplMyselfAsThermoPhase();
/**
@ -495,6 +544,8 @@ namespace Cantera {
* the value propagates to underlying objects, such as
* the water standard state model.
*
* @todo Make State::setTemperature a virtual function
*
* @param temp Temperature in kelvin
*/
virtual void setTemperature(doublereal temp);
@ -1018,7 +1069,7 @@ namespace Cantera {
*/
SpeciesThermo& speciesThermo() { return *m_spthermo; }
//! Initialize the object's internal lengths after species are set
/**
* @internal Initialize. This method is provided to allow
* subclasses to perform any initialization required after all
@ -1028,7 +1079,11 @@ namespace Cantera {
* and subclasses that do not require initialization do not
* need to overload this method. When importing a CTML phase
* description, this method is called just prior to returning
* from function importPhase.
* from function importPhase().
*
* Cascading call sequence downwards starting with Parent.
*
* @internal
*
* @see importCTML.cpp
*/
@ -1048,7 +1103,6 @@ namespace Cantera {
* phase element will be used.
*/
virtual void constructPhaseFile(std::string infile, std::string id="");
//! Import and initialize a DebyeHuckel phase
//! specification in an XML tree into the current object.
@ -1142,7 +1196,7 @@ namespace Cantera {
/*!
* This is a function of temperature and pressure. See A_Debye_TP() for
* a definition of \f$ A_{Debye} \f$.
* .
*
* Units = sqrt(kg/gmol) K-1
*
* @param temperature Temperature in kelvin. Defaults to -1, in which
@ -1153,15 +1207,14 @@ namespace Cantera {
*/
virtual double dA_DebyedT_TP(double temperature = -1.0,
double pressure = -1.0) const;
/**
* Value of the 2nd derivative of the Debye Huckel constant with
* respect to temperature as a function of temperature
* and pressure.
*
* A_Debye = (F e B_Debye) / (8 Pi epsilon R T)
*
* Units = sqrt(kg/gmol)
//! Value of the 2nd derivative of the Debye Huckel constant with
//! respect to temperature as a function of temperature and pressure.
/*!
* This is a function of temperature and pressure. See A_Debye_TP() for
* a definition of \f$ A_{Debye} \f$.
*
* Units = sqrt(kg/gmol) K-2
*
* @param temperature Temperature in kelvin. Defaults to -1, in which
* case the temperature of the phase is assumed.
@ -1172,14 +1225,13 @@ namespace Cantera {
virtual double d2A_DebyedT2_TP(double temperature = -1.0,
double pressure = -1.0) const;
/**
* Value of the derivative of the Debye Huckel constant with
* respect to pressure, as a function of temperature
* and pressure.
*
* A_Debye = (F e B_Debye) / (8 Pi epsilon R T)
*
* Units = sqrt(kg/gmol)
//! Value of the derivative of the Debye Huckel constant with
//! respect to pressure, as a function of temperature and pressure.
/*!
* This is a function of temperature and pressure. See A_Debye_TP() for
* a definition of \f$ A_{Debye} \f$.
*
* Units = sqrt(kg/gmol) Pa-1
*
* @param temperature Temperature in kelvin. Defaults to -1, in which
* case the temperature of the phase is assumed.
@ -1205,15 +1257,17 @@ namespace Cantera {
private:
/* Static function that implements the non-polar species
* salt-out modifications.
//! Static function that implements the non-polar species
//! salt-out modifications.
/*!
* Returns the calculated activity coefficients.
*/
double _nonpolarActCoeff(double IionicMolality) const;
/**
* Formula for the osmotic coefficient that occurs in
* the GWB. It is originally from Helgeson for a variable
//! Formula for the osmotic coefficient that occurs in the GWB.
/*!
* It is originally from Helgeson for a variable
* NaCl brine. It's to be used with extreme caution.
*/
double _osmoticCoeffHelgesonFixedForm() const;
@ -1224,9 +1278,9 @@ namespace Cantera {
protected:
/**
* This is the form of the Debye-Huckel parameterization
* used in this model.
//! form of the Debye-Huckel parameterization used in the model.
/*!
* The options are described at the top of this document,
* and in the general documentation.
* The list is repeated here:
@ -1275,7 +1329,17 @@ namespace Cantera {
*/
double m_Pcurrent;
//! Vector containing the electrolyte species type
/*!
* The possible types are:
* - solvent
* - Charged Species
* - weakAcidAssociated
* - strongAcidAssociated
* - polarNeutral
* - nonpolarNeutral
* .
*/
vector_int m_electrolyteSpeciesType;
/**
@ -1312,12 +1376,12 @@ namespace Cantera {
*/
bool m_useHelgesonFixedForm;
protected:
/**
* Stoichiometric ionic strength on the molality scale
*/
//! Stoichiometric ionic strength on the molality scale
mutable double m_IionicMolalityStoich;
public:
/**
* Form of the constant outside the Debye-Huckel term
* called A. It's normally a function of temperature
@ -1338,6 +1402,7 @@ namespace Cantera {
protected:
//! Current value of the Debye Constant, A_Debye
/**
* A_Debye -> this expression appears on the top of the
* ln actCoeff term in the general Debye-Huckel
@ -1363,6 +1428,7 @@ namespace Cantera {
*/
mutable double m_A_Debye;
//! Current value of the constant that appears in the denominator
/**
* B_Debye -> this expression appears on the bottom of the
* ln actCoeff term in the general Debye-Huckel
@ -1385,6 +1451,7 @@ namespace Cantera {
*/
double m_B_Debye;
//! Array of B_Dot valyes
/**
* B_Dot -> This expression is an extension of the
* Debye-Huckel expression used in some formulations
@ -1401,11 +1468,17 @@ namespace Cantera {
*/
array_fp m_npActCoeff;
/**
* Water standard state -> derived from the
* equation of state for water.
//! Pointer to the Water standard state object
/*!
* derived from the equation of state for water.
*/
WaterPDSS *m_waterSS;
//! Storage for the density of water's standard state
/*!
* Density depends on temperature and pressure.
*/
double m_densWaterSS;
/**
@ -1456,31 +1529,79 @@ namespace Cantera {
*/
Array2D m_Beta_ij;
/**
* Logarithm of the activity coefficients on the molality
* scale.
//! Logarithm of the activity coefficients on the molality scale.
/*!
* mutable because we change this if the composition
* or temperature or pressure changes.
*/
mutable array_fp m_lnActCoeffMolal;
//! Derivative of log act coeff wrt T
mutable array_fp m_dlnActCoeffMolaldT;
//! 2nd Derivative of log act coeff wrt T
mutable array_fp m_d2lnActCoeffMolaldT2;
//! Derivative of log act coeff wrt P
mutable array_fp m_dlnActCoeffMolaldP;
private:
doublereal err(std::string msg) const;
//! Initialize the internal lengths.
/*!
* This internal function adjusts the lengths of arrays based on
* the number of species.
*/
void initLengths();
/*
* This function will be called to update the internally storred
private:
//! Calculate the log activity coefficients
/*!
* This function updates the internally storred
* natural logarithm of the molality activity coefficients
*/
void s_update_lnMolalityActCoeff() const;
//! Calculation of temperatue derivative of activity coefficient
/*!
* Using internally stored values, this function calculates
* the temperature derivative of the logarithm of the
* activity coefficient for all species in the mechanism.
*
* We assume that the activity coefficients are current in this routine
*
* The solvent activity coefficient is on the molality scale. It's derivative is too.
*/
void s_update_dlnMolalityActCoeff_dT() const;
//! Calculate the temperature 2nd derivative of the activity coefficient
/*!
* Using internally stored values, this function calculates
* the temperature 2nd derivative of the logarithm of the
* activity coefficient for all species in the mechanism.
*
* We assume that the activity coefficients are current in this routine
*
* solvent activity coefficient is on the molality
* scale. It's derivatives are too.
*
* note: private routine
*/
void s_update_d2lnMolalityActCoeff_dT2() const;
//! Calculate the pressure derivative of the activity coefficient
/*!
* Using internally stored values, this function calculates
* the pressure derivative of the logarithm of the
* activity coefficient for all species in the mechanism.
*
* We assume that the activity coefficients, molalities,
* and A_Debye are current.
*
* solvent activity coefficient is on the molality
* scale. It's derivatives are too.
*/
void s_update_dlnMolalityActCoeff_dP() const;
};