Moved the getActivityConcentration() function and related
functions up to the parent level, GibbsExcessVPSSTP
This commit is contained in:
parent
701bcc53b1
commit
89497de369
13 changed files with 62 additions and 553 deletions
|
|
@ -213,16 +213,17 @@ namespace Cantera {
|
|||
/*
|
||||
* - Activities, Standard States, Activity Concentrations -----------
|
||||
*/
|
||||
void GibbsExcessVPSSTP::getActivityConcentrations(doublereal* c) const {
|
||||
getActivities(c);
|
||||
}
|
||||
|
||||
|
||||
doublereal GibbsExcessVPSSTP::standardConcentration(int k) const {
|
||||
err("standardConcentration");
|
||||
return -1.0;
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
doublereal GibbsExcessVPSSTP::logStandardConc(int k) const {
|
||||
err("logStandardConc");
|
||||
return -1.0;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
void GibbsExcessVPSSTP::getActivities(doublereal* ac) const {
|
||||
|
|
@ -328,8 +329,8 @@ namespace Cantera {
|
|||
*/
|
||||
void GibbsExcessVPSSTP::getUnitsStandardConc(double *uA, int k, int sizeUA) const {
|
||||
for (int i = 0; i < sizeUA; i++) {
|
||||
if (i == 0) uA[0] = 1.0;
|
||||
if (i == 1) uA[1] = -nDim();
|
||||
if (i == 0) uA[0] = 0.0;
|
||||
if (i == 1) uA[1] = 0.0;
|
||||
if (i == 2) uA[2] = 0.0;
|
||||
if (i == 3) uA[3] = 0.0;
|
||||
if (i == 4) uA[4] = 0.0;
|
||||
|
|
|
|||
|
|
@ -74,7 +74,27 @@ namespace Cantera {
|
|||
* fraction vector. That's one of its primary usages. In order to keep the mole fraction
|
||||
* vector constant, all of the setState functions are redesigned at this layer.
|
||||
*
|
||||
* <H3> SetState Strategy </H3>
|
||||
*
|
||||
* <H3>
|
||||
* Activity Concentrations: Relationship of %ThermoPhase to %Kinetics Expressions
|
||||
* </H3>
|
||||
*
|
||||
* As explained in a similar discussion in the ThermoPhase class, the actual units used
|
||||
* in kinetics expressions must be specified in the ThermoPhase class for the corresponding
|
||||
* species. These units vary with the field of study. %Cantera uses the concept of
|
||||
* activity concentrations to represent this. Activity concentrations are used directly
|
||||
* in the expressions for kinetics. Standard concentrations are used as the multiplicative
|
||||
* constant that takes the activity of a species and turns it into an activity concentration.
|
||||
* Standard concentrations must not depend on the concentration of the species in the phase.
|
||||
*
|
||||
* Here we set a standard for the specification of the standard concentrations for this class
|
||||
* and all child classes underneath it. We specify here that the standard concentration is
|
||||
* equal to 1 for all species. Therefore, the activities appear directly in kinetics expressions
|
||||
* involving species in underlying %GibbsExcessVPSSTP phases.
|
||||
*
|
||||
* <H3>
|
||||
* SetState Strategy
|
||||
* </H3>
|
||||
*
|
||||
* All setState functions that set the internal state of the ThermoPhase object are
|
||||
* overloaded at this level, so that a current mole fraction vector is maintained within
|
||||
|
|
@ -223,7 +243,24 @@ namespace Cantera {
|
|||
* @{
|
||||
*/
|
||||
|
||||
|
||||
//! This method returns an array of generalized concentrations
|
||||
/*!
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
virtual void getActivityConcentrations(doublereal* c) const;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -237,6 +274,9 @@ namespace Cantera {
|
|||
* different sizes), this method may be called with an
|
||||
* optional parameter indicating the species.
|
||||
*
|
||||
* The standard concentration for defaulted to 1. In other words
|
||||
* the activity concentration is assumed to be 1.
|
||||
*
|
||||
* @param k species index. Defaults to zero.
|
||||
*/
|
||||
virtual doublereal standardConcentration(int k=0) const;
|
||||
|
|
|
|||
|
|
@ -323,109 +323,18 @@ namespace Cantera {
|
|||
//err("not implemented");
|
||||
//return 0.0;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
/*
|
||||
* - Activities, Standard States, Activity Concentrations -----------
|
||||
*/
|
||||
|
||||
// This method returns an array of generalized concentrations
|
||||
/*
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* Here we define the activity concentrations as equal
|
||||
* to the activities, because the standard concentration is 1.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
void IonsFromNeutralVPSSTP::getActivityConcentrations(doublereal* c) const {
|
||||
getActivities(c);
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
void IonsFromNeutralVPSSTP::getDissociationCoeffs(vector_fp& coeffs,
|
||||
vector_fp& charges, std::vector<int>& neutMolIndex) const {
|
||||
coeffs = fm_neutralMolec_ions_;
|
||||
charges = m_speciesCharge;
|
||||
neutMolIndex = fm_invert_ionForNeutral;
|
||||
}
|
||||
|
||||
// Return the standard concentration for the kth species
|
||||
/*
|
||||
* The standard concentration \f$ C^0_k \f$ used to normalize
|
||||
* the activity (i.e., generalized) concentration. In many cases, this quantity
|
||||
* will be the same for all species in a phase - for example,
|
||||
* for an ideal gas \f$ C^0_k = P/\hat R T \f$. For this
|
||||
* reason, this method returns a single value, instead of an
|
||||
* array. However, for phases in which the standard
|
||||
* concentration is species-specific (e.g. surface species of
|
||||
* different sizes), this method may be called with an
|
||||
* optional parameter indicating the species.
|
||||
*
|
||||
* @param k Optional parameter indicating the species. The default
|
||||
* is to assume this refers to species 0.
|
||||
* @return
|
||||
* Returns the standard concentration. The units are by definition
|
||||
* dependent on the ThermoPhase and kinetics manager representation.
|
||||
*/
|
||||
doublereal IonsFromNeutralVPSSTP::standardConcentration(int k) const {
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
// Natural logarithm of the standard concentration of the kth species.
|
||||
/*
|
||||
* @param k index of the species (defaults to zero)
|
||||
*/
|
||||
doublereal IonsFromNeutralVPSSTP::logStandardConc(int k) const {
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
// Returns the units of the standard and generalized concentrations.
|
||||
/*
|
||||
* Note they have the same units, as their
|
||||
* ratio is defined to be equal to the activity of the kth
|
||||
* species in the solution, which is unitless.
|
||||
*
|
||||
* This routine is used in print out applications where the
|
||||
* units are needed. Usually, MKS units are assumed throughout
|
||||
* the program and in the XML input files.
|
||||
*
|
||||
* The base %ThermoPhase class assigns the default quantities
|
||||
* of (kmol/m3) for all species.
|
||||
* Inherited classes are responsible for overriding the default
|
||||
* values if necessary.
|
||||
*
|
||||
* @param uA Output vector containing the units
|
||||
* uA[0] = kmol units - default = 1
|
||||
* uA[1] = m units - default = -nDim(), the number of spatial
|
||||
* dimensions in the Phase class.
|
||||
* uA[2] = kg units - default = 0;
|
||||
* uA[3] = Pa(pressure) units - default = 0;
|
||||
* uA[4] = Temperature units - default = 0;
|
||||
* uA[5] = time units - default = 0
|
||||
* @param k species index. Defaults to 0.
|
||||
* @param sizeUA output int containing the size of the vector.
|
||||
* Currently, this is equal to 6.
|
||||
*/
|
||||
void IonsFromNeutralVPSSTP::getUnitsStandardConc(double *uA, int k,
|
||||
int sizeUA) const {
|
||||
uA[0] = 0;
|
||||
uA[1] = 0;
|
||||
uA[2] = 0;
|
||||
uA[3] = 0;
|
||||
uA[4] = 0;
|
||||
uA[5] = 0;
|
||||
}
|
||||
|
||||
//===========================================================================================================
|
||||
// Get the array of non-dimensional molar-based activity coefficients at
|
||||
// the current solution temperature, pressure, and solution concentration.
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -264,88 +264,6 @@ namespace Cantera {
|
|||
* @{
|
||||
*/
|
||||
|
||||
//! This method returns an array of generalized concentrations
|
||||
/*!
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
virtual void getActivityConcentrations(doublereal* c) const;
|
||||
|
||||
//! Return the standard concentration for the kth species
|
||||
/*!
|
||||
* The standard concentration \f$ C^0_k \f$ used to normalize
|
||||
* the activity (i.e., generalized) concentration. In many cases, this quantity
|
||||
* will be the same for all species in a phase - for example,
|
||||
* for an ideal gas \f$ C^0_k = P/\hat R T \f$. For this
|
||||
* reason, this method returns a single value, instead of an
|
||||
* array. However, for phases in which the standard
|
||||
* concentration is species-specific (e.g. surface species of
|
||||
* different sizes), this method may be called with an
|
||||
* optional parameter indicating the species.
|
||||
*
|
||||
* Here we define the standard concentration as being equal to 1.0.
|
||||
* Therefore, the kinetics operators will be dealing in unitless
|
||||
* activities for all kinetics expressions involving the molten
|
||||
* salts. This assignment is subject to further assessment.
|
||||
*
|
||||
* @param k Optional parameter indicating the species. The default
|
||||
* is to assume this refers to species 0.
|
||||
* @return
|
||||
* Returns the standard concentration. The units are by definition
|
||||
* dependent on the ThermoPhase and kinetics manager representation.
|
||||
*/
|
||||
virtual doublereal standardConcentration(int k=0) const;
|
||||
|
||||
|
||||
//! Natural logarithm of the standard concentration of the kth species.
|
||||
/*!
|
||||
* @param k index of the species (defaults to zero)
|
||||
*/
|
||||
virtual doublereal logStandardConc(int k=0) const;
|
||||
|
||||
//! Returns the units of the standard and generalized concentrations.
|
||||
/*!
|
||||
* Note they have the same units, as their
|
||||
* ratio is defined to be equal to the activity of the kth
|
||||
* species in the solution, which is unitless.
|
||||
*
|
||||
* This routine is used in print out applications where the
|
||||
* units are needed. Usually, MKS units are assumed throughout
|
||||
* the program and in the XML input files.
|
||||
*
|
||||
* The base %ThermoPhase class assigns the default quantities
|
||||
* of (kmol/m3) for all species.
|
||||
* Inherited classes are responsible for overriding the default
|
||||
* values if necessary.
|
||||
*
|
||||
* @param uA Output vector containing the units
|
||||
* uA[0] = kmol units - default = 1
|
||||
* uA[1] = m units - default = -nDim(), the number of spatial
|
||||
* dimensions in the Phase class.
|
||||
* uA[2] = kg units - default = 0;
|
||||
* uA[3] = Pa(pressure) units - default = 0;
|
||||
* uA[4] = Temperature units - default = 0;
|
||||
* uA[5] = time units - default = 0
|
||||
* @param k species index. Defaults to 0.
|
||||
* @param sizeUA output int containing the size of the vector.
|
||||
* Currently, this is equal to 6.
|
||||
*/
|
||||
virtual void getUnitsStandardConc(double *uA, int k = 0,
|
||||
int sizeUA = 6) const;
|
||||
|
||||
|
||||
//! Get the array of non-dimensional molar-based activity coefficients at
|
||||
//! the current solution temperature, pressure, and solution concentration.
|
||||
/*!
|
||||
|
|
@ -353,7 +271,6 @@ namespace Cantera {
|
|||
*/
|
||||
virtual void getActivityCoefficients(doublereal* ac) const;
|
||||
|
||||
|
||||
|
||||
//@}
|
||||
/// @name Partial Molar Properties of the Solution
|
||||
|
|
|
|||
|
|
@ -340,41 +340,7 @@ namespace Cantera {
|
|||
* - Activities, Standard States, Activity Concentrations -----------
|
||||
*/
|
||||
|
||||
// This method returns an array of generalized concentrations
|
||||
/*
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* Here we define the activity concentrations as equal
|
||||
* to the activities, because the standard concentration is 1.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
void MargulesVPSSTP::getActivityConcentrations(doublereal* c) const {
|
||||
getActivities(c);
|
||||
}
|
||||
|
||||
doublereal MargulesVPSSTP::standardConcentration(int k) const {
|
||||
//err("standardConcentration");
|
||||
//return -1.0;
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
doublereal MargulesVPSSTP::logStandardConc(int k) const {
|
||||
//err("logStandardConc");
|
||||
//return -1.0;
|
||||
return 0.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
// Get the array of non-dimensional molar-based ln activity coefficients at
|
||||
// the current solution temperature, pressure, and solution concentration.
|
||||
|
|
@ -1151,7 +1117,7 @@ namespace Cantera {
|
|||
if (nParamsFound != 2) {
|
||||
throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessEnthalpy for " + ispName
|
||||
+ "::" + jspName,
|
||||
"wrong number of params found");
|
||||
"wrong number of params found. Need 2");
|
||||
}
|
||||
m_HE_b_ij[iSpot] = vParams[0];
|
||||
m_HE_c_ij[iSpot] = vParams[1];
|
||||
|
|
@ -1167,7 +1133,7 @@ namespace Cantera {
|
|||
if (nParamsFound != 2) {
|
||||
throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessEntropy for " + ispName
|
||||
+ "::" + jspName,
|
||||
"wrong number of params found");
|
||||
"wrong number of params found. Need 2");
|
||||
}
|
||||
m_SE_b_ij[iSpot] = vParams[0];
|
||||
m_SE_c_ij[iSpot] = vParams[1];
|
||||
|
|
@ -1183,7 +1149,7 @@ namespace Cantera {
|
|||
if (nParamsFound != 2) {
|
||||
throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessVolume_Enthalpy for " + ispName
|
||||
+ "::" + jspName,
|
||||
"wrong number of params found");
|
||||
"wrong number of params found. Need 2");
|
||||
}
|
||||
m_VHE_b_ij[iSpot] = vParams[0];
|
||||
m_VHE_c_ij[iSpot] = vParams[1];
|
||||
|
|
@ -1199,7 +1165,7 @@ namespace Cantera {
|
|||
if (nParamsFound != 2) {
|
||||
throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessVolume_Entropy for " + ispName
|
||||
+ "::" + jspName,
|
||||
"wrong number of params found");
|
||||
"wrong number of params found. Need 2");
|
||||
}
|
||||
m_VSE_b_ij[iSpot] = vParams[0];
|
||||
m_VSE_c_ij[iSpot] = vParams[1];
|
||||
|
|
|
|||
|
|
@ -493,48 +493,6 @@ namespace Cantera {
|
|||
* @{
|
||||
*/
|
||||
|
||||
//! This method returns an array of generalized concentrations
|
||||
/*!
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
virtual void getActivityConcentrations(doublereal* c) const;
|
||||
|
||||
|
||||
/**
|
||||
* The standard concentration \f$ C^0_k \f$ used to normalize
|
||||
* the generalized concentration. In many cases, this quantity
|
||||
* will be the same for all species in a phase - for example,
|
||||
* for an ideal gas \f$ C^0_k = P/\hat R T \f$. For this
|
||||
* reason, this method returns a single value, instead of an
|
||||
* array. However, for phases in which the standard
|
||||
* concentration is species-specific (e.g. surface species of
|
||||
* different sizes), this method may be called with an
|
||||
* optional parameter indicating the species.
|
||||
*
|
||||
* @param k species index. Defaults to zero.
|
||||
*/
|
||||
virtual doublereal standardConcentration(int k=0) const;
|
||||
|
||||
/**
|
||||
* Returns the natural logarithm of the standard
|
||||
* concentration of the kth species
|
||||
*
|
||||
* @param k species index
|
||||
*/
|
||||
virtual doublereal logStandardConc(int k=0) const;
|
||||
|
||||
//! Get the array of non-dimensional molar-based ln activity coefficients at
|
||||
//! the current solution temperature, pressure, and solution concentration.
|
||||
|
|
|
|||
|
|
@ -329,52 +329,14 @@ namespace Cantera {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//====================================================================================================================
|
||||
/*
|
||||
* ------------ Molar Thermodynamic Properties ----------------------
|
||||
*/
|
||||
|
||||
|
||||
//====================================================================================================================
|
||||
/*
|
||||
* - Activities, Standard States, Activity Concentrations -----------
|
||||
*/
|
||||
|
||||
// This method returns an array of generalized concentrations
|
||||
/*
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* Here we define the activity concentrations as equal
|
||||
* to the activities, because the standard concentration is 1.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
void MixedSolventElectrolyte::getActivityConcentrations(doublereal* c) const {
|
||||
getActivities(c);
|
||||
}
|
||||
|
||||
doublereal MixedSolventElectrolyte::standardConcentration(int k) const {
|
||||
//err("standardConcentration");
|
||||
//return -1.0;
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
doublereal MixedSolventElectrolyte::logStandardConc(int k) const {
|
||||
//err("logStandardConc");
|
||||
//return -1.0;
|
||||
return 0.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
// Get the array of non-dimensional molar-based activity coefficients at
|
||||
// the current solution temperature, pressure, and solution concentration.
|
||||
|
|
@ -394,7 +356,7 @@ namespace Cantera {
|
|||
ac[k] = exp(lnActCoeff_Scaled_[k]);
|
||||
}
|
||||
}
|
||||
|
||||
//====================================================================================================================
|
||||
/*
|
||||
* ------------ Partial Molar Properties of the Solution ------------
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -493,49 +493,6 @@ namespace Cantera {
|
|||
* @{
|
||||
*/
|
||||
|
||||
//! This method returns an array of generalized concentrations
|
||||
/*!
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
virtual void getActivityConcentrations(doublereal* c) const;
|
||||
|
||||
|
||||
/**
|
||||
* The standard concentration \f$ C^0_k \f$ used to normalize
|
||||
* the generalized concentration. In many cases, this quantity
|
||||
* will be the same for all species in a phase - for example,
|
||||
* for an ideal gas \f$ C^0_k = P/\hat R T \f$. For this
|
||||
* reason, this method returns a single value, instead of an
|
||||
* array. However, for phases in which the standard
|
||||
* concentration is species-specific (e.g. surface species of
|
||||
* different sizes), this method may be called with an
|
||||
* optional parameter indicating the species.
|
||||
*
|
||||
* @param k species index. Defaults to zero.
|
||||
*/
|
||||
virtual doublereal standardConcentration(int k=0) const;
|
||||
|
||||
/**
|
||||
* Returns the natural logarithm of the standard
|
||||
* concentration of the kth species
|
||||
*
|
||||
* @param k species index
|
||||
*/
|
||||
virtual doublereal logStandardConc(int k=0) const;
|
||||
|
||||
//! Get the array of non-dimensional molar-based activity coefficients at
|
||||
//! the current solution temperature, pressure, and solution concentration.
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -281,42 +281,10 @@ namespace Cantera {
|
|||
/*
|
||||
* ------------ Molar Thermodynamic Properties ----------------------
|
||||
*/
|
||||
|
||||
|
||||
//====================================================================================================================
|
||||
/*
|
||||
* - Activities, Standard States, Activity Concentrations -----------
|
||||
*/
|
||||
// This method returns an array of generalized concentrations
|
||||
/*
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* Here we define the activity concentrations as equal
|
||||
* to the activities, because the standard concentration is 1.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
void MolarityIonicVPSSTP::getActivityConcentrations(doublereal* c) const {
|
||||
getActivities(c);
|
||||
}
|
||||
//====================================================================================================================
|
||||
doublereal MolarityIonicVPSSTP::standardConcentration(int k) const {
|
||||
return -1.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
doublereal MolarityIonicVPSSTP::logStandardConc(int k) const {
|
||||
return 0.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
// Get the array of non-dimensional molar-based activity coefficients at
|
||||
// the current solution temperature, pressure, and solution concentration.
|
||||
|
|
|
|||
|
|
@ -228,49 +228,6 @@ namespace Cantera {
|
|||
* @{
|
||||
*/
|
||||
|
||||
//! This method returns an array of generalized concentrations
|
||||
/*!
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
virtual void getActivityConcentrations(doublereal* c) const;
|
||||
|
||||
|
||||
/**
|
||||
* The standard concentration \f$ C^0_k \f$ used to normalize
|
||||
* the generalized concentration. In many cases, this quantity
|
||||
* will be the same for all species in a phase - for example,
|
||||
* for an ideal gas \f$ C^0_k = P/\hat R T \f$. For this
|
||||
* reason, this method returns a single value, instead of an
|
||||
* array. However, for phases in which the standard
|
||||
* concentration is species-specific (e.g. surface species of
|
||||
* different sizes), this method may be called with an
|
||||
* optional parameter indicating the species.
|
||||
*
|
||||
* @param k species index. Defaults to zero.
|
||||
*/
|
||||
virtual doublereal standardConcentration(int k=0) const;
|
||||
|
||||
/**
|
||||
* Returns the natural logarithm of the standard
|
||||
* concentration of the kth species
|
||||
*
|
||||
* @param k species index
|
||||
*/
|
||||
virtual doublereal logStandardConc(int k=0) const;
|
||||
|
||||
//! Get the array of non-dimensional molar-based ln activity coefficients at
|
||||
//! the current solution temperature, pressure, and solution concentration.
|
||||
/*!
|
||||
|
|
@ -278,11 +235,6 @@ namespace Cantera {
|
|||
*/
|
||||
virtual void getLnActivityCoefficients(doublereal* ac) const;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//@}
|
||||
/// @name Partial Molar Properties of the Solution
|
||||
//@{
|
||||
|
|
|
|||
|
|
@ -342,51 +342,13 @@ namespace Cantera {
|
|||
}
|
||||
}
|
||||
//====================================================================================================================
|
||||
|
||||
/*
|
||||
* ------------ Molar Thermodynamic Properties ----------------------
|
||||
*/
|
||||
|
||||
|
||||
//====================================================================================================================
|
||||
/*
|
||||
* - Activities, Standard States, Activity Concentrations -----------
|
||||
*/
|
||||
|
||||
// This method returns an array of generalized concentrations
|
||||
/*
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* Here we define the activity concentrations as equal
|
||||
* to the activities, because the standard concentration is 1.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
void PhaseCombo_Interaction::getActivityConcentrations(doublereal* c) const {
|
||||
getActivities(c);
|
||||
}
|
||||
//====================================================================================================================
|
||||
doublereal PhaseCombo_Interaction::standardConcentration(int k) const {
|
||||
//err("standardConcentration");
|
||||
//return -1.0;
|
||||
return 1.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
doublereal PhaseCombo_Interaction::logStandardConc(int k) const {
|
||||
//err("logStandardConc");
|
||||
//return -1.0;
|
||||
return 0.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
// Get the array of non-dimensional molar-based activity coefficients at
|
||||
// the current solution temperature, pressure, and solution concentration.
|
||||
|
|
|
|||
|
|
@ -334,53 +334,13 @@ namespace Cantera {
|
|||
|
||||
}
|
||||
//====================================================================================================================
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* ------------ Molar Thermodynamic Properties ----------------------
|
||||
*/
|
||||
|
||||
|
||||
//====================================================================================================================
|
||||
/*
|
||||
* - Activities, Standard States, Activity Concentrations -----------
|
||||
*/
|
||||
|
||||
// This method returns an array of generalized concentrations
|
||||
/*
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* Here we define the activity concentrations as equal
|
||||
* to the activities, because the standard concentration is 1.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
void RedlichKisterVPSSTP::getActivityConcentrations(doublereal* c) const {
|
||||
getActivities(c);
|
||||
}
|
||||
//====================================================================================================================
|
||||
doublereal RedlichKisterVPSSTP::standardConcentration(int k) const {
|
||||
//err("standardConcentration");
|
||||
//return -1.0;
|
||||
return 1.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
doublereal RedlichKisterVPSSTP::logStandardConc(int k) const {
|
||||
//err("logStandardConc");
|
||||
//return -1.0;
|
||||
return 0.0;
|
||||
}
|
||||
//====================================================================================================================
|
||||
// Get the array of non-dimensional molar-based activity coefficients at
|
||||
// the current solution temperature, pressure, and solution concentration.
|
||||
|
|
|
|||
|
|
@ -490,49 +490,6 @@ namespace Cantera {
|
|||
* @{
|
||||
*/
|
||||
|
||||
//! This method returns an array of generalized concentrations
|
||||
/*!
|
||||
* \f$ C^a_k\f$ are defined such that \f$ a_k = C^a_k /
|
||||
* C^0_k, \f$ where \f$ C^0_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. Note that they may
|
||||
* or may not have units of concentration --- they might be
|
||||
* partial pressures, mole fractions, or surface coverages,
|
||||
* for example.
|
||||
*
|
||||
* @param c Output array of generalized concentrations. The
|
||||
* units depend upon the implementation of the
|
||||
* reaction rate expressions within the phase.
|
||||
*/
|
||||
virtual void getActivityConcentrations(doublereal* c) const;
|
||||
|
||||
|
||||
/**
|
||||
* The standard concentration \f$ C^0_k \f$ used to normalize
|
||||
* the generalized concentration. In many cases, this quantity
|
||||
* will be the same for all species in a phase - for example,
|
||||
* for an ideal gas \f$ C^0_k = P/\hat R T \f$. For this
|
||||
* reason, this method returns a single value, instead of an
|
||||
* array. However, for phases in which the standard
|
||||
* concentration is species-specific (e.g. surface species of
|
||||
* different sizes), this method may be called with an
|
||||
* optional parameter indicating the species.
|
||||
*
|
||||
* @param k species index. Defaults to zero.
|
||||
*/
|
||||
virtual doublereal standardConcentration(int k=0) const;
|
||||
|
||||
/**
|
||||
* Returns the natural logarithm of the standard
|
||||
* concentration of the kth species
|
||||
*
|
||||
* @param k species index
|
||||
*/
|
||||
virtual doublereal logStandardConc(int k=0) const;
|
||||
|
||||
//! Get the array of non-dimensional molar-based ln activity coefficients at
|
||||
//! the current solution temperature, pressure, and solution concentration.
|
||||
/*!
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue