diff --git a/include/cantera/numerics/Integrator.h b/include/cantera/numerics/Integrator.h index 5335f84d9..f90adf66e 100644 --- a/include/cantera/numerics/Integrator.h +++ b/include/cantera/numerics/Integrator.h @@ -29,8 +29,8 @@ const int BAND = 32; * Not all methods are supported by all integrators. */ enum MethodType { - BDF_Method, /**< Backward Differentiation */ - Adams_Method /**< Adams */ + BDF_Method, //!< Backward Differentiation + Adams_Method //! Adams }; //! Specifies the method used for iteration. @@ -129,51 +129,51 @@ public: return 0.0; } - /** The current value of the solution of equation k. */ + //! The current value of the solution of equation k. virtual doublereal& solution(size_t k) { warn("solution"); return m_dummy; } - /** The current value of the solution of the system of equations. */ + //! The current value of the solution of the system of equations. virtual doublereal* solution() { warn("solution"); return 0; } - /** The number of equations. */ + //! The number of equations. virtual int nEquations() const { warn("nEquations"); return 0; } - /** The number of function evaluations. */ + //! The number of function evaluations. virtual int nEvals() const { warn("nEvals"); return 0; } - /** Set the maximum integration order that will be used. **/ + //! Set the maximum integration order that will be used. virtual void setMaxOrder(int n) { warn("setMaxorder"); } - /** Set the solution method */ + //! Set the solution method virtual void setMethod(MethodType t) { warn("setMethodType"); } - /** Set the linear iterator. */ + //! Set the linear iterator. virtual void setIterator(IterType t) { warn("setInterator"); } - /** Set the maximum step size */ + //! Set the maximum step size virtual void setMaxStepSize(double hmax) { warn("setMaxStepSize"); } - /** Set the minimum step size */ + //! Set the minimum step size virtual void setMinStepSize(double hmin) { warn("setMinStepSize"); } diff --git a/include/cantera/thermo/IdealMolalSoln.h b/include/cantera/thermo/IdealMolalSoln.h index f73287d22..e65ecd3a8 100644 --- a/include/cantera/thermo/IdealMolalSoln.h +++ b/include/cantera/thermo/IdealMolalSoln.h @@ -26,10 +26,6 @@ namespace Cantera { -/** \addtogroup thermoprops */ -/* @{ - */ - /** * This phase is based upon the mixing-rule assumption that * all molality-based activity coefficients are equal @@ -93,6 +89,8 @@ namespace Cantera * * * + * + * @ingroup thermoprops */ class IdealMolalSoln : public MolalityVPSSTP { @@ -675,7 +673,6 @@ private: void calcIMSCutoffParams_(); }; -/* @} */ } #endif diff --git a/include/cantera/zeroD/ReactorBase.h b/include/cantera/zeroD/ReactorBase.h index d0b53e123..6307ba38f 100644 --- a/include/cantera/zeroD/ReactorBase.h +++ b/include/cantera/zeroD/ReactorBase.h @@ -48,7 +48,7 @@ public: m_name = name; } - /** @name Methods to set up a simulation. */ + //! @name Methods to set up a simulation. //@{ /** diff --git a/include/cantera/zeroD/ReactorNet.h b/include/cantera/zeroD/ReactorNet.h index c7c211368..0d4c1c0c9 100644 --- a/include/cantera/zeroD/ReactorNet.h +++ b/include/cantera/zeroD/ReactorNet.h @@ -26,7 +26,7 @@ public: ReactorNet(); virtual ~ReactorNet(); - /** @name Methods to set up a simulation. */ + //! @name Methods to set up a simulation. //@{ /** diff --git a/samples/cxx/flamespeed/flamespeed.cpp b/samples/cxx/flamespeed/flamespeed.cpp index 4bc29dc77..ee257c457 100644 --- a/samples/cxx/flamespeed/flamespeed.cpp +++ b/samples/cxx/flamespeed/flamespeed.cpp @@ -161,12 +161,11 @@ int flamespeed(double phi) int loglevel=1; bool refine_grid = true; - /* Solve freely propagating flame*/ + // Solve freely propagating flame - /* Linearly interpolate to find location where this - temperature would exist. The temperature at this - location will then be fixed for remainder of - calculation.*/ + // Linearly interpolate to find location where this temperature would + // exist. The temperature at this location will then be fixed for + // remainder of calculation. flow.fixTemperature(); refine_grid=false; diff --git a/src/equil/BasisOptimize.cpp b/src/equil/BasisOptimize.cpp index dca5e883e..f36b8b681 100644 --- a/src/equil/BasisOptimize.cpp +++ b/src/equil/BasisOptimize.cpp @@ -144,8 +144,8 @@ size_t BasisOptimize(int* usedZeroedSpecies, bool doFormRxn, MultiPhase* mphase, * current number of component species found. */ while (jr < nComponents) { - /* - Top of another loop point based on finding a linearly */ - /* - independent species */ + // Top of another loop point based on finding a linearly independent + // species while (true) { /* * Search the remaining part of the mole number vector, molNum @@ -183,9 +183,7 @@ size_t BasisOptimize(int* usedZeroedSpecies, bool doFormRxn, MultiPhase* mphase, #endif molNum[kk] = USEDBEFORE; - /* *********************************************************** */ - /* **** CHECK LINEAR INDEPENDENCE WITH PREVIOUS SPECIES ****** */ - /* *********************************************************** */ + // **** CHECK LINEAR INDEPENDENCE WITH PREVIOUS SPECIES ****** /* * Modified Gram-Schmidt Method, p. 202 Dalquist * QR factorization of a matrix without row pivoting. @@ -228,16 +226,12 @@ size_t BasisOptimize(int* usedZeroedSpecies, bool doFormRxn, MultiPhase* mphase, tmp = sm[ml + jr*ne]; sa[jr] += tmp * tmp; } - /* **************************************************** */ - /* **** IF NORM OF NEW ROW .LT. 1E-3 REJECT ********** */ - /* **************************************************** */ + // **** IF NORM OF NEW ROW .LT. 1E-3 REJECT ********** if (sa[jr] > 1.0e-6) { break; } } - /* ****************************************** */ - /* **** REARRANGE THE DATA ****************** */ - /* ****************************************** */ + // **** REARRANGE THE DATA ****************** if (jr != k) { if (DEBUG_MODE_ENABLED && BasisOptimize_print_lvl >= 1) { kk = orderVectorSpecies[k]; @@ -258,9 +252,7 @@ size_t BasisOptimize(int* usedZeroedSpecies, bool doFormRxn, MultiPhase* mphase, return nComponents; } - /* ****************************************************** */ - /* **** EVALUATE THE STOICHIOMETRY ********************** */ - /* ****************************************************** */ + // **** EVALUATE THE STOICHIOMETRY ********************** /* * Formulate the matrix problem for the stoichiometric * coefficients. CX + B = 0 @@ -361,7 +353,7 @@ size_t BasisOptimize(int* usedZeroedSpecies, bool doFormRxn, MultiPhase* mphase, } return nComponents; -} /* basopt() ************************************************************/ +} // basopt() static void print_stringTrunc(const char* str, int space, int alignment) @@ -526,10 +518,8 @@ void ElemRearrange(size_t nComponents, const vector_fp& elementAbundances, */ eAbund[kk] = test; - /* *********************************************************** */ - /* **** CHECK LINEAR INDEPENDENCE OF CURRENT FORMULA MATRIX */ - /* **** LINE WITH PREVIOUS LINES OF THE FORMULA MATRIX ****** */ - /* *********************************************************** */ + // **** CHECK LINEAR INDEPENDENCE OF CURRENT FORMULA MATRIX + // **** LINE WITH PREVIOUS LINES OF THE FORMULA MATRIX ****** /* * Modified Gram-Schmidt Method, p. 202 Dalquist * QR factorization of a matrix without row pivoting. @@ -580,16 +570,12 @@ void ElemRearrange(size_t nComponents, const vector_fp& elementAbundances, double tmp = sm[ml + jr*nComponents]; sa[jr] += tmp * tmp; } - /* **************************************************** */ - /* **** IF NORM OF NEW ROW .LT. 1E-6 REJECT ********** */ - /* **************************************************** */ + // **** IF NORM OF NEW ROW .LT. 1E-6 REJECT ********** if (sa[jr] > 1.0e-6) { break; } } - /* ****************************************** */ - /* **** REARRANGE THE DATA ****************** */ - /* ****************************************** */ + // **** REARRANGE THE DATA ****************** if (jr != k) { if (DEBUG_MODE_ENABLED && BasisOptimize_print_lvl > 0) { kk = orderVectorElements[k]; diff --git a/src/thermo/DebyeHuckel.cpp b/src/thermo/DebyeHuckel.cpp index b8a10ec34..a187ce664 100644 --- a/src/thermo/DebyeHuckel.cpp +++ b/src/thermo/DebyeHuckel.cpp @@ -88,10 +88,8 @@ DebyeHuckel::DebyeHuckel(const DebyeHuckel& b) : m_waterSS(0), m_densWaterSS(1000.) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -164,9 +162,8 @@ int DebyeHuckel::eosType() const return res; } -// // -------- Molar Thermodynamic Properties of the Solution --------------- -// + doublereal DebyeHuckel::enthalpy_mole() const { getPartialMolarEnthalpies(m_tmpV.data()); @@ -196,9 +193,7 @@ doublereal DebyeHuckel::cv_mole() const throw NotImplementedError("DebyeHuckel::cv_mole"); } -// // ------- Mechanical Equation of State Properties ------------------------ -// doublereal DebyeHuckel::pressure() const { @@ -213,32 +208,24 @@ void DebyeHuckel::setPressure(doublereal p) void DebyeHuckel::setState_TP(doublereal t, doublereal p) { Phase::setTemperature(t); - /* - * Store the current pressure - */ + + // Store the current pressure m_Pcurrent = p; - /* - * update the standard state thermo - * -> This involves calling the water function and setting the pressure - */ + // update the standard state thermo. This involves calling the water + // function and setting the pressure _updateStandardStateThermo(); - /* - * Calculate all of the other standard volumes - * -> note these are constant for now - */ + // Calculate all of the other standard volumes. Note these are constant for + // now calcDensity(); } void DebyeHuckel::calcDensity() { if (m_waterSS) { - /* - * Store the internal density of the water SS. - * Note, we would have to do this for all other - * species if they had pressure dependent properties. - */ + // Store the internal density of the water SS. Note, we would have to do + // this for all other species if they had pressure dependent properties. m_densWaterSS = m_waterSS->density(); } double* vbar = &m_pp[0]; @@ -276,9 +263,7 @@ void DebyeHuckel::setTemperature(const doublereal temp) setState_TP(temp, m_Pcurrent); } -// // ------- Activities and Activity Concentrations -// void DebyeHuckel::getActivityConcentrations(doublereal* c) const { @@ -298,10 +283,9 @@ doublereal DebyeHuckel::standardConcentration(size_t k) const void DebyeHuckel::getActivities(doublereal* ac) const { _updateStandardStateThermo(); - /* - * Update the molality array, m_molalities() - * This requires an update due to mole fractions - */ + + // Update the molality array, m_molalities(). This requires an update due to + // mole fractions s_update_lnMolalityActCoeff(); for (size_t k = 0; k < m_kk; k++) { if (k != m_indexSolvent) { @@ -324,23 +308,18 @@ void DebyeHuckel::getMolalityActivityCoefficients(doublereal* acMolality) const } } -// // ------ Partial Molar Properties of the Solution ----------------- -// + void DebyeHuckel::getChemPotentials(doublereal* mu) const { double xx; - /* - * First get the standard chemical potentials in - * molar form. - * -> this requires updates of standard state as a function - * of T and P - */ + + // First get the standard chemical potentials in molar form. This requires + // updates of standard state as a function of T and P getStandardChemPotentials(mu); - /* - * Update the activity coefficients - * This also updates the internal molality array. - */ + + // Update the activity coefficients. This also updates the internal molality + // array. s_update_lnMolalityActCoeff(); double xmolSolvent = moleFraction(m_indexSolvent); for (size_t k = 0; k < m_kk; k++) { @@ -356,27 +335,21 @@ void DebyeHuckel::getChemPotentials(doublereal* mu) const void DebyeHuckel::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * Dimensionalize it. - */ + + // Dimensionalize it. for (size_t k = 0; k < m_kk; k++) { hbar[k] *= RT(); } - /* - * Check to see whether activity coefficients are temperature - * dependent. If they are, then calculate the their temperature - * derivatives and add them into the result. - */ + + // Check to see whether activity coefficients are temperature + // dependent. If they are, then calculate the their temperature + // derivatives and add them into the result. double dAdT = dA_DebyedT_TP(); if (dAdT != 0.0) { - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + // Update the activity coefficients, This also update the + // internally stored molalities. s_update_lnMolalityActCoeff(); s_update_dlnMolalityActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { @@ -387,26 +360,21 @@ void DebyeHuckel::getPartialMolarEnthalpies(doublereal* hbar) const void DebyeHuckel::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the standard state entropies at the temperature - * and pressure of the solution. - */ + // Get the standard state entropies at the temperature and pressure of the + // solution. getEntropy_R(sbar); - /* - * Dimensionalize the entropies - */ + + // Dimensionalize the entropies for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnMolalityActCoeff(); - /* - * First we will add in the obvious dependence on the T - * term out front of the log activity term - */ + + // First we will add in the obvious dependence on the T term out front of + // the log activity term doublereal mm; for (size_t k = 0; k < m_kk; k++) { if (k != m_indexSolvent) { @@ -417,11 +385,10 @@ void DebyeHuckel::getPartialMolarEntropies(doublereal* sbar) const double xmolSolvent = moleFraction(m_indexSolvent); mm = std::max(SmallNumber, xmolSolvent); sbar[m_indexSolvent] -= GasConstant *(log(mm) + m_lnActCoeffMolal[m_indexSolvent]); - /* - * Check to see whether activity coefficients are temperature - * dependent. If they are, then calculate the their temperature - * derivatives and add them into the result. - */ + + // Check to see whether activity coefficients are temperature dependent. If + // they are, then calculate the their temperature derivatives and add them + // into the result. double dAdT = dA_DebyedT_TP(); if (dAdT != 0.0) { s_update_dlnMolalityActCoeff_dT(); @@ -434,9 +401,8 @@ void DebyeHuckel::getPartialMolarEntropies(doublereal* sbar) const void DebyeHuckel::getPartialMolarVolumes(doublereal* vbar) const { getStandardVolumes(vbar); - /* - * Update the derivatives wrt the activity coefficients. - */ + + // Update the derivatives wrt the activity coefficients. s_update_lnMolalityActCoeff(); s_update_dlnMolalityActCoeff_dP(); for (size_t k = 0; k < m_kk; k++) { @@ -446,27 +412,18 @@ void DebyeHuckel::getPartialMolarVolumes(doublereal* vbar) const void DebyeHuckel::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional Gibbs standard state of the - * species at the T and P of the solution. - */ getCp_R(cpbar); - for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } - /* - * Check to see whether activity coefficients are temperature - * dependent. If they are, then calculate the their temperature - * derivatives and add them into the result. - */ + // Check to see whether activity coefficients are temperature dependent. If + // they are, then calculate the their temperature derivatives and add them + // into the result. double dAdT = dA_DebyedT_TP(); if (dAdT != 0.0) { - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + // Update the activity coefficients, This also update the internally + // stored molalities. s_update_lnMolalityActCoeff(); s_update_dlnMolalityActCoeff_dT(); s_update_d2lnMolalityActCoeff_dT2(); @@ -477,9 +434,7 @@ void DebyeHuckel::getPartialMolarCp(doublereal* cpbar) const } } -/* - * -------------- Utilities ------------------------------- - */ +// -------------- Utilities ------------------------------- void DebyeHuckel::initThermo() { @@ -491,7 +446,8 @@ void DebyeHuckel::initThermo() initLengths(); } -//! Utility function to assign an integer value from a string for the ElectrolyteSpeciesType field. +//! Utility function to assign an integer value from a string for the +//! ElectrolyteSpeciesType field. /*! * @param estString input string that will be interpreted */ @@ -530,19 +486,15 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("DebyeHuckel::initThermoXML", "no thermo XML node"); } XML_Node& thermoNode = phaseNode.child("thermo"); - /* - * Determine the form of the Debye-Huckel model, - * m_formDH. We will use this information to size arrays below. - */ + // Determine the form of the Debye-Huckel model, m_formDH. We will use this + // information to size arrays below. if (thermoNode.hasChild("activityCoefficients")) { XML_Node& scNode = thermoNode.child("activityCoefficients"); m_formDH = DHFORM_DILUTE_LIMIT; @@ -564,16 +516,12 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } } else { - /* - * If there is no XML node named "activityCoefficients", assume - * that we are doing the extreme dilute limit assumption - */ + // If there is no XML node named "activityCoefficients", assume + // that we are doing the extreme dilute limit assumption m_formDH = DHFORM_DILUTE_LIMIT; } - /* - * Possibly change the form of the standard concentrations - */ + // Possibly change the form of the standard concentrations if (thermoNode.hasChild("standardConc")) { XML_Node& scNode = thermoNode.child("standardConc"); m_formGC = 2; @@ -596,13 +544,10 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Reconcile the solvent name and index. - */ - /* - * Get the Name of the Solvent: - * solventName - */ + // Reconcile the solvent name and index. + + // Get the Name of the Solvent: + // solventName std::string solventName = ""; if (thermoNode.hasChild("solvent")) { XML_Node& scNode = thermoNode.child("solvent"); @@ -633,17 +578,13 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) " should be first species"); } - /* - * Initialize all of the lengths of arrays in the object - * now that we know what species are in the phase. - */ + // Initialize all of the lengths of arrays in the object now that we know + // what species are in the phase. initThermo(); - /* - * Now go get the specification of the standard states for - * species in the solution. This includes the molar volumes - * data blocks for incompressible species. - */ + // Now go get the specification of the standard states for species in the + // solution. This includes the molar volumes data blocks for incompressible + // species. XML_Node& speciesList = phaseNode.child("speciesArray"); XML_Node* speciesDB = get_XML_NameID("speciesData", speciesList["datasrc"], @@ -673,19 +614,16 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) if (k == 0) { if (modelString == "wateriapws" || modelString == "real_water" || modelString == "waterpdss") { - /* - * Initialize the water standard state model - */ + // Initialize the water standard state model m_waterSS = dynamic_cast(providePDSS(0)); if (!m_waterSS) { throw CanteraError("HMWSoln::installThermoXML", "Dynamic cast to PDSS_Water failed"); } - /* - * Fill in the molar volume of water (m3/kmol) - * at standard conditions to fill in the m_speciesSize entry - * with something reasonable. - */ + + // Fill in the molar volume of water (m3/kmol) at standard + // conditions to fill in the m_speciesSize entry with something + // reasonable. m_waterSS->setState_TP(300., OneAtm); double dens = m_waterSS->density(); double mw = m_waterSS->molecularWeight(); @@ -707,17 +645,14 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the activityCoefficients + // XML block XML_Node* acNodePtr = 0; if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); acNodePtr = &acNode; - /* - * Look for parameters for A_Debye - */ + + // Look for parameters for A_Debye if (acNode.hasChild("A_Debye")) { XML_Node* ss = acNode.findByName("A_Debye"); string modelStringa = ss->attrib("model"); @@ -735,24 +670,18 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Initialize the water property calculator. It will share - * the internal eos water calculator. - */ + // Initialize the water property calculator. It will share the internal + // eos water calculator. if (m_form_A_Debye == A_DEBYE_WATER) { m_waterProps.reset(new WaterProps(m_waterSS)); } - /* - * Look for parameters for B_Debye - */ + // Look for parameters for B_Debye if (acNode.hasChild("B_Debye")) { m_B_Debye = getFloat(acNode, "B_Debye"); } - /* - * Look for parameters for B_dot - */ + // Look for parameters for B_dot if (acNode.hasChild("B_dot")) { if (m_formDH == DHFORM_BETAIJ || m_formDH == DHFORM_DILUTE_LIMIT || @@ -761,9 +690,7 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) "B_dot entry in the wrong DH form"); } double bdot_common = getFloat(acNode, "B_dot"); - /* - * Set B_dot parameters for charged species - */ + // Set B_dot parameters for charged species for (size_t k = 0; k < m_kk; k++) { double z_k = charge(k); if (fabs(z_k) > 0.0001) { @@ -774,25 +701,19 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Look for Parameters for the Maximum Ionic Strength - */ + // Look for Parameters for the Maximum Ionic Strength if (acNode.hasChild("maxIonicStrength")) { m_maxIionicStrength = getFloat(acNode, "maxIonicStrength"); } - /* - * Look for Helgeson Parameters - */ + // Look for Helgeson Parameters if (acNode.hasChild("UseHelgesonFixedForm")) { m_useHelgesonFixedForm = true; } else { m_useHelgesonFixedForm = false; } - /* - * Look for parameters for the Ionic radius - */ + // Look for parameters for the Ionic radius if (acNode.hasChild("ionicRadius")) { XML_Node& irNode = acNode.child("ionicRadius"); @@ -810,45 +731,35 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * If the Debye-Huckel form is BDOT_AK, we can - * have separate values for the denominator's ionic - * size. -> That's how the activity coefficient is - * parameterized. In this case only do we allow the - * code to read in these parameters. - */ + // If the Debye-Huckel form is BDOT_AK, we can have separate values + // for the denominator's ionic size. -> That's how the activity + // coefficient is parameterized. In this case only do we allow the + // code to read in these parameters. if (m_formDH == DHFORM_BDOT_AK) { - /* - * Define a string-string map, and interpret the - * value of the XML element as binary pairs separated - * by colons, e.g.: - * Na+:3.0 - * Cl-:4.0 - * H+:9.0 - * OH-:3.5 - * Read them into the map. - */ + // Define a string-string map, and interpret the value of the + // XML element as binary pairs separated by colons, e.g.: + // Na+:3.0 + // Cl-:4.0 + // H+:9.0 + // OH-:3.5 + // Read them into the map. map m; getMap(irNode, m); - /* - * Iterate over the map pairs, interpreting the - * first string as a species in the current phase. - * If no match is made, silently ignore the - * lack of agreement (HKM -> may be changed in the - * future). - */ + + // Iterate over the map pairs, interpreting the first string as + // a species in the current phase. If no match is made, silently + // ignore the lack of agreement (HKM -> may be changed in the + // future). for (const auto& b : m) { size_t kk = speciesIndex(b.first); m_Aionic[kk] = fpValue(b.second) * Afactor; } } } - /* - * Get the matrix of coefficients for the Beta - * binary interaction parameters. We assume here that - * this matrix is symmetric, so that we only have to - * input 1/2 of the values. - */ + + // Get the matrix of coefficients for the Beta binary interaction + // parameters. We assume here that this matrix is symmetric, so that we + // only have to input 1/2 of the values. if (acNode.hasChild("DHBetaMatrix")) { if (m_formDH == DHFORM_BETAIJ || m_formDH == DHFORM_PITZER_BETAIJ) { @@ -861,22 +772,16 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Fill in parameters for the calculation of the - * stoichiometric Ionic Strength - * - * The default is that stoich charge is the same as the - * regular charge. - */ + // Fill in parameters for the calculation of the stoichiometric Ionic + // Strength. The default is that stoich charge is the same as the + // regular charge. m_speciesCharge_Stoich.resize(m_kk, 0.0); for (size_t k = 0; k < m_kk; k++) { m_speciesCharge_Stoich[k] = m_speciesCharge[k]; } - /* - * First look at the species database. - * -> Look for the subelement "stoichIsMods" - * in each of the species SS databases. - */ + + // First look at the species database. Look for the subelement + // "stoichIsMods" in each of the species SS databases. std::vector xspecies= speciesData(); size_t jj = xspecies.size(); for (size_t k = 0; k < m_kk; k++) { @@ -899,9 +804,7 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Now look at the activity coefficient database - */ + // Now look at the activity coefficient database if (acNodePtr && acNodePtr->hasChild("stoichIsMods")) { XML_Node& sIsNode = acNodePtr->child("stoichIsMods"); map msIs; @@ -914,13 +817,9 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Fill in the vector specifying the electrolyte species - * type - * - * First fill in default values. Everything is either - * a charge species, a nonpolar neutral, or the solvent. - */ + // Fill in the vector specifying the electrolyte species type. First fill in + // default values. Everything is either a charge species, a nonpolar + // neutral, or the solvent. for (size_t k = 0; k < m_kk; k++) { if (fabs(m_speciesCharge[k]) > 0.0001) { m_electrolyteSpeciesType[k] = cEST_chargedSpecies; @@ -934,11 +833,9 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } m_electrolyteSpeciesType[m_indexSolvent] = cEST_solvent; - /* - * First look at the species database. - * -> Look for the subelement "stoichIsMods" - * in each of the species SS databases. - */ + + // First look at the species database. Look for the subelement + // "stoichIsMods" in each of the species SS databases. std::vector xspecies= speciesData(); for (size_t k = 0; k < m_kk; k++) { std::string kname = speciesName(k); @@ -951,9 +848,8 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } } - /* - * Then look at the phase thermo specification - */ + + // Then look at the phase thermo specification if (acNodePtr && acNodePtr->hasChild("electrolyteSpeciesType")) { XML_Node& ESTNode = acNodePtr->child("electrolyteSpeciesType"); map msEST; @@ -968,9 +864,7 @@ void DebyeHuckel::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Lastly set the state - */ + // Lastly set the state if (phaseNode.hasChild("state")) { XML_Node& stateNode = phaseNode.child("state"); setStateFromXML(stateNode); @@ -1075,25 +969,17 @@ double DebyeHuckel::dA_DebyedP_TP(double tempArg, double presArg) const return dAdP; } -/* - * ---------- Other Property Functions - */ +// ---------- Other Property Functions double DebyeHuckel::AionicRadius(int k) const { return m_Aionic[k]; } -/* - * ------------ Private and Restricted Functions ------------------ - */ +// ------------ Private and Restricted Functions ------------------ void DebyeHuckel::initLengths() { - /* - * Obtain the limits of the temperature from the species - * thermo handler's limits. - */ m_electrolyteSpeciesType.resize(m_kk, cEST_polarNeutral); m_speciesSize.resize(m_kk); m_Aionic.resize(m_kk, 0.0); @@ -1141,9 +1027,7 @@ double DebyeHuckel::_osmoticCoeffHelgesonFixedForm() const double DebyeHuckel::_lnactivityWaterHelgesonFixedForm() const { - /* - * Update the internally stored vector of molalities - */ + // Update the internally stored vector of molalities calcMolalities(); double oc = _osmoticCoeffHelgesonFixedForm(); double sum = 0.0; @@ -1161,17 +1045,15 @@ double DebyeHuckel::_lnactivityWaterHelgesonFixedForm() const void DebyeHuckel::s_update_lnMolalityActCoeff() const { double z_k, zs_k1, zs_k2; - /* - * Update the internally stored vector of molalities - */ + + // Update the internally stored vector of molalities calcMolalities(); - /* - * Calculate the apparent (real) ionic strength. - * - * Note this is not the stoichiometric ionic strengh, - * where reactions of ions forming neutral salts - * are ignorred in calculating the ionic strength. - */ + + // Calculate the apparent (real) ionic strength. + // + // Note this is not the stoichiometric ionic strengh, where reactions of + // ions forming neutral salts are ignorred in calculating the ionic + // strength. m_IionicMolality = 0.0; for (size_t k = 0; k < m_kk; k++) { z_k = m_speciesCharge[k]; @@ -1180,9 +1062,7 @@ void DebyeHuckel::s_update_lnMolalityActCoeff() const m_IionicMolality /= 2.0; m_IionicMolality = std::min(m_IionicMolality, m_maxIionicStrength); - /* - * Calculate the stoichiometric ionic charge - */ + // Calculate the stoichiometric ionic charge m_IionicMolalityStoich = 0.0; for (size_t k = 0; k < m_kk; k++) { z_k = m_speciesCharge[k]; @@ -1197,21 +1077,14 @@ void DebyeHuckel::s_update_lnMolalityActCoeff() const m_IionicMolalityStoich /= 2.0; m_IionicMolalityStoich = std::min(m_IionicMolalityStoich, m_maxIionicStrength); - /* - * Possibly update the stored value of the - * Debye-Huckel parameter A_Debye - * This parameter appears on the top of the activity - * coefficient expression. - * It depends on T (and P), as it depends explicitly - * on the temperature. Also, the dielectric constant - * is usually a fairly strong function of T, also. - */ + // Possibly update the stored value of the Debye-Huckel parameter A_Debye + // This parameter appears on the top of the activity coefficient expression. + // It depends on T (and P), as it depends explicitly on the temperature. + // Also, the dielectric constant is usually a fairly strong function of T, + // also. m_A_Debye = A_Debye_TP(); - /* - * Calculate a safe value for the mole fraction - * of the solvent - */ + // Calculate a safe value for the mole fraction of the solvent double xmolSolvent = moleFraction(m_indexSolvent); xmolSolvent = std::max(8.689E-3, xmolSolvent); @@ -1276,10 +1149,8 @@ void DebyeHuckel::s_update_lnMolalityActCoeff() const lnActivitySolvent -= m_Mnaught * log(10.0) * m_IionicMolality * tmp / 2.0; - /* - * Special section to implement the Helgeson fixed form - * for the water brine activity coefficient. - */ + // Special section to implement the Helgeson fixed form for the water + // brine activity coefficient. if (m_useHelgesonFixedForm) { lnActivitySolvent = _lnactivityWaterHelgesonFixedForm(); } @@ -1390,12 +1261,10 @@ void DebyeHuckel::s_update_lnMolalityActCoeff() const default: throw CanteraError("DebyeHuckel::s_update_lnMolalityActCoeff", "ERROR"); } - /* - * Above, we calculated the ln(activitySolvent). Translate that - * into the molar-based activity coefficient by dividing by - * the solvent mole fraction. Solvents are not on the molality - * scale. - */ + + // Above, we calculated the ln(activitySolvent). Translate that into the + // molar-based activity coefficient by dividing by the solvent mole + // fraction. Solvents are not on the molality scale. xmolSolvent = moleFraction(m_indexSolvent); m_lnActCoeffMolal[m_indexSolvent] = lnActivitySolvent - log(xmolSolvent); @@ -1412,10 +1281,8 @@ void DebyeHuckel::s_update_dlnMolalityActCoeff_dT() const } return; } - /* - * Calculate a safe value for the mole fraction - * of the solvent - */ + + // Calculate a safe value for the mole fraction of the solvent double xmolSolvent = moleFraction(m_indexSolvent); xmolSolvent = std::max(8.689E-3, xmolSolvent); double sqrtI = sqrt(m_IionicMolality); @@ -1534,10 +1401,7 @@ void DebyeHuckel::s_update_d2lnMolalityActCoeff_dT2() const return; } - /* - * Calculate a safe value for the mole fraction - * of the solvent - */ + // Calculate a safe value for the mole fraction of the solvent double xmolSolvent = moleFraction(m_indexSolvent); xmolSolvent = std::max(8.689E-3, xmolSolvent); double sqrtI = sqrt(m_IionicMolality); @@ -1651,10 +1515,8 @@ void DebyeHuckel::s_update_dlnMolalityActCoeff_dP() const } return; } - /* - * Calculate a safe value for the mole fraction - * of the solvent - */ + + // Calculate a safe value for the mole fraction of the solvent double xmolSolvent = moleFraction(m_indexSolvent); xmolSolvent = std::max(8.689E-3, xmolSolvent); double sqrtI = sqrt(m_IionicMolality); diff --git a/src/thermo/FixedChemPotSSTP.cpp b/src/thermo/FixedChemPotSSTP.cpp index 6ba698823..8484a44bc 100644 --- a/src/thermo/FixedChemPotSSTP.cpp +++ b/src/thermo/FixedChemPotSSTP.cpp @@ -21,9 +21,8 @@ namespace Cantera { -/* - * ---- Constructors ------- - */ + +// ---- Constructors ------- FixedChemPotSSTP::FixedChemPotSSTP() : chemPot_(0.0) @@ -98,18 +97,14 @@ ThermoPhase* FixedChemPotSSTP::duplMyselfAsThermoPhase() const return new FixedChemPotSSTP(*this); } -/* - * ---- Utilities ----- - */ +// ---- Utilities ----- int FixedChemPotSSTP::eosType() const { return cFixedChemPot; } -/* - * ----- Mechanical Equation of State ------ - */ +// ----- Mechanical Equation of State ------ doublereal FixedChemPotSSTP::pressure() const { @@ -131,9 +126,7 @@ doublereal FixedChemPotSSTP::thermalExpansionCoeff() const return 0.0; } -/* - * ---- Chemical Potentials and Activities ---- - */ +// ---- Chemical Potentials and Activities ---- void FixedChemPotSSTP::getActivityConcentrations(doublereal* c) const { @@ -150,18 +143,14 @@ doublereal FixedChemPotSSTP::logStandardConc(size_t k) const return 0.0; } -/* - * ---- Partial Molar Properties of the Solution ---- - */ +// ---- Partial Molar Properties of the Solution ---- void FixedChemPotSSTP::getPartialMolarVolumes(doublereal* vbar) const { vbar[0] = 0.0; } -/* - * Properties of the Standard State of the Species in the Solution - */ +// Properties of the Standard State of the Species in the Solution void FixedChemPotSSTP::getStandardChemPotentials(doublereal* mu0) const { @@ -198,9 +187,7 @@ void FixedChemPotSSTP::getStandardVolumes(doublereal* vbar) const vbar[0] = 0.0; } -/* - * ---- Thermodynamic Values for the Species Reference States ---- - */ +// ---- Thermodynamic Values for the Species Reference States ---- void FixedChemPotSSTP::getIntEnergy_RT_ref(doublereal* urt) const { @@ -232,15 +219,11 @@ void FixedChemPotSSTP::getCp_R_ref(doublereal* cpr) const cpr[0] = 0.0; } -/* - * ---- Initialization and Internal functions - */ +// ---- Initialization and Internal functions void FixedChemPotSSTP::initThermoXML(XML_Node& phaseNode, const std::string& id_) { - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("FixedChemPotSSTP::initThermoXML", "no thermo XML node"); } diff --git a/src/thermo/GibbsExcessVPSSTP.cpp b/src/thermo/GibbsExcessVPSSTP.cpp index ed17f547a..a789d4d0c 100644 --- a/src/thermo/GibbsExcessVPSSTP.cpp +++ b/src/thermo/GibbsExcessVPSSTP.cpp @@ -4,11 +4,10 @@ * employ excess Gibbs free energy formulations * (see \ref thermoprops and class \link Cantera::GibbsExcessVPSSTP GibbsExcessVPSSTP\endlink). * - * Header file for a derived class of ThermoPhase that handles - * variable pressure standard state methods for calculating - * thermodynamic properties that are further based upon expressions - * for the excess Gibbs free energy expressed as a function of - * the mole fractions. + * Header file for a derived class of ThermoPhase that handles variable pressure + * standard state methods for calculating thermodynamic properties that are + * further based upon expressions for the excess Gibbs free energy expressed as + * a function of the mole fractions. */ /* * Copyright (2009) Sandia Corporation. Under the terms of @@ -83,9 +82,8 @@ void GibbsExcessVPSSTP::setConcentrations(const doublereal* const c) getMoleFractions(moleFractions_.data()); } -/* - * ------------ Mechanical Properties ------------------------------ - */ +// ------------ Mechanical Properties ------------------------------ + void GibbsExcessVPSSTP::setPressure(doublereal p) { setState_TP(temperature(), p); @@ -105,25 +103,19 @@ void GibbsExcessVPSSTP::calcDensity() void GibbsExcessVPSSTP::setState_TP(doublereal t, doublereal p) { Phase::setTemperature(t); - /* - * Store the current pressure - */ + + // Store the current pressure m_Pcurrent = p; - /* - * update the standard state thermo - * -> This involves calling the water function and setting the pressure - */ + + // update the standard state thermo. This involves calling the water + // function and setting the pressure updateStandardStateThermo(); - /* - * Calculate the partial molar volumes, and then the density of the fluid - */ + // Calculate the partial molar volumes, and then the density of the fluid calcDensity(); } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// - Activities, Standard States, Activity Concentrations ----------- void GibbsExcessVPSSTP::getActivityConcentrations(doublereal* c) const { getActivities(c); @@ -171,14 +163,11 @@ void GibbsExcessVPSSTP::getElectrochemPotentials(doublereal* mu) const } } -/* - * ------------ Partial Molar Properties of the Solution ------------ - */ +// ------------ Partial Molar Properties of the Solution ------------ + void GibbsExcessVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { - /* - * Get the standard state values in m^3 kmol-1 - */ + // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); } diff --git a/src/thermo/HMWSoln.cpp b/src/thermo/HMWSoln.cpp index b2a3d158a..5f5eda414 100644 --- a/src/thermo/HMWSoln.cpp +++ b/src/thermo/HMWSoln.cpp @@ -4,9 +4,8 @@ * models concentrated electrolyte solutions * (see \ref thermoprops and \link Cantera::HMWSoln HMWSoln \endlink) . * - * Class HMWSoln represents a concentrated liquid electrolyte phase which - * obeys the Pitzer formulation for nonideality using molality-based - * standard states. + * Class HMWSoln represents a concentrated liquid electrolyte phase which obeys + * the Pitzer formulation for nonideality using molality-based standard states. * * This version of the code was modified to have the binary Beta2 Pitzer * parameter consistent with the temperature expansions used for Beta0, @@ -207,10 +206,8 @@ HMWSoln::HMWSoln(const HMWSoln& b) : m_last_is(-1.0), m_debugCalc(0) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -394,9 +391,8 @@ int HMWSoln::eosType() const return res; } -// // -------- Molar Thermodynamic Properties of the Solution --------------- -// + doublereal HMWSoln::enthalpy_mole() const { getPartialMolarEnthalpies(m_tmpV.data()); @@ -484,9 +480,7 @@ doublereal HMWSoln::cv_mole() const return cp - beta * beta * tt * molarV / kappa_t; } -// // ------- Mechanical Equation of State Properties ------------------------ -// doublereal HMWSoln::pressure() const { @@ -546,33 +540,24 @@ void HMWSoln::setTemperature(const doublereal temp) void HMWSoln::setState_TP(doublereal temp, doublereal pres) { Phase::setTemperature(temp); - /* - * Store the current pressure - */ + + // Store the current pressure m_Pcurrent = pres; - /* - * update the standard state thermo - * -> This involves calling the water function and setting the pressure - */ + // update the standard state thermo. This involves calling the water + // function and setting the pressure updateStandardStateThermo(); - /* - * Store the internal density of the water SS. - * Note, we would have to do this for all other - * species if they had pressure dependent properties. - */ + // Store the internal density of the water SS. Note, we would have to do + // this for all other species if they had pressure dependent properties. m_densWaterSS = m_waterSS->density(); - /* - * Calculate all of the other standard volumes - * -> note these are constant for now - */ + + // Calculate all of the other standard volumes. Note these are constant for + // now calcDensity(); } -// // ------- Activities and Activity Concentrations -// void HMWSoln::getActivityConcentrations(doublereal* c) const { @@ -600,14 +585,12 @@ doublereal HMWSoln::standardConcentration(size_t k) const void HMWSoln::getActivities(doublereal* ac) const { updateStandardStateThermo(); - /* - * Update the molality array, m_molalities() - * This requires an update due to mole fractions - */ + + // Update the molality array, m_molalities(). This requires an update due to + // mole fractions s_update_lnMolalityActCoeff(); - /* - * Now calculate the array of activities. - */ + + // Now calculate the array of activities. for (size_t k = 0; k < m_kk; k++) { if (k != m_indexSolvent) { ac[k] = m_molalities[k] * exp(m_lnActCoeffMolal_Scaled[k]); @@ -629,24 +612,18 @@ void HMWSoln::getUnscaledMolalityActivityCoefficients(doublereal* acMolality) co } } -// // ------ Partial Molar Properties of the Solution ----------------- -// void HMWSoln::getChemPotentials(doublereal* mu) const { double xx; - /* - * First get the standard chemical potentials in - * molar form. - * -> this requires updates of standard state as a function - * of T and P - */ + + // First get the standard chemical potentials in molar form. This requires + // updates of standard state as a function of T and P getStandardChemPotentials(mu); - /* - * Update the activity coefficients - * This also updates the internal molality array. - */ + + // Update the activity coefficients. This also updates the internal molality + // array. s_update_lnMolalityActCoeff(); double xmolSolvent = moleFraction(m_indexSolvent); for (size_t k = 0; k < m_kk; k++) { @@ -662,20 +639,16 @@ void HMWSoln::getChemPotentials(doublereal* mu) const void HMWSoln::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { hbar[k] *= RT(); } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnMolalityActCoeff(); s_update_dlnMolalityActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { @@ -685,26 +658,21 @@ void HMWSoln::getPartialMolarEnthalpies(doublereal* hbar) const void HMWSoln::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the standard state entropies at the temperature - * and pressure of the solution. - */ + // Get the standard state entropies at the temperature and pressure of the + // solution. getEntropy_R(sbar); - /* - * Dimensionalize the entropies - */ + + // Dimensionalize the entropies for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnMolalityActCoeff(); - /* - * First we will add in the obvious dependence on the T - * term out front of the log activity term - */ + + // First we will add in the obvious dependence on the T term out front of + // the log activity term doublereal mm; for (size_t k = 0; k < m_kk; k++) { if (k != m_indexSolvent) { @@ -715,11 +683,10 @@ void HMWSoln::getPartialMolarEntropies(doublereal* sbar) const double xmolSolvent = moleFraction(m_indexSolvent); mm = std::max(SmallNumber, xmolSolvent); sbar[m_indexSolvent] -= GasConstant *(log(mm) + m_lnActCoeffMolal_Scaled[m_indexSolvent]); - /* - * Check to see whether activity coefficients are temperature - * dependent. If they are, then calculate the their temperature - * derivatives and add them into the result. - */ + + // Check to see whether activity coefficients are temperature dependent. If + // they are, then calculate the their temperature derivatives and add them + // into the result. s_update_dlnMolalityActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { sbar[k] -= RT() * m_dlnActCoeffMolaldT_Scaled[k]; @@ -728,13 +695,10 @@ void HMWSoln::getPartialMolarEntropies(doublereal* sbar) const void HMWSoln::getPartialMolarVolumes(doublereal* vbar) const { - /* - * Get the standard state values in m^3 kmol-1 - */ + // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); - /* - * Update the derivatives wrt the activity coefficients. - */ + + // Update the derivatives wrt the activity coefficients. s_update_lnMolalityActCoeff(); s_update_dlnMolalityActCoeff_dP(); for (size_t k = 0; k < m_kk; k++) { @@ -744,18 +708,13 @@ void HMWSoln::getPartialMolarVolumes(doublereal* vbar) const void HMWSoln::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional Gibbs standard state of the - * species at the T and P of the solution. - */ getCp_R(cpbar); for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnMolalityActCoeff(); s_update_dlnMolalityActCoeff_dT(); s_update_d2lnMolalityActCoeff_dT2(); @@ -765,17 +724,14 @@ void HMWSoln::getPartialMolarCp(doublereal* cpbar) const } } -/* - * -------------- Utilities ------------------------------- - */ +// -------------- Utilities ------------------------------- doublereal HMWSoln::satPressure(doublereal t) { double p_old = pressure(); double t_old = temperature(); double pres = m_waterSS->satPressure(t); - /* - * Set the underlying object back to its original state. - */ + + // Set the underlying object back to its original state. m_waterSS->setState_TP(t_old, p_old); return pres; } @@ -926,24 +882,18 @@ double HMWSoln::d2A_DebyedT2_TP(double tempArg, double presArg) const return d2AdT2; } -/* - * ---------- Other Property Functions - */ +// ---------- Other Property Functions + double HMWSoln::AionicRadius(int k) const { return m_Aionic[k]; } -/* - * ------------ Private and Restricted Functions ------------------ - */ +// ------------ Private and Restricted Functions ------------------ void HMWSoln::initLengths() { - /* - * Resize lengths equal to the number of species in - * the phase. - */ + // Resize lengths equal to the number of species in the phase. m_electrolyteSpeciesType.resize(m_kk, cEST_polarNeutral); m_speciesSize.resize(m_kk); m_speciesCharge_Stoich.resize(m_kk, 0.0); @@ -954,10 +904,7 @@ void HMWSoln::initLengths() size_t maxCounterIJlen = 1 + (m_kk-1) * (m_kk-2) / 2; - /* - * Figure out the size of the temperature coefficient - * arrays - */ + // Figure out the size of the temperature coefficient arrays int TCoeffLength = 1; if (m_formPitzerTemp == PITZER_TEMP_LINEAR) { TCoeffLength = 2; @@ -1071,22 +1018,16 @@ void HMWSoln::s_update_lnMolalityActCoeff() const return; } - /* - * Calculate the molalities. Currently, the molalities - * may not be current with respect to the contents of the - * State objects' data. - */ + // Calculate the molalities. Currently, the molalities may not be current + // with respect to the contents of the State objects' data. calcMolalities(); - /* - * Calculate a cropped set of molalities that will be used - * in all activity coefficient calculations. - */ + + // Calculate a cropped set of molalities that will be used in all activity + // coefficient calculations. calcMolalitiesCropped(); - /* - * Calculate the stoichiometric ionic charge. This isn't used in the - * Pitzer formulation. - */ + // Calculate the stoichiometric ionic charge. This isn't used in the Pitzer + // formulation. m_IionicMolalityStoich = 0.0; for (size_t k = 0; k < m_kk; k++) { double z_k = charge(k); @@ -1099,20 +1040,14 @@ void HMWSoln::s_update_lnMolalityActCoeff() const } } - /* - * Update the temperature dependence of the pitzer coefficients - * and their derivatives - */ + // Update the temperature dependence of the pitzer coefficients and their + // derivatives s_updatePitzer_CoeffWRTemp(); - /* - * Calculate the IMS cutoff factors - */ + // Calculate the IMS cutoff factors s_updateIMS_lnMolalityActCoeff(); - /* - * Now do the main calculation. - */ + // Now do the main calculation. s_updatePitzer_lnMolalityActCoeff(); double xmolSolvent = moleFraction(m_indexSolvent); @@ -1149,9 +1084,7 @@ void HMWSoln::s_update_lnMolalityActCoeff() const m_lnActCoeffMolal_Unscaled[0] = CROP_ln_gamma_o_max - 0.5 * lnxs; } - /* - * Now do the pH Scaling - */ + // Now do the pH Scaling s_updateScaling_pHScaling(); } @@ -1167,9 +1100,7 @@ void HMWSoln::calcMolalitiesCropped() const int cropMethod = 1; if (cropMethod == 0) { - /* - * Quick return - */ + // Quick return if (Imax < m_maxIionicStrength) { return; } @@ -1184,9 +1115,8 @@ void HMWSoln::calcMolalitiesCropped() const for (size_t j = (i+1); j < m_kk; j++) { double charge_j = charge(j); double abs_charge_j = fabs(charge_j); - /* - * Only loop over oppositely charge species - */ + + // Only loop over oppositely charge species if (charge_i * charge_j < 0) { double Iac_max = m_maxIionicStrength; @@ -1213,10 +1143,8 @@ void HMWSoln::calcMolalitiesCropped() const } } - /* - * Do this loop 10 times until we have achieved charge neutrality - * in the cropped molalities - */ + // Do this loop 10 times until we have achieved charge neutrality in the + // cropped molalities for (int times = 0; times< 10; times++) { double anion_charge = 0.0; double cation_charge = 0.0; @@ -1343,9 +1271,7 @@ void HMWSoln::s_updatePitzer_CoeffWRTemp(int doDerivs) const for (size_t i = 1; i < (m_kk - 1); i++) { for (size_t j = (i+1); j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; @@ -1574,64 +1500,48 @@ void HMWSoln::s_updatePitzer_CoeffWRTemp(int doDerivs) const void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const { - /* - * HKM -> Assumption is made that the solvent is - * species 0. - */ + // HKM -> Assumption is made that the solvent is species 0. if (m_indexSolvent != 0) { throw CanteraError("HMWSoln::s_updatePitzer_lnMolalityActCoeff", "Wrong index solvent value!"); } - /* - * Use the CROPPED molality of the species in solution. - */ + // Use the CROPPED molality of the species in solution. const vector_fp& molality = m_molalitiesCropped; - /* - * These are data inputs about the Pitzer correlation. They come - * from the input file for the Pitzer model. - */ + // These are data inputs about the Pitzer correlation. They come from the + // input file for the Pitzer model. vector_fp& gamma_Unscaled = m_gamma_tmp; - /* - * Local variables defined by Coltrin - */ + + // Local variables defined by Coltrin double etheta[5][5], etheta_prime[5][5], sqrtIs; - /* - * Molality based ionic strength of the solution - */ + + // Molality based ionic strength of the solution double Is = 0.0; - /* - * Molarcharge of the solution: In Pitzer's notation, - * this is his variable called "Z". - */ + + // Molarcharge of the solution: In Pitzer's notation, this is his variable + // called "Z". double molarcharge = 0.0; - /* - * molalitysum is the sum of the molalities over all solutes, - * even those with zero charge. - */ + + // molalitysum is the sum of the molalities over all solutes, even those + // with zero charge. double molalitysumUncropped = 0.0; debuglog("\n Debugging information from hmw_act \n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * Make sure the counter variables are setup - */ + + // Make sure the counter variables are setup counterIJ_setup(); - /* - * ---------- Calculate common sums over solutes --------------------- - */ + // ---------- Calculate common sums over solutes --------------------- for (size_t n = 1; n < m_kk; n++) { - // ionic strength + // ionic strength Is += charge(n) * charge(n) * molality[n]; - // total molar charge + // total molar charge molarcharge += fabs(charge(n)) * molality[n]; molalitysumUncropped += m_molalities[n]; } Is *= 0.5; - /* - * Store the ionic molality in the object for reference. - */ + // Store the ionic molality in the object for reference. m_IionicMolality = Is; sqrtIs = sqrt(Is); if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -1640,18 +1550,12 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const "charge = %14.7le \n", Is, molarcharge); } - /* - * The following call to calc_lambdas() calculates all 16 elements - * of the elambda and elambda1 arrays, given the value of the - * ionic strength (Is) - */ + // The following call to calc_lambdas() calculates all 16 elements of the + // elambda and elambda1 arrays, given the value of the ionic strength (Is) calc_lambdas(Is); - /* - * ----- Step 2: Find the coefficients E-theta and ------------------- - * E-thetaprime for all combinations of positive - * unlike charges up to 4 - */ + // Step 2: Find the coefficients E-theta and E-thetaprime for all + // combinations of positive unlike charges up to 4 debuglog(" Step 2: \n", DEBUG_MODE_ENABLED && m_debugCalc); for (int z1 = 1; z1 <=4; z1++) { for (int z2 =1; z2 <=4; z2++) { @@ -1667,26 +1571,18 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const " Species Species g(x) hfunc(x)\n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * calculate g(x) and hfunc(x) for each cation-anion pair MX - * In the original literature, hfunc, was called gprime. However, - * it's not the derivative of g(x), so I renamed it. - */ + // calculate g(x) and hfunc(x) for each cation-anion pair MX. In the + // original literature, hfunc, was called gprime. However, it's not the + // derivative of g(x), so I renamed it. for (size_t i = 1; i < (m_kk - 1); i++) { for (size_t j = (i+1); j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * Only loop over oppositely charge species - */ + // Only loop over oppositely charge species if (charge(i)*charge(j) < 0) { - /* - * x is a reduced function variable - */ + // x is a reduced function variable double x1 = sqrtIs * m_Alpha1MX_ij[counterIJ]; if (x1 > 1.0E-100) { m_gfunc_IJ[counterIJ] = 2.0*(1.0-(1.0 + x1) * exp(-x1)) / (x1 * x1); @@ -1719,26 +1615,20 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * --------- SUBSECTION TO CALCULATE BMX, BprimeMX, BphiMX ---------- - * --------- Agrees with Pitzer, Eq. (49), (51), (55) - */ + // SUBSECTION TO CALCULATE BMX, BprimeMX, BphiMX + // Agrees with Pitzer, Eq. (49), (51), (55) debuglog(" Step 4: \n" " Species Species BMX BprimeMX BphiMX\n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk - 1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + // both species have a non-zero charge, and one is positive and the + // other is negative if (charge(i)*charge(j) < 0.0) { m_BMX_IJ[counterIJ] = m_Beta0MX_ij[counterIJ] + m_Beta1MX_ij[counterIJ] * m_gfunc_IJ[counterIJ] @@ -1769,24 +1659,19 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * --------- SUBSECTION TO CALCULATE CMX ---------- - * --------- Agrees with Pitzer, Eq. (53). - */ + // SUBSECTION TO CALCULATE CMX + // Agrees with Pitzer, Eq. (53). debuglog(" Step 5: \n" " Species Species CMX\n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0.0) { m_CMX_IJ[counterIJ] = m_CphiMX_ij[counterIJ]/ (2.0* sqrt(fabs(charge(i)*charge(j)))); @@ -1800,24 +1685,19 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * ------- SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi ---------- - * --------- Agrees with Pitzer, Eq. 72, 73, 74 - */ + // SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi + // Agrees with Pitzer, Eq. 72, 73, 74 debuglog(" Step 6: \n" " Species Species Phi_ij Phiprime_ij Phi^phi_ij \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive and the + // other is negative if (charge(i)*charge(j) > 0) { int z1 = (int) fabs(charge(i)); int z2 = (int) fabs(charge(j)); @@ -1837,10 +1717,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * ------------- SUBSECTION FOR CALCULATION OF F ---------------------- - * ------------ Agrees with Pitzer Eqn. (65) -------------------------- - */ + // SUBSECTION FOR CALCULATION OF F + // Agrees with Pitzer Eqn. (65) debuglog(" Step 7: \n", DEBUG_MODE_ENABLED && m_debugCalc); double Aphi = A_Debye_TP() / 3.0; double F = -Aphi * (sqrt(Is) / (1.0 + 1.2*sqrt(Is)) @@ -1850,22 +1728,18 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive and the + // other is negative if (charge(i)*charge(j) < 0) { F += molality[i]*molality[j] * m_BprimeMX_IJ[counterIJ]; } - /* - * Both species have a non-zero charge, and they - * have the same sign - */ + + // Both species have a non-zero charge, and they + // have the same sign if (charge(i)*charge(j) > 0) { F += molality[i]*molality[j] * m_Phiprime_IJ[counterIJ]; } @@ -1878,11 +1752,10 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk; i++) { - /* - * -------- SUBSECTION FOR CALCULATING THE ACTCOEFF FOR CATIONS ----- - * -------- -> equations agree with my notes, Eqn. (118). - * -> Equations agree with Pitzer, eqn.(63) - */ + + // SUBSECTION FOR CALCULATING THE ACTCOEFF FOR CATIONS + // equations agree with my notes, Eqn. (118). + // Equations agree with Pitzer, eqn.(63) if (charge(i) > 0.0) { if (DEBUG_MODE_ENABLED && m_debugCalc) { writelogf(" Contributions to ln(ActCoeff_%s):\n", speciesName(i)); @@ -1898,9 +1771,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; @@ -1916,11 +1787,9 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const molality[j]* molarcharge*m_CMX_IJ[counterIJ]); } if (j < m_kk-1) { - /* - * This term is the ternary interaction involving the - * non-duplicate sum over double anions, j, k, with - * respect to the cation, i. - */ + // This term is the ternary interaction involving the + // non-duplicate sum over double anions, j, k, with + // respect to the cation, i. for (size_t k = j+1; k < m_kk; k++) { // an inner sum over all anions if (charge(k) < 0.0) { @@ -1956,9 +1825,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const writelogf(" Psi term on %-16s m_j m_k psi_ijk = %10.5f\n", snj, molality[j]*molality[k]*m_Psi_ijk[n]); } - /* - * Find the counterIJ for the j,k interaction - */ + + // Find the counterIJ for the j,k interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += (fabs(charge(i))* @@ -1972,9 +1840,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * Handle neutral j species - */ + // Handle neutral j species if (charge(j) == 0) { sum5 += molality[j]*2.0*m_Lambda_nj(j,i); if (DEBUG_MODE_ENABLED && m_debugCalc && (molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) { @@ -1982,9 +1848,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const writelogf(" Lambda term with %-12s 2 m_j lam_ji = %10.5f\n", snj, molality[j]*2.0*m_Lambda_nj(j,i)); } - /* - * Zeta interaction term - */ + + // Zeta interaction term for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { size_t izeta = j; @@ -2003,10 +1868,9 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } } - /* - * Add all of the contributions up to yield the log of the - * solute activity coefficients (molality scale) - */ + + // Add all of the contributions up to yield the log of the solute + // activity coefficients (molality scale) m_lnActCoeffMolal_Unscaled[i] = zsqF + sum1 + sum2 + sum3 + sum4 + sum5; gamma_Unscaled[i] = exp(m_lnActCoeffMolal_Unscaled[i]); if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -2015,16 +1879,14 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * -------- SUBSECTION FOR CALCULATING THE ACTCOEFF FOR ANIONS ------ - * -------- -> equations agree with my notes, Eqn. (119). - * -> Equations agree with Pitzer, eqn.(64) - */ + // SUBSECTION FOR CALCULATING THE ACTCOEFF FOR ANIONS + // equations agree with my notes, Eqn. (119). + // Equations agree with Pitzer, eqn.(64) if (charge(i) < 0) { if (DEBUG_MODE_ENABLED && m_debugCalc) { writelogf(" Contributions to ln(ActCoeff_%s):\n", speciesName(i)); } - // species i is an anion (negative) + // species i is an anion (negative) double zsqF = charge(i)*charge(i)*F; if (DEBUG_MODE_ENABLED && m_debugCalc) { writelogf(" Unary term: z*z*F = %10.5f\n", zsqF); @@ -2035,15 +1897,11 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * For Anions, do the cation interactions. - */ + // For Anions, do the cation interactions. if (charge(j) > 0) { sum1 += molality[j]* (2.0*m_BMX_IJ[counterIJ]+molarcharge*m_CMX_IJ[counterIJ]); @@ -2070,9 +1928,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * For Anions, do the other anion interactions. - */ + // For Anions, do the other anion interactions. if (charge(j) < 0.0) { // sum over all anions if (j != i) { @@ -2093,9 +1949,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const writelogf(" Psi term on %-16s m_j m_k psi_ijk = %10.5f\n", snj, molality[j]*molality[k]*m_Psi_ijk[n]); } - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += fabs(charge(i))* @@ -2109,9 +1963,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * for Anions, do the neutral species interaction - */ + // for Anions, do the neutral species interaction if (charge(j) == 0.0) { sum5 += molality[j]*2.0*m_Lambda_nj(j,i); if (DEBUG_MODE_ENABLED && m_debugCalc && (molality[j]*2.0*m_Lambda_nj(j,i)) != 0.0) { @@ -2119,9 +1971,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const writelogf(" Lambda term with %-12s 2 m_j lam_ji = %10.5f\n", snj, molality[j]*2.0*m_Lambda_nj(j,i)); } - /* - * Zeta interaction term - */ + // Zeta interaction term for (size_t k = 1; k < m_kk; k++) { if (charge(k) > 0.0) { size_t izeta = j; @@ -2148,11 +1998,10 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const speciesName(i), m_lnActCoeffMolal_Unscaled[i], gamma_Unscaled[i]); } } - /* - * ------ SUBSECTION FOR CALCULATING NEUTRAL SOLUTE ACT COEFF ------- - * ------ -> equations agree with my notes, - * -> Equations agree with Pitzer, - */ + + // SUBSECTION FOR CALCULATING NEUTRAL SOLUTE ACT COEFF + // equations agree with my notes, + // Equations agree with Pitzer, if (charge(i) == 0.0) { if (DEBUG_MODE_ENABLED && m_debugCalc) { writelogf(" Contributions to ln(ActCoeff_%s):\n", speciesName(i)); @@ -2166,9 +2015,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const writelogf(" Lambda_n term on %-16s 2 m_j lambda_n_j = %10.5f\n", snj, molality[j]*2.0*m_Lambda_nj(i,j)); } - /* - * Zeta term -> we piggyback on the psi term - */ + // Zeta term -> we piggyback on the psi term if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -2197,11 +2044,10 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } debuglog(" Step 9: \n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * -------- SUBSECTION FOR CALCULATING THE OSMOTIC COEFF --------- - * -------- -> equations agree with my notes, Eqn. (117). - * -> Equations agree with Pitzer, eqn.(62) - */ + + // SUBSECTION FOR CALCULATING THE OSMOTIC COEFF + // equations agree with my notes, Eqn. (117). + // Equations agree with Pitzer, eqn.(62) double sum1 = 0.0; double sum2 = 0.0; double sum3 = 0.0; @@ -2209,25 +2055,20 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const double sum5 = 0.0; double sum6 = 0.0; double sum7 = 0.0; - /* - * term1 is the DH term in the osmotic coefficient expression - * b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer - * implementations. - * Is = Ionic strength on the molality scale (units of (gmol/kg)) - * Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) - */ + + // term1 is the DH term in the osmotic coefficient expression + // b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer + // implementations. + // Is = Ionic strength on the molality scale (units of (gmol/kg)) + // Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) double term1 = -Aphi * pow(Is,1.5) / (1.0 + 1.2 * sqrt(Is)); for (size_t j = 1; j < m_kk; j++) { - /* - * Loop Over Cations - */ + // Loop Over Cations if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - */ + // Find the counterIJ for the symmetric j,k binary interaction size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; @@ -2243,10 +2084,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const "logic error 1 in Step 9 of hmw_act"); } if (charge(k) > 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between 2 cations. - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between 2 cations. size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum2 += molality[j]*molality[k]*m_PhiPhi_IJ[counterIJ]; @@ -2261,9 +2100,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * Loop Over Anions - */ + // Loop Over Anions if (charge(j) < 0) { for (size_t k = j+1; k < m_kk; k++) { if (j == m_kk-1) { @@ -2272,10 +2109,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const "logic error 2 in Step 9 of hmw_act"); } if (charge(k) < 0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between two anions - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between two anions size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum3 += molality[j]*molality[k]*m_PhiPhi_IJ[counterIJ]; @@ -2289,9 +2124,7 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } } - /* - * Loop Over Neutral Species - */ + // Loop Over Neutral Species if (charge(j) == 0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -2326,10 +2159,8 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } double sum_m_phi_minus_1 = 2.0 * (term1 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7); - /* - * Calculate the osmotic coefficient from - * osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) - */ + // Calculate the osmotic coefficient from + // osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) double osmotic_coef; if (molalitysumUncropped > 1.0E-150) { osmotic_coef = 1.0 + (sum_m_phi_minus_1 / molalitysumUncropped); @@ -2346,14 +2177,12 @@ void HMWSoln::s_updatePitzer_lnMolalityActCoeff() const } double lnwateract = -(m_weightSolvent/1000.0) * molalitysumUncropped * osmotic_coef; - /* - * In Cantera, we define the activity coefficient of the solvent as - * - * act_0 = actcoeff_0 * Xmol_0 - * - * We have just computed act_0. However, this routine returns - * ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). - */ + // In Cantera, we define the activity coefficient of the solvent as + // + // act_0 = actcoeff_0 * Xmol_0 + // + // We have just computed act_0. However, this routine returns + // ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). double xmolSolvent = moleFraction(m_indexSolvent); double xx = std::max(m_xmolSolventMIN, xmolSolvent); m_lnActCoeffMolal_Unscaled[0] = lnwateract - log(xx); @@ -2374,13 +2203,10 @@ void HMWSoln::s_update_dlnMolalityActCoeff_dT() const return; } - /* - * Zero the unscaled 2nd derivatives - */ + // Zero the unscaled 2nd derivatives m_dlnActCoeffMolaldT_Unscaled.assign(m_kk, 0.0); - /* - * Do the actual calculation of the unscaled temperature derivatives - */ + + // Do the actual calculation of the unscaled temperature derivatives s_updatePitzer_dlnMolalityActCoeff_dT(); for (size_t k = 1; k < m_kk; k++) { @@ -2393,27 +2219,20 @@ void HMWSoln::s_update_dlnMolalityActCoeff_dT() const m_dlnActCoeffMolaldT_Unscaled[0] = 0.0; } - /* - * Do the pH scaling to the derivatives - */ + // Do the pH scaling to the derivatives s_updateScaling_pHScaling_dT(); } void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const { - /* - * It may be assumed that the Pitzer activity coefficient routine is - * called immediately preceding the calling of this routine. Therefore, - * some quantities do not need to be recalculated in this routine. - */ + // It may be assumed that the Pitzer activity coefficient routine is called + // immediately preceding the calling of this routine. Therefore, some + // quantities do not need to be recalculated in this routine. - /* - * HKM -> Assumption is made that the solvent is - * species 0. - */ #ifdef DEBUG_MODE m_debugCalc = 0; #endif + // HKM -> Assumption is made that the solvent is species 0. if (m_indexSolvent != 0) { throw CanteraError("HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT", "Wrong index solvent value!"); @@ -2421,47 +2240,38 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const const vector_fp& molality = m_molalitiesCropped; double* d_gamma_dT_Unscaled = m_gamma_tmp.data(); - /* - * Local variables defined by Coltrin - */ + + // Local variables defined by Coltrin double etheta[5][5], etheta_prime[5][5], sqrtIs; - /* - * Molality based ionic strength of the solution - */ + + // Molality based ionic strength of the solution double Is = 0.0; - /* - * Molarcharge of the solution: In Pitzer's notation, - * this is his variable called "Z". - */ + + // Molarcharge of the solution: In Pitzer's notation, this is his variable + // called "Z". double molarcharge = 0.0; - /* - * molalitysum is the sum of the molalities over all solutes, - * even those with zero charge. - */ + + // molalitysum is the sum of the molalities over all solutes, even those + // with zero charge. double molalitysum = 0.0; debuglog("\n Debugging information from s_Pitzer_dlnMolalityActCoeff_dT()\n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * Make sure the counter variables are setup - */ + + // Make sure the counter variables are setup counterIJ_setup(); - /* - * ---------- Calculate common sums over solutes --------------------- - */ + // ---------- Calculate common sums over solutes --------------------- for (size_t n = 1; n < m_kk; n++) { - // ionic strength + // ionic strength Is += charge(n) * charge(n) * molality[n]; - // total molar charge + // total molar charge molarcharge += fabs(charge(n)) * molality[n]; molalitysum += molality[n]; } Is *= 0.5; - /* - * Store the ionic molality in the object for reference. - */ + // Store the ionic molality in the object for reference. m_IionicMolality = Is; sqrtIs = sqrt(Is); if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -2470,18 +2280,12 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const "charge = %14.7le \n", Is, molarcharge); } - /* - * The following call to calc_lambdas() calculates all 16 elements - * of the elambda and elambda1 arrays, given the value of the - * ionic strength (Is) - */ + // The following call to calc_lambdas() calculates all 16 elements of the + // elambda and elambda1 arrays, given the value of the ionic strength (Is) calc_lambdas(Is); - /* - * ----- Step 2: Find the coefficients E-theta and ------------------- - * E-thetaprime for all combinations of positive - * unlike charges up to 4 - */ + // Step 2: Find the coefficients E-theta and E-thetaprime for all + // combinations of positive unlike charges up to 4 debuglog(" Step 2: \n", DEBUG_MODE_ENABLED && m_debugCalc); for (int z1 = 1; z1 <=4; z1++) { for (int z2 =1; z2 <=4; z2++) { @@ -2497,25 +2301,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const " Species Species g(x) hfunc(x) \n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * calculate g(x) and hfunc(x) for each cation-anion pair MX - * In the original literature, hfunc, was called gprime. However, - * it's not the derivative of g(x), so I renamed it. - */ + // calculate g(x) and hfunc(x) for each cation-anion pair MX + // In the original literature, hfunc, was called gprime. However, + // it's not the derivative of g(x), so I renamed it. for (size_t i = 1; i < (m_kk - 1); i++) { for (size_t j = (i+1); j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * Only loop over oppositely charge species - */ + + // Only loop over oppositely charge species if (charge(i)*charge(j) < 0) { - /* - * x is a reduced function variable - */ + // x is a reduced function variable double x1 = sqrtIs * m_Alpha1MX_ij[counterIJ]; if (x1 > 1.0E-100) { m_gfunc_IJ[counterIJ] = 2.0*(1.0-(1.0 + x1) * exp(-x1)) / (x1 * x1); @@ -2550,26 +2347,21 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * ------- SUBSECTION TO CALCULATE BMX_L, BprimeMX_L, BphiMX_L ---------- - * ------- These are now temperature derivatives of the - * previously calculated quantities. - */ + // SUBSECTION TO CALCULATE BMX_L, BprimeMX_L, BphiMX_L + // These are now temperature derivatives of the previously calculated + // quantities. debuglog(" Step 4: \n" " Species Species BMX BprimeMX BphiMX \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk - 1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0.0) { m_BMX_IJ_L[counterIJ] = m_Beta0MX_ij_L[counterIJ] + m_Beta1MX_ij_L[counterIJ] * m_gfunc_IJ[counterIJ] @@ -2599,24 +2391,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * --------- SUBSECTION TO CALCULATE CMX_L ---------- - * --------- - */ + // --------- SUBSECTION TO CALCULATE CMX_L ---------- debuglog(" Step 5: \n" " Species Species CMX \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0.0) { m_CMX_IJ_L[counterIJ] = m_CphiMX_ij_L[counterIJ]/ (2.0* sqrt(fabs(charge(i)*charge(j)))); @@ -2630,23 +2416,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * ------- SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi ---------- - */ + // ------- SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi ---------- debuglog(" Step 6: \n" " Species Species Phi_ij Phiprime_ij Phi^phi_ij \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) > 0) { m_Phi_IJ_L[counterIJ] = m_Theta_ij_L[counterIJ]; m_Phiprime_IJ[counterIJ] = 0.0; @@ -2664,9 +2445,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * ----------- SUBSECTION FOR CALCULATION OF dFdT --------------------- - */ + // ----------- SUBSECTION FOR CALCULATION OF dFdT --------------------- debuglog(" Step 7: \n", DEBUG_MODE_ENABLED && m_debugCalc); double dA_DebyedT = dA_DebyedT_TP(); double dAphidT = dA_DebyedT /3.0; @@ -2677,22 +2456,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0) { dFdT += molality[i]*molality[j] * m_BprimeMX_IJ_L[counterIJ]; } - /* - * Both species have a non-zero charge, and they - * have the same sign, e.g., both positive or both negative. - */ + + // Both species have a non-zero charge, and they + // have the same sign, e.g., both positive or both negative. if (charge(i)*charge(j) > 0) { dFdT += molality[i]*molality[j] * m_Phiprime_IJ[counterIJ]; } @@ -2704,9 +2479,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const debuglog(" Step 8: \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk; i++) { - /* - * -------- SUBSECTION FOR CALCULATING THE dACTCOEFFdT FOR CATIONS ----- - */ + // -------- SUBSECTION FOR CALCULATING THE dACTCOEFFdT FOR CATIONS ----- if (charge(i) > 0) { // species i is the cation (positive) to calc the actcoeff double zsqdFdT = charge(i)*charge(i)*dFdT; @@ -2716,9 +2489,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; @@ -2727,11 +2498,9 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const sum1 += molality[j]* (2.0*m_BMX_IJ_L[counterIJ] + molarcharge*m_CMX_IJ_L[counterIJ]); if (j < m_kk-1) { - /* - * This term is the ternary interaction involving the - * non-duplicate sum over double anions, j, k, with - * respect to the cation, i. - */ + // This term is the ternary interaction involving the + // non-duplicate sum over double anions, j, k, with + // respect to the cation, i. for (size_t k = j+1; k < m_kk; k++) { // an inner sum over all anions if (charge(k) < 0.0) { @@ -2752,9 +2521,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const // two inner sums over anions n = k + j * m_kk + i * m_kk * m_kk; sum2 += molality[j]*molality[k]*m_Psi_ijk_L[n]; - /* - * Find the counterIJ for the j,k interaction - */ + + // Find the counterIJ for the j,k interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += fabs(charge(i))* @@ -2763,15 +2531,12 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * Handle neutral j species - */ + // Handle neutral j species if (charge(j) == 0) { sum5 += molality[j]*2.0*m_Lambda_nj_L(j,i); } - /* - * Zeta interaction term - */ + + // Zeta interaction term for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { size_t izeta = j; @@ -2784,10 +2549,9 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } } - /* - * Add all of the contributions up to yield the log of the - * solute activity coefficients (molality scale) - */ + + // Add all of the contributions up to yield the log of the + // solute activity coefficients (molality scale) m_dlnActCoeffMolaldT_Unscaled[i] = zsqdFdT + sum1 + sum2 + sum3 + sum4 + sum5; d_gamma_dT_Unscaled[i] = exp(m_dlnActCoeffMolaldT_Unscaled[i]); @@ -2799,11 +2563,9 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * ------ SUBSECTION FOR CALCULATING THE dACTCOEFFdT FOR ANIONS ------ - */ + // ------ SUBSECTION FOR CALCULATING THE dACTCOEFFdT FOR ANIONS ------ if (charge(i) < 0) { - // species i is an anion (negative) + // species i is an anion (negative) double zsqdFdT = charge(i)*charge(i)*dFdT; double sum1 = 0.0; double sum2 = 0.0; @@ -2811,15 +2573,11 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * For Anions, do the cation interactions. - */ + // For Anions, do the cation interactions. if (charge(j) > 0) { sum1 += molality[j]* (2.0*m_BMX_IJ_L[counterIJ] + molarcharge*m_CMX_IJ_L[counterIJ]); @@ -2834,9 +2592,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * For Anions, do the other anion interactions. - */ + // For Anions, do the other anion interactions. if (charge(j) < 0.0) { // sum over all anions if (j != i) { @@ -2847,9 +2603,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const // two inner sums over cations n = k + j * m_kk + i * m_kk * m_kk; sum2 += molality[j]*molality[k]*m_Psi_ijk_L[n]; - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += fabs(charge(i)) * @@ -2858,9 +2612,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * for Anions, do the neutral species interaction - */ + // for Anions, do the neutral species interaction if (charge(j) == 0.0) { sum5 += molality[j]*2.0*m_Lambda_nj_L(j,i); for (size_t k = 1; k < m_kk; k++) { @@ -2887,19 +2639,16 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const zsqdFdT, sum1, sum2, sum3, sum4, sum5); } } - /* - * ------ SUBSECTION FOR CALCULATING NEUTRAL SOLUTE ACT COEFF ------- - * ------ -> equations agree with my notes, - * -> Equations agree with Pitzer, - */ + + // SUBSECTION FOR CALCULATING NEUTRAL SOLUTE ACT COEFF + // equations agree with my notes, + // Equations agree with Pitzer, if (charge(i) == 0.0) { double sum1 = 0.0; double sum3 = 0.0; for (size_t j = 1; j < m_kk; j++) { sum1 += molality[j]*2.0*m_Lambda_nj_L(i,j); - /* - * Zeta term -> we piggyback on the psi term - */ + // Zeta term -> we piggyback on the psi term if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -2919,10 +2668,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } debuglog(" Step 9: \n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * ------ SUBSECTION FOR CALCULATING THE d OSMOTIC COEFF dT --------- - * - */ + + // ------ SUBSECTION FOR CALCULATING THE d OSMOTIC COEFF dT --------- double sum1 = 0.0; double sum2 = 0.0; double sum3 = 0.0; @@ -2930,26 +2677,20 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const double sum5 = 0.0; double sum6 = 0.0; double sum7 = 0.0; - /* - * term1 is the temperature derivative of the - * DH term in the osmotic coefficient expression - * b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer - * implementations. - * Is = Ionic strength on the molality scale (units of (gmol/kg)) - * Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) - */ + + // term1 is the temperature derivative of the DH term in the osmotic + // coefficient expression + // b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer implementations. + // Is = Ionic strength on the molality scale (units of (gmol/kg)) + // Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) double term1 = -dAphidT * Is * sqrt(Is) / (1.0 + 1.2 * sqrt(Is)); for (size_t j = 1; j < m_kk; j++) { - /* - * Loop Over Cations - */ + // Loop Over Cations if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - */ + // Find the counterIJ for the symmetric j,k binary interaction size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum1 += molality[j]*molality[k]* @@ -2964,10 +2705,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const "logic error 1 in Step 9 of hmw_act"); } if (charge(k) > 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between 2 cations. - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between 2 cations. size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum2 += molality[j]*molality[k]*m_PhiPhi_IJ_L[counterIJ]; @@ -2982,9 +2721,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * Loop Over Anions - */ + // Loop Over Anions if (charge(j) < 0) { for (size_t k = j+1; k < m_kk; k++) { if (j == m_kk-1) { @@ -2993,10 +2730,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const "logic error 2 in Step 9 of hmw_act"); } if (charge(k) < 0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between two anions - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between two anions size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum3 += molality[j]*molality[k]*m_PhiPhi_IJ_L[counterIJ]; @@ -3010,9 +2745,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } } - /* - * Loop Over Neutral Species - */ + // Loop Over Neutral Species if (charge(j) == 0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -3047,10 +2780,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } double sum_m_phi_minus_1 = 2.0 * (term1 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7); - /* - * Calculate the osmotic coefficient from - * osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) - */ + // Calculate the osmotic coefficient from + // osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) double d_osmotic_coef_dT; if (molalitysum > 1.0E-150) { d_osmotic_coef_dT = 0.0 + (sum_m_phi_minus_1 / molalitysum); @@ -3068,14 +2799,12 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dT() const } double d_lnwateract_dT = -(m_weightSolvent/1000.0) * molalitysum * d_osmotic_coef_dT; - /* - * In Cantera, we define the activity coefficient of the solvent as - * - * act_0 = actcoeff_0 * Xmol_0 - * - * We have just computed act_0. However, this routine returns - * ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). - */ + // In Cantera, we define the activity coefficient of the solvent as + // + // act_0 = actcoeff_0 * Xmol_0 + // + // We have just computed act_0. However, this routine returns + // ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). m_dlnActCoeffMolaldT_Unscaled[0] = d_lnwateract_dT; if (DEBUG_MODE_ENABLED && m_debugCalc) { double d_wateract_dT = exp(d_lnwateract_dT); @@ -3092,9 +2821,7 @@ void HMWSoln::s_update_d2lnMolalityActCoeff_dT2() const return; } - /* - * Zero the unscaled 2nd derivatives - */ + // Zero the unscaled 2nd derivatives m_d2lnActCoeffMolaldT2_Unscaled.assign(m_kk, 0.0); /* * Calculate the unscaled 2nd derivatives @@ -3111,20 +2838,16 @@ void HMWSoln::s_update_d2lnMolalityActCoeff_dT2() const m_d2lnActCoeffMolaldT2_Unscaled[0] = 0.0; } - /* - * Scale the 2nd derivatives - */ + // Scale the 2nd derivatives s_updateScaling_pHScaling_dT2(); } void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const { - /* - * HKM -> Assumption is made that the solvent is species 0. - */ #ifdef DEBUG_MODE m_debugCalc = 0; #endif + // HKM -> Assumption is made that the solvent is species 0. if (m_indexSolvent != 0) { throw CanteraError("HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2", "Wrong index solvent value!"); @@ -3132,47 +2855,37 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const const double* molality = m_molalitiesCropped.data(); - /* - * Local variables defined by Coltrin - */ + // Local variables defined by Coltrin double etheta[5][5], etheta_prime[5][5], sqrtIs; - /* - * Molality based ionic strength of the solution - */ + + // Molality based ionic strength of the solution double Is = 0.0; - /* - * Molarcharge of the solution: In Pitzer's notation, - * this is his variable called "Z". - */ + + // Molarcharge of the solution: In Pitzer's notation, this is his variable + // called "Z". double molarcharge = 0.0; - /* - * molalitysum is the sum of the molalities over all solutes, - * even those with zero charge. - */ + + // molalitysum is the sum of the molalities over all solutes, even those + // with zero charge. double molalitysum = 0.0; debuglog("\n Debugging information from s_Pitzer_d2lnMolalityActCoeff_dT2()\n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * Make sure the counter variables are setup - */ + + // Make sure the counter variables are setup counterIJ_setup(); - /* - * ---------- Calculate common sums over solutes --------------------- - */ + // ---------- Calculate common sums over solutes --------------------- for (size_t n = 1; n < m_kk; n++) { - // ionic strength + // ionic strength Is += charge(n) * charge(n) * molality[n]; - // total molar charge + // total molar charge molarcharge += fabs(charge(n)) * molality[n]; molalitysum += molality[n]; } Is *= 0.5; - /* - * Store the ionic molality in the object for reference. - */ + // Store the ionic molality in the object for reference. m_IionicMolality = Is; sqrtIs = sqrt(Is); if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -3181,18 +2894,12 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const "charge = %14.7le \n", Is, molarcharge); } - /* - * The following call to calc_lambdas() calculates all 16 elements - * of the elambda and elambda1 arrays, given the value of the - * ionic strength (Is) - */ + // The following call to calc_lambdas() calculates all 16 elements of the + // elambda and elambda1 arrays, given the value of the ionic strength (Is) calc_lambdas(Is); - /* - * ----- Step 2: Find the coefficients E-theta and ------------------- - * E-thetaprime for all combinations of positive - * unlike charges up to 4 - */ + // Step 2: Find the coefficients E-theta and E-thetaprime for all + // combinations of positive unlike charges up to 4 debuglog(" Step 2: \n", DEBUG_MODE_ENABLED && m_debugCalc); for (int z1 = 1; z1 <=4; z1++) { for (int z2 =1; z2 <=4; z2++) { @@ -3208,25 +2915,18 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const " Species Species g(x) hfunc(x) \n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * calculate gfunc(x) and hfunc(x) for each cation-anion pair MX - * In the original literature, hfunc, was called gprime. However, - * it's not the derivative of gfunc(x), so I renamed it. - */ + // calculate gfunc(x) and hfunc(x) for each cation-anion pair MX. In the + // original literature, hfunc, was called gprime. However, it's not the + // derivative of gfunc(x), so I renamed it. for (size_t i = 1; i < (m_kk - 1); i++) { for (size_t j = (i+1); j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * Only loop over oppositely charge species - */ + + // Only loop over oppositely charge species if (charge(i)*charge(j) < 0) { - /* - * x is a reduced function variable - */ + // x is a reduced function variable double x1 = sqrtIs * m_Alpha1MX_ij[counterIJ]; if (x1 > 1.0E-100) { m_gfunc_IJ[counterIJ] = 2.0*(1.0-(1.0 + x1) * exp(-x1)) / (x1 *x1); @@ -3258,26 +2958,22 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } } - /* - * ------- SUBSECTION TO CALCULATE BMX_L, BprimeMX_LL, BphiMX_L ---------- - * ------- These are now temperature derivatives of the - * previously calculated quantities. - */ + + // SUBSECTION TO CALCULATE BMX_L, BprimeMX_LL, BphiMX_L + // These are now temperature derivatives of the previously calculated + // quantities. debuglog(" Step 4: \n" " Species Species BMX BprimeMX BphiMX \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk - 1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0.0) { m_BMX_IJ_LL[counterIJ] = m_Beta0MX_ij_LL[counterIJ] + m_Beta1MX_ij_LL[counterIJ] * m_gfunc_IJ[counterIJ] @@ -3307,23 +3003,18 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * --------- SUBSECTION TO CALCULATE CMX_LL ---------- - */ + // --------- SUBSECTION TO CALCULATE CMX_LL ---------- debuglog(" Step 5: \n" " Species Species CMX \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0.0) { m_CMX_IJ_LL[counterIJ] = m_CphiMX_ij_LL[counterIJ]/ (2.0* sqrt(fabs(charge(i)*charge(j)))); @@ -3337,23 +3028,18 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * ------- SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi ---------- - */ + // ------- SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi ---------- debuglog(" Step 6: \n" " Species Species Phi_ij Phiprime_ij Phi^phi_ij \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) > 0) { m_Phi_IJ_LL[counterIJ] = m_Theta_ij_LL[counterIJ]; m_Phiprime_IJ[counterIJ] = 0.0; @@ -3371,9 +3057,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * ----------- SUBSECTION FOR CALCULATION OF d2FdT2 --------------------- - */ + // ----------- SUBSECTION FOR CALCULATION OF d2FdT2 --------------------- debuglog(" Step 7: \n", DEBUG_MODE_ENABLED && m_debugCalc); double d2AphidT2 = d2A_DebyedT2_TP() / 3.0; double d2FdT2 = -d2AphidT2 * (sqrt(Is) / (1.0 + 1.2*sqrt(Is)) @@ -3383,22 +3067,18 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0) { d2FdT2 += molality[i]*molality[j] * m_BprimeMX_IJ_LL[counterIJ]; } - /* - * Both species have a non-zero charge, and they - * have the same sign, e.g., both positive or both negative. - */ + + // Both species have a non-zero charge, and they + // have the same sign, e.g., both positive or both negative. if (charge(i)*charge(j) > 0) { d2FdT2 += molality[i]*molality[j] * m_Phiprime_IJ[counterIJ]; } @@ -3410,9 +3090,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const debuglog(" Step 8: \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk; i++) { - /* - * -------- SUBSECTION FOR CALCULATING THE dACTCOEFFdT FOR CATIONS ----- - */ + // -------- SUBSECTION FOR CALCULATING THE dACTCOEFFdT FOR CATIONS ----- if (charge(i) > 0) { // species i is the cation (positive) to calc the actcoeff double zsqd2FdT2 = charge(i)*charge(i)*d2FdT2; @@ -3422,9 +3100,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; @@ -3433,11 +3109,9 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const sum1 += molality[j]* (2.0*m_BMX_IJ_LL[counterIJ] + molarcharge*m_CMX_IJ_LL[counterIJ]); if (j < m_kk-1) { - /* - * This term is the ternary interaction involving the - * non-duplicate sum over double anions, j, k, with - * respect to the cation, i. - */ + // This term is the ternary interaction involving the + // non-duplicate sum over double anions, j, k, with + // respect to the cation, i. for (size_t k = j+1; k < m_kk; k++) { // an inner sum over all anions if (charge(k) < 0.0) { @@ -3458,9 +3132,8 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const // two inner sums over anions n = k + j * m_kk + i * m_kk * m_kk; sum2 += molality[j]*molality[k]*m_Psi_ijk_LL[n]; - /* - * Find the counterIJ for the j,k interaction - */ + + // Find the counterIJ for the j,k interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += fabs(charge(i)) * @@ -3469,14 +3142,10 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * Handle neutral j species - */ + // Handle neutral j species if (charge(j) == 0) { sum5 += molality[j]*2.0*m_Lambda_nj_LL(j,i); - /* - * Zeta interaction term - */ + // Zeta interaction term for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { size_t izeta = j; @@ -3490,10 +3159,8 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } } - /* - * Add all of the contributions up to yield the log of the - * solute activity coefficients (molality scale) - */ + // Add all of the contributions up to yield the log of the + // solute activity coefficients (molality scale) m_d2lnActCoeffMolaldT2_Unscaled[i] = zsqd2FdT2 + sum1 + sum2 + sum3 + sum4 + sum5; if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -3504,11 +3171,9 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * ------ SUBSECTION FOR CALCULATING THE d2ACTCOEFFdT2 FOR ANIONS ------ - */ + // ------ SUBSECTION FOR CALCULATING THE d2ACTCOEFFdT2 FOR ANIONS ------ if (charge(i) < 0) { - // species i is an anion (negative) + // species i is an anion (negative) double zsqd2FdT2 = charge(i)*charge(i)*d2FdT2; double sum1 = 0.0; double sum2 = 0.0; @@ -3516,15 +3181,11 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * For Anions, do the cation interactions. - */ + // For Anions, do the cation interactions. if (charge(j) > 0) { sum1 += molality[j]* (2.0*m_BMX_IJ_LL[counterIJ] + molarcharge*m_CMX_IJ_LL[counterIJ]); @@ -3539,9 +3200,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * For Anions, do the other anion interactions. - */ + // For Anions, do the other anion interactions. if (charge(j) < 0.0) { // sum over all anions if (j != i) { @@ -3552,9 +3211,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const // two inner sums over cations n = k + j * m_kk + i * m_kk * m_kk; sum2 += molality[j]*molality[k]*m_Psi_ijk_LL[n]; - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += fabs(charge(i)) * @@ -3563,14 +3220,10 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * for Anions, do the neutral species interaction - */ + // for Anions, do the neutral species interaction if (charge(j) == 0.0) { sum5 += molality[j]*2.0*m_Lambda_nj_LL(j,i); - /* - * Zeta interaction term - */ + // Zeta interaction term for (size_t k = 1; k < m_kk; k++) { if (charge(k) > 0.0) { size_t izeta = j; @@ -3594,19 +3247,16 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const zsqd2FdT2, sum1, sum2, sum3, sum4, sum5); } } - /* - * ------ SUBSECTION FOR CALCULATING NEUTRAL SOLUTE ACT COEFF ------- - * ------ -> equations agree with my notes, - * -> Equations agree with Pitzer, - */ + + // SUBSECTION FOR CALCULATING NEUTRAL SOLUTE ACT COEFF + // equations agree with my notes, + // Equations agree with Pitzer, if (charge(i) == 0.0) { double sum1 = 0.0; double sum3 = 0.0; for (size_t j = 1; j < m_kk; j++) { sum1 += molality[j]*2.0*m_Lambda_nj_LL(i,j); - /* - * Zeta term -> we piggyback on the psi term - */ + // Zeta term -> we piggyback on the psi term if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -3627,9 +3277,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } debuglog(" Step 9: \n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * ------ SUBSECTION FOR CALCULATING THE d2 OSMOTIC COEFF dT2 --------- - */ + // ------ SUBSECTION FOR CALCULATING THE d2 OSMOTIC COEFF dT2 --------- double sum1 = 0.0; double sum2 = 0.0; double sum3 = 0.0; @@ -3637,26 +3285,20 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const double sum5 = 0.0; double sum6 = 0.0; double sum7 = 0.0; - /* - * term1 is the temperature derivative of the - * DH term in the osmotic coefficient expression - * b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer - * implementations. - * Is = Ionic strength on the molality scale (units of (gmol/kg)) - * Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) - */ + + // term1 is the temperature derivative of the DH term in the osmotic + // coefficient expression + // b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer implementations. + // Is = Ionic strength on the molality scale (units of (gmol/kg)) + // Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) double term1 = -d2AphidT2 * Is * sqrt(Is) / (1.0 + 1.2 * sqrt(Is)); for (size_t j = 1; j < m_kk; j++) { - /* - * Loop Over Cations - */ + // Loop Over Cations if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - */ + // Find the counterIJ for the symmetric j,k binary interaction size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; @@ -3672,10 +3314,8 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const "logic error 1 in Step 9 of hmw_act"); } if (charge(k) > 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between 2 cations. - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between 2 cations. size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum2 += molality[j]*molality[k]*m_PhiPhi_IJ_LL[counterIJ]; @@ -3690,9 +3330,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * Loop Over Anions - */ + // Loop Over Anions if (charge(j) < 0) { for (size_t k = j+1; k < m_kk; k++) { if (j == m_kk-1) { @@ -3701,10 +3339,8 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const "logic error 2 in Step 9 of hmw_act"); } if (charge(k) < 0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between two anions - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between two anions size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; @@ -3719,9 +3355,7 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } } - /* - * Loop Over Neutral Species - */ + // Loop Over Neutral Species if (charge(j) == 0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -3757,10 +3391,8 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } double sum_m_phi_minus_1 = 2.0 * (term1 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7); - /* - * Calculate the osmotic coefficient from - * osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) - */ + // Calculate the osmotic coefficient from + // osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) double d2_osmotic_coef_dT2; if (molalitysum > 1.0E-150) { d2_osmotic_coef_dT2 = 0.0 + (sum_m_phi_minus_1 / molalitysum); @@ -3777,14 +3409,12 @@ void HMWSoln::s_updatePitzer_d2lnMolalityActCoeff_dT2() const } double d2_lnwateract_dT2 = -(m_weightSolvent/1000.0) * molalitysum * d2_osmotic_coef_dT2; - /* - * In Cantera, we define the activity coefficient of the solvent as - * - * act_0 = actcoeff_0 * Xmol_0 - * - * We have just computed act_0. However, this routine returns - * ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). - */ + // In Cantera, we define the activity coefficient of the solvent as + // + // act_0 = actcoeff_0 * Xmol_0 + // + // We have just computed act_0. However, this routine returns + // ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). m_d2lnActCoeffMolaldT2_Unscaled[0] = d2_lnwateract_dT2; if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -3820,12 +3450,10 @@ void HMWSoln::s_update_dlnMolalityActCoeff_dP() const void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const { - /* - * HKM -> Assumption is made that the solvent is species 0. - */ #ifdef DEBUG_MODE m_debugCalc = 0; #endif + // HKM -> Assumption is made that the solvent is species 0. if (m_indexSolvent != 0) { throw CanteraError("HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP", "Wrong index solvent value!"); @@ -3833,49 +3461,39 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const const double* molality = m_molalitiesCropped.data(); - /* - * Local variables defined by Coltrin - */ + // Local variables defined by Coltrin double etheta[5][5], etheta_prime[5][5], sqrtIs; - /* - * Molality based ionic strength of the solution - */ + + // Molality based ionic strength of the solution double Is = 0.0; - /* - * Molarcharge of the solution: In Pitzer's notation, - * this is his variable called "Z". - */ + + // Molarcharge of the solution: In Pitzer's notation, this is his variable + // called "Z". double molarcharge = 0.0; - /* - * molalitysum is the sum of the molalities over all solutes, - * even those with zero charge. - */ + + // molalitysum is the sum of the molalities over all solutes, even those + // with zero charge. double molalitysum = 0.0; double currTemp = temperature(); double currPres = pressure(); debuglog("\n Debugging information from s_Pitzer_dlnMolalityActCoeff_dP()\n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * Make sure the counter variables are setup - */ + + // Make sure the counter variables are setup counterIJ_setup(); - /* - * ---------- Calculate common sums over solutes --------------------- - */ + // ---------- Calculate common sums over solutes --------------------- for (size_t n = 1; n < m_kk; n++) { - // ionic strength + // ionic strength Is += charge(n) * charge(n) * molality[n]; - // total molar charge + // total molar charge molarcharge += fabs(charge(n)) * molality[n]; molalitysum += molality[n]; } Is *= 0.5; - /* - * Store the ionic molality in the object for reference. - */ + // Store the ionic molality in the object for reference. m_IionicMolality = Is; sqrtIs = sqrt(Is); if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -3884,19 +3502,13 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const "charge = %14.7le \n", Is, molarcharge); } - /* - * The following call to calc_lambdas() calculates all 16 elements - * of the elambda and elambda1 arrays, given the value of the - * ionic strength (Is) - */ + // The following call to calc_lambdas() calculates all 16 elements of the + // elambda and elambda1 arrays, given the value of the ionic strength (Is) calc_lambdas(Is); - /* - * ----- Step 2: Find the coefficients E-theta and ------------------- - * E-thetaprime for all combinations of positive - * unlike charges up to 4 - */ + // Step 2: Find the coefficients E-theta and E-thetaprime for all + // combinations of positive unlike charges up to 4 debuglog(" Step 2: \n", DEBUG_MODE_ENABLED && m_debugCalc); for (int z1 = 1; z1 <=4; z1++) { for (int z2 =1; z2 <=4; z2++) { @@ -3912,25 +3524,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const " Species Species g(x) hfunc(x)\n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * calculate g(x) and hfunc(x) for each cation-anion pair MX - * In the original literature, hfunc, was called gprime. However, - * it's not the derivative of g(x), so I renamed it. - */ + // calculate g(x) and hfunc(x) for each cation-anion pair MX + // In the original literature, hfunc, was called gprime. However, + // it's not the derivative of g(x), so I renamed it. for (size_t i = 1; i < (m_kk - 1); i++) { for (size_t j = (i+1); j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * Only loop over oppositely charge species - */ + + // Only loop over oppositely charge species if (charge(i)*charge(j) < 0) { - /* - * x is a reduced function variable - */ + // x is a reduced function variable double x1 = sqrtIs * m_Alpha1MX_ij[counterIJ]; if (x1 > 1.0E-100) { m_gfunc_IJ[counterIJ] = 2.0*(1.0-(1.0 + x1) * exp(-x1)) / (x1 * x1); @@ -3963,26 +3568,21 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * ------- SUBSECTION TO CALCULATE BMX_P, BprimeMX_P, BphiMX_P ---------- - * ------- These are now temperature derivatives of the - * previously calculated quantities. - */ + // SUBSECTION TO CALCULATE BMX_P, BprimeMX_P, BphiMX_P + // These are now temperature derivatives of the previously calculated + // quantities. debuglog(" Step 4: \n" " Species Species BMX BprimeMX BphiMX \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk - 1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0.0) { m_BMX_IJ_P[counterIJ] = m_Beta0MX_ij_P[counterIJ] + m_Beta1MX_ij_P[counterIJ] * m_gfunc_IJ[counterIJ] @@ -4012,23 +3612,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * --------- SUBSECTION TO CALCULATE CMX_P ---------- - */ + // --------- SUBSECTION TO CALCULATE CMX_P ---------- debuglog(" Step 5: \n" " Species Species CMX \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0.0) { m_CMX_IJ_P[counterIJ] = m_CphiMX_ij_P[counterIJ]/ (2.0* sqrt(fabs(charge(i)*charge(j)))); @@ -4042,23 +3637,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * ------- SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi ---------- - */ + // ------- SUBSECTION TO CALCULATE Phi, PhiPrime, and PhiPhi ---------- debuglog(" Step 6: \n" " Species Species Phi_ij Phiprime_ij Phi^phi_ij \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) > 0) { m_Phi_IJ_P[counterIJ] = m_Theta_ij_P[counterIJ]; m_Phiprime_IJ[counterIJ] = 0.0; @@ -4076,9 +3666,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * ----------- SUBSECTION FOR CALCULATION OF dFdT --------------------- - */ + // ----------- SUBSECTION FOR CALCULATION OF dFdT --------------------- debuglog(" Step 7: \n", DEBUG_MODE_ENABLED && m_debugCalc); double dA_DebyedP = dA_DebyedP_TP(currTemp, currPres); double dAphidP = dA_DebyedP /3.0; @@ -4089,22 +3677,18 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } for (size_t i = 1; i < m_kk-1; i++) { for (size_t j = i+1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * both species have a non-zero charge, and one is positive - * and the other is negative - */ + + // both species have a non-zero charge, and one is positive + // and the other is negative if (charge(i)*charge(j) < 0) { dFdP += molality[i]*molality[j] * m_BprimeMX_IJ_P[counterIJ]; } - /* - * Both species have a non-zero charge, and they - * have the same sign, e.g., both positive or both negative. - */ + + // Both species have a non-zero charge, and they + // have the same sign, e.g., both positive or both negative. if (charge(i)*charge(j) > 0) { dFdP += molality[i]*molality[j] * m_Phiprime_IJ[counterIJ]; } @@ -4116,9 +3700,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const debuglog(" Step 8: \n", DEBUG_MODE_ENABLED && m_debugCalc); for (size_t i = 1; i < m_kk; i++) { - /* - * -------- SUBSECTION FOR CALCULATING THE dACTCOEFFdP FOR CATIONS ----- - */ + // -------- SUBSECTION FOR CALCULATING THE dACTCOEFFdP FOR CATIONS ----- if (charge(i) > 0) { // species i is the cation (positive) to calc the actcoeff double zsqdFdP = charge(i)*charge(i)*dFdP; @@ -4128,9 +3710,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; @@ -4139,11 +3719,9 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const sum1 += molality[j]* (2.0*m_BMX_IJ_P[counterIJ] + molarcharge*m_CMX_IJ_P[counterIJ]); if (j < m_kk-1) { - /* - * This term is the ternary interaction involving the - * non-duplicate sum over double anions, j, k, with - * respect to the cation, i. - */ + // This term is the ternary interaction involving the + // non-duplicate sum over double anions, j, k, with + // respect to the cation, i. for (size_t k = j+1; k < m_kk; k++) { // an inner sum over all anions if (charge(k) < 0.0) { @@ -4162,12 +3740,10 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { // two inner sums over anions - n = k + j * m_kk + i * m_kk * m_kk; sum2 += molality[j]*molality[k]*m_Psi_ijk_P[n]; - /* - * Find the counterIJ for the j,k interaction - */ + + // Find the counterIJ for the j,k interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += fabs(charge(i)) * @@ -4176,14 +3752,10 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * for Anions, do the neutral species interaction - */ + // for Anions, do the neutral species interaction if (charge(j) == 0) { sum5 += molality[j]*2.0*m_Lambda_nj_P(j,i); - /* - * Zeta interaction term - */ + // Zeta interaction term for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { size_t izeta = j; @@ -4198,10 +3770,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * Add all of the contributions up to yield the log of the - * solute activity coefficients (molality scale) - */ + // Add all of the contributions up to yield the log of the + // solute activity coefficients (molality scale) m_dlnActCoeffMolaldP_Unscaled[i] = zsqdFdP + sum1 + sum2 + sum3 + sum4 + sum5; @@ -4213,11 +3783,9 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * ------ SUBSECTION FOR CALCULATING THE dACTCOEFFdP FOR ANIONS ------ - */ + // ------ SUBSECTION FOR CALCULATING THE dACTCOEFFdP FOR ANIONS ------ if (charge(i) < 0) { - // species i is an anion (negative) + // species i is an anion (negative) double zsqdFdP = charge(i)*charge(i)*dFdP; double sum1 = 0.0; double sum2 = 0.0; @@ -4225,15 +3793,11 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const double sum4 = 0.0; double sum5 = 0.0; for (size_t j = 1; j < m_kk; j++) { - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction size_t n = m_kk*i + j; size_t counterIJ = m_CounterIJ[n]; - /* - * For Anions, do the cation interactions. - */ + // For Anions, do the cation interactions. if (charge(j) > 0) { sum1 += molality[j] * (2.0*m_BMX_IJ_P[counterIJ] + molarcharge*m_CMX_IJ_P[counterIJ]); @@ -4248,9 +3812,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * For Anions, do the other anion interactions. - */ + // For Anions, do the other anion interactions. if (charge(j) < 0.0) { // sum over all anions if (j != i) { @@ -4261,9 +3823,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const // two inner sums over cations n = k + j * m_kk + i * m_kk * m_kk; sum2 += molality[j]*molality[k]*m_Psi_ijk_P[n]; - /* - * Find the counterIJ for the symmetric binary interaction - */ + // Find the counterIJ for the symmetric binary interaction n = m_kk*j + k; size_t counterIJ2 = m_CounterIJ[n]; sum4 += fabs(charge(i))* @@ -4272,14 +3832,10 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * for Anions, do the neutral species interaction - */ + // for Anions, do the neutral species interaction if (charge(j) == 0.0) { sum5 += molality[j]*2.0*m_Lambda_nj_P(j,i); - /* - * Zeta interaction term - */ + // Zeta interaction term for (size_t k = 1; k < m_kk; k++) { if (charge(k) > 0.0) { size_t izeta = j; @@ -4304,17 +3860,13 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * ------ SUBSECTION FOR CALCULATING d NEUTRAL SOLUTE ACT COEFF dP ------- - */ + // ------ SUBSECTION FOR CALCULATING d NEUTRAL SOLUTE ACT COEFF dP ----- if (charge(i) == 0.0) { double sum1 = 0.0; double sum3 = 0.0; for (size_t j = 1; j < m_kk; j++) { sum1 += molality[j]*2.0*m_Lambda_nj_P(i,j); - /* - * Zeta term -> we piggyback on the psi term - */ + // Zeta term -> we piggyback on the psi term if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -4334,9 +3886,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } debuglog(" Step 9: \n", DEBUG_MODE_ENABLED && m_debugCalc); - /* - * ------ SUBSECTION FOR CALCULATING THE d OSMOTIC COEFF dP --------- - */ + // ------ SUBSECTION FOR CALCULATING THE d OSMOTIC COEFF dP --------- double sum1 = 0.0; double sum2 = 0.0; double sum3 = 0.0; @@ -4344,26 +3894,20 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const double sum5 = 0.0; double sum6 = 0.0; double sum7 = 0.0; - /* - * term1 is the temperature derivative of the - * DH term in the osmotic coefficient expression - * b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer - * implementations. - * Is = Ionic strength on the molality scale (units of (gmol/kg)) - * Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) - */ + + // term1 is the temperature derivative of the DH term in the osmotic + // coefficient expression + // b = 1.2 sqrt(kg/gmol) <- arbitrarily set in all Pitzer implementations. + // Is = Ionic strength on the molality scale (units of (gmol/kg)) + // Aphi = A_Debye / 3 (units of sqrt(kg/gmol)) double term1 = -dAphidP * Is * sqrt(Is) / (1.0 + 1.2 * sqrt(Is)); for (size_t j = 1; j < m_kk; j++) { - /* - * Loop Over Cations - */ + // Loop Over Cations if (charge(j) > 0.0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - */ + // Find the counterIJ for the symmetric j,k binary interaction size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum1 += molality[j]*molality[k]* @@ -4378,10 +3922,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const "logic error 1 in Step 9 of hmw_act"); } if (charge(k) > 0.0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between 2 cations. - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between 2 cations. size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; sum2 += molality[j]*molality[k]*m_PhiPhi_IJ_P[counterIJ]; @@ -4396,9 +3938,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * Loop Over Anions - */ + // Loop Over Anions if (charge(j) < 0) { for (size_t k = j+1; k < m_kk; k++) { if (j == m_kk-1) { @@ -4407,10 +3947,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const "logic error 2 in Step 9 of hmw_act"); } if (charge(k) < 0) { - /* - * Find the counterIJ for the symmetric j,k binary interaction - * between two anions - */ + // Find the counterIJ for the symmetric j,k binary interaction + // between two anions size_t n = m_kk*j + k; size_t counterIJ = m_CounterIJ[n]; @@ -4425,9 +3963,7 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } } - /* - * Loop Over Neutral Species - */ + // Loop Over Neutral Species if (charge(j) == 0) { for (size_t k = 1; k < m_kk; k++) { if (charge(k) < 0.0) { @@ -4464,10 +4000,8 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const double sum_m_phi_minus_1 = 2.0 * (term1 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7); - /* - * Calculate the osmotic coefficient from - * osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) - */ + // Calculate the osmotic coefficient from + // osmotic_coeff = 1 + dGex/d(M0noRT) / sum(molality_i) double d_osmotic_coef_dP; if (molalitysum > 1.0E-150) { d_osmotic_coef_dP = 0.0 + (sum_m_phi_minus_1 / molalitysum); @@ -4484,14 +4018,12 @@ void HMWSoln::s_updatePitzer_dlnMolalityActCoeff_dP() const } double d_lnwateract_dP = -(m_weightSolvent/1000.0) * molalitysum * d_osmotic_coef_dP; - /* - * In Cantera, we define the activity coefficient of the solvent as - * - * act_0 = actcoeff_0 * Xmol_0 - * - * We have just computed act_0. However, this routine returns - * ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). - */ + // In Cantera, we define the activity coefficient of the solvent as + // + // act_0 = actcoeff_0 * Xmol_0 + // + // We have just computed act_0. However, this routine returns + // ln(actcoeff[]). Therefore, we must calculate ln(actcoeff_0). m_dlnActCoeffMolaldP_Unscaled[0] = d_lnwateract_dP; if (DEBUG_MODE_ENABLED && m_debugCalc) { writelogf(" d_ln_a_water_dP = %10.6f d_a_water_dP=%10.6f\n\n", @@ -4506,11 +4038,8 @@ void HMWSoln::calc_lambdas(double is) const } m_last_is = is; - /* - * Coefficients c1-c4 are used to approximate - * the integral function "J"; - * aphi is the Debye-Huckel constant at 25 C - */ + // Coefficients c1-c4 are used to approximate the integral function "J"; + // aphi is the Debye-Huckel constant at 25 C double c1 = 4.581, c2 = 0.7237, c3 = 0.0120, c4 = 0.528; double aphi = 0.392; /* Value at 25 C */ if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -4523,29 +4052,26 @@ void HMWSoln::calc_lambdas(double is) const } return; } - /* - * Calculate E-lambda terms for charge combinations of like sign, - * using method of Pitzer (1975). Charges up to 4 are calculated. - */ + + // Calculate E-lambda terms for charge combinations of like sign, + // using method of Pitzer (1975). Charges up to 4 are calculated. for (int i=1; i<=4; i++) { for (int j=i; j<=4; j++) { int ij = i*j; - /* - * calculate the product of the charges - */ - double zprod = (double)ij; - /* - * calculate Xmn (A1) from Harvie, Weare (1980). - */ - double x = 6.0* zprod * aphi * sqrt(is); /* eqn 23 */ - double jfunc = x / (4.0 + c1*pow(x,-c2)*exp(-c3*pow(x,c4))); /* eqn 47 */ + // calculate the product of the charges + double zprod = (double)ij; + + // calculate Xmn (A1) from Harvie, Weare (1980). + double x = 6.0* zprod * aphi * sqrt(is); // eqn 23 + + double jfunc = x / (4.0 + c1*pow(x,-c2)*exp(-c3*pow(x,c4))); // eqn 47 double t = c3 * c4 * pow(x,c4); double dj = c1* pow(x,(-c2-1.0)) * (c2+t) * exp(-c3*pow(x,c4)); double jprime = (jfunc/x)*(1.0 + jfunc*dj); - elambda[ij] = zprod*jfunc / (4.0*is); /* eqn 14 */ + elambda[ij] = zprod*jfunc / (4.0*is); // eqn 14 elambda1[ij] = (3.0*zprod*zprod*aphi*jprime/(4.0*sqrt(is)) - elambda[ij])/is; if (DEBUG_MODE_ENABLED && m_debugCalc) { @@ -4559,10 +4085,7 @@ void HMWSoln::calc_lambdas(double is) const void HMWSoln::calc_thetas(int z1, int z2, double* etheta, double* etheta_prime) const { - /* - * Calculate E-theta(i) and E-theta'(I) using method of - * Pitzer (1987) - */ + // Calculate E-theta(i) and E-theta'(I) using method of Pitzer (1987) int i = abs(z1); int j = abs(z2); @@ -4571,17 +4094,13 @@ void HMWSoln::calc_thetas(int z1, int z2, AssertThrowMsg(i != 0 && j != 0, "HMWSoln::calc_thetas", "called with one species being neutral"); - /* - * Check to see if the charges are of opposite sign. If they are of - * opposite sign then their etheta interaction is zero. - */ + // Check to see if the charges are of opposite sign. If they are of opposite + // sign then their etheta interaction is zero. if (z1*z2 < 0) { *etheta = 0.0; *etheta_prime = 0.0; } else { - /* - * Actually calculate the interaction. - */ + // Actually calculate the interaction. double f1 = (double)i / (2.0 * j); double f2 = (double)j / (2.0 * i); *etheta = elambda[i*j] - f1*elambda[j*j] - f2*elambda[i*i]; @@ -4591,11 +4110,8 @@ void HMWSoln::calc_thetas(int z1, int z2, void HMWSoln::s_updateIMS_lnMolalityActCoeff() const { - /* - * Calculate the molalities. Currently, the molalities - * may not be current with respect to the contents of the - * State objects' data. - */ + // Calculate the molalities. Currently, the molalities may not be current + // with respect to the contents of the State objects' data. calcMolalities(); double xmolSolvent = moleFraction(m_indexSolvent); double xx = std::max(m_xmolSolventMIN, xmolSolvent); @@ -4620,9 +4136,7 @@ void HMWSoln::s_updateIMS_lnMolalityActCoeff() const IMS_lnActCoeffMolal_[m_indexSolvent] = log(IMS_gamma_o_min_); return; } else { - /* - * If we are in the middle region, calculate the connecting polynomials - */ + // If we are in the middle region, calculate the connecting polynomials double xminus = xmolSolvent - IMS_X_o_cutoff_/2.0; double xminus2 = xminus * xminus; double xminus3 = xminus2 * xminus; @@ -4700,10 +4214,8 @@ void HMWSoln::printCoeffs() const { calcMolalities(); vector_fp& moleF = m_tmpV; - /* - * Update the coefficients wrt Temperature - * Calculate the derivatives as well - */ + + // Update the coefficients wrt Temperature. Calculate the derivatives as well s_updatePitzer_CoeffWRTemp(2); getMoleFractions(moleF.data()); diff --git a/src/thermo/HMWSoln_input.cpp b/src/thermo/HMWSoln_input.cpp index 8574e0c85..f495287bb 100644 --- a/src/thermo/HMWSoln_input.cpp +++ b/src/thermo/HMWSoln_input.cpp @@ -67,10 +67,9 @@ void HMWSoln::readXMLBinarySalt(XML_Node& BinSalt) if (jName == "") { throw CanteraError("HMWSoln::readXMLBinarySalt", "no anion attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(iName); if (iSpecies == npos) { return; @@ -94,13 +93,10 @@ void HMWSoln::readXMLBinarySalt(XML_Node& BinSalt) XML_Node& xmlChild = BinSalt.child(iChild); string stemp = xmlChild.name(); string nodeName = lowercase(stemp); - /* - * Process the binary salt child elements - */ + + // Process the binary salt child elements if (nodeName == "beta0") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, false, "", "beta0"); size_t nParamsFound = vParams.size(); if (m_formPitzerTemp == PITZER_TEMP_CONSTANT) { @@ -133,9 +129,7 @@ void HMWSoln::readXMLBinarySalt(XML_Node& BinSalt) } } if (nodeName == "beta1") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, false, "", "beta1"); size_t nParamsFound = vParams.size(); if (m_formPitzerTemp == PITZER_TEMP_CONSTANT) { @@ -200,9 +194,7 @@ void HMWSoln::readXMLBinarySalt(XML_Node& BinSalt) } } if (nodeName == "cphi") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, false, "", "Cphi"); size_t nParamsFound = vParams.size(); if (m_formPitzerTemp == PITZER_TEMP_CONSTANT) { @@ -264,10 +256,9 @@ void HMWSoln::readXMLThetaAnion(XML_Node& BinSalt) if (jspName == "") { throw CanteraError("HMWSoln::readXMLThetaAnion", "no anion2 attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(ispName); if (iSpecies == npos) { return; @@ -343,10 +334,9 @@ void HMWSoln::readXMLThetaCation(XML_Node& BinSalt) if (jspName == "") { throw CanteraError("HMWSoln::readXMLThetaCation", "no cation2 attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(ispName); if (iSpecies == npos) { return; @@ -426,10 +416,9 @@ void HMWSoln::readXMLPsiCommonCation(XML_Node& BinSalt) if (jName == "") { throw CanteraError("HMWSoln::readXMLPsiCommonCation", "no anion2 attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t kSpecies = speciesIndex(kName); if (kSpecies == npos) { return; @@ -561,10 +550,9 @@ void HMWSoln::readXMLPsiCommonAnion(XML_Node& BinSalt) if (jName == "") { throw CanteraError("HMWSoln::readXMLPsiCommonAnion", "no cation2 attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t kSpecies = speciesIndex(kName); if (kSpecies == npos) { return; @@ -692,10 +680,9 @@ void HMWSoln::readXMLLambdaNeutral(XML_Node& BinSalt) if (jName == "") { throw CanteraError("HMWSoln::readXMLLambdaNeutral", "no species2 attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(iName); if (iSpecies == npos) { return; @@ -766,10 +753,8 @@ void HMWSoln::readXMLMunnnNeutral(XML_Node& BinSalt) throw CanteraError("HMWSoln::readXMLMunnnNeutral", "no species1 attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(iName); if (iSpecies == npos) { return; @@ -841,10 +826,9 @@ void HMWSoln::readXMLZetaCation(const XML_Node& BinSalt) if (kName == "") { throw CanteraError("HMWSoln::readXMLZetaCation", "no anion1 attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(iName); if (iSpecies == npos) { return; @@ -961,10 +945,9 @@ void HMWSoln::constructPhaseFile(std::string inputFile, std::string id_) throw CanteraError("HMWSoln:constructPhaseFile","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + + // The phase object automatically constructs an XML object. + // Use this object to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id_); @@ -987,18 +970,14 @@ void HMWSoln::constructPhaseXML(XML_Node& phaseNode, std::string id_) } } - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("HMWSoln::constructPhaseXML", "no thermo XML node"); } XML_Node& thermoNode = phaseNode.child("thermo"); - /* - * Possibly change the form of the standard concentrations - */ + // Possibly change the form of the standard concentrations if (thermoNode.hasChild("standardConc")) { XML_Node& scNode = thermoNode.child("standardConc"); m_formGC = 2; @@ -1021,10 +1000,9 @@ void HMWSoln::constructPhaseXML(XML_Node& phaseNode, std::string id_) } } } - /* - * Get the Name of the Solvent: - * solventName - */ + + // Get the Name of the Solvent: + // solventName string solventName = ""; if (thermoNode.hasChild("solvent")) { XML_Node& scNode = thermoNode.child("solvent"); @@ -1037,10 +1015,8 @@ void HMWSoln::constructPhaseXML(XML_Node& phaseNode, std::string id_) solventName = nameSolventa[0]; } - /* - * Determine the form of the Pitzer model, - * We will use this information to size arrays below. - */ + // Determine the form of the Pitzer model. We will use this information to + // size arrays below. if (thermoNode.hasChild("activityCoefficients")) { XML_Node& scNode = thermoNode.child("activityCoefficients"); string stemp = scNode.attrib("model"); @@ -1056,10 +1032,9 @@ void HMWSoln::constructPhaseXML(XML_Node& phaseNode, std::string id_) + formString); } } - /* - * Determine the form of the temperature dependence - * of the Pitzer activity coefficient model. - */ + + // Determine the form of the temperature dependence of the Pitzer + // activity coefficient model. stemp = scNode.attrib("TempModel"); formString = lowercase(stemp); if (formString != "") { @@ -1076,11 +1051,9 @@ void HMWSoln::constructPhaseXML(XML_Node& phaseNode, std::string id_) } } - /* - * Determine the reference temperature - * of the Pitzer activity coefficient model's temperature - * dependence formulation: defaults to 25C - */ + // Determine the reference temperature of the Pitzer activity + // coefficient model's temperature dependence formulation: defaults to + // 25C stemp = scNode.attrib("TempReference"); formString = lowercase(stemp); if (formString != "") { @@ -1090,11 +1063,9 @@ void HMWSoln::constructPhaseXML(XML_Node& phaseNode, std::string id_) } } - /* - * Call the Cantera importPhase() function. This will import - * all of the species into the phase. This will also handle - * all of the solvent and solute standard states - */ + // Call the importPhase() function. This will import all of the species into + // the phase. This will also handle all of the solvent and solute standard + // states importPhase(phaseNode, this); } @@ -1108,18 +1079,14 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("HMWSoln::initThermoXML", "no thermo XML node"); } XML_Node& thermoNode = phaseNode.child("thermo"); - /* - * Possibly change the form of the standard concentrations - */ + // Possibly change the form of the standard concentrations if (thermoNode.hasChild("standardConc")) { XML_Node& scNode = thermoNode.child("standardConc"); m_formGC = 2; @@ -1143,10 +1110,8 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Determine the form of the Pitzer model, - * We will use this information to size arrays below. - */ + // Determine the form of the Pitzer model, We will use this information to + // size arrays below. if (thermoNode.hasChild("activityCoefficients")) { XML_Node& scNode = thermoNode.child("activityCoefficients"); string stemp = scNode.attrib("model"); @@ -1163,10 +1128,8 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Determine the form of the temperature dependence - * of the Pitzer activity coefficient model. - */ + // Determine the form of the temperature dependence of the Pitzer + // activity coefficient model. stemp = scNode.attrib("TempModel"); formString = lowercase(stemp); if (formString != "") { @@ -1183,11 +1146,9 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Determine the reference temperature - * of the Pitzer activity coefficient model's temperature - * dependence formulation: defaults to 25C - */ + // Determine the reference temperature of the Pitzer activity + // coefficient model's temperature dependence formulation: defaults to + // 25C stemp = scNode.attrib("TempReference"); formString = lowercase(stemp); if (formString != "") { @@ -1197,10 +1158,8 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Get the Name of the Solvent: - * solventName - */ + // Get the Name of the Solvent: + // solventName string solventName = ""; if (thermoNode.hasChild("solvent")) { XML_Node& scNode = thermoNode.child("solvent"); @@ -1213,15 +1172,11 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) solventName = nameSolventa[0]; } - /* - * Initialize all of the lengths of arrays in the object - * now that we know what species are in the phase. - */ + // Initialize all of the lengths of arrays in the object + // now that we know what species are in the phase. initLengths(); - /* - * Reconcile the solvent name and index. - */ + // Reconcile the solvent name and index. for (size_t k = 0; k < m_kk; k++) { string sname = speciesName(k); if (solventName == sname) { @@ -1246,11 +1201,9 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) " should be first species"); } - /* - * Now go get the specification of the standard states for - * species in the solution. This includes the molar volumes - * data blocks for incompressible species. - */ + // Now go get the specification of the standard states for species in the + // solution. This includes the molar volumes data blocks for incompressible + // species. XML_Node& speciesList = phaseNode.child("speciesArray"); XML_Node* speciesDB = get_XML_NameID("speciesData", speciesList["datasrc"], @@ -1279,20 +1232,18 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) if (k == 0) { if (modelString == "wateriapws" || modelString == "real_water" || modelString == "waterpdss") { - /* - * Store a local pointer to the water standard state model. - * -> We've hardcoded it to a PDSS_Water model, so this is ok. - */ + + // Store a local pointer to the water standard state model. + // We've hardcoded it to a PDSS_Water model, so this is ok. m_waterSS = dynamic_cast(providePDSS(0)); if (!m_waterSS) { throw CanteraError("HMWSoln::initThermoXML", "Dynamic cast to PDSS_Water failed"); } - /* - * Fill in the molar volume of water (m3/kmol) - * at standard conditions to fill in the m_speciesSize entry - * with something reasonable. - */ + + // Fill in the molar volume of water (m3/kmol) at standard + // conditions to fill in the m_speciesSize entry with something + // reasonable. m_waterSS->setState_TP(300., OneAtm); double dens = m_waterSS->density(); double mw = m_waterSS->molecularWeight(); @@ -1317,34 +1268,25 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Initialize the water property calculator. It will share - * the internal eos water calculator. - */ + // Initialize the water property calculator. It will share the internal eos + // water calculator. m_waterProps.reset(new WaterProps(dynamic_cast(m_waterSS))); - /* - * Fill in parameters for the calculation of the - * stoichiometric Ionic Strength - * - * The default is that stoich charge is the same as the - * regular charge. - */ + // Fill in parameters for the calculation of the stoichiometric Ionic + // Strength. The default is that stoich charge is the same as the regular + // charge. for (size_t k = 0; k < m_kk; k++) { m_speciesCharge_Stoich[k] = charge(k); } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the activityCoefficients + // XML block XML_Node* acNodePtr = 0; if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); acNodePtr = &acNode; - /* - * Look for parameters for A_Debye - */ + + // Look for parameters for A_Debye if (acNode.hasChild("A_Debye")) { XML_Node& ADebye = acNode.child("A_Debye"); m_form_A_Debye = A_DEBYE_CONST; @@ -1361,16 +1303,12 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Look for Parameters for the Maximum Ionic Strength - */ + // Look for Parameters for the Maximum Ionic Strength if (acNode.hasChild("maxIonicStrength")) { m_maxIionicStrength = getFloat(acNode, "maxIonicStrength"); } - /* - * Look for parameters for the Ionic radius - */ + // Look for parameters for the Ionic radius if (acNode.hasChild("ionicRadius")) { XML_Node& irNode = acNode.child("ionicRadius"); double Afactor = 1.0; @@ -1388,11 +1326,8 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * First look at the species database. - * -> Look for the subelement "stoichIsMods" - * in each of the species SS databases. - */ + // First look at the species database. Look for the subelement + // "stoichIsMods" in each of the species SS databases. std::vector xspecies = speciesData(); for (size_t k = 0; k < m_kk; k++) { size_t jmap = npos; @@ -1411,9 +1346,7 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Now look at the activity coefficient database - */ + // Now look at the activity coefficient database if (acNodePtr && acNodePtr->hasChild("stoichIsMods")) { XML_Node& sIsNode = acNodePtr->child("stoichIsMods"); map msIs; @@ -1427,20 +1360,16 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Loop through the children getting multiple instances of - * parameters - */ + // Loop through the children getting multiple instances of parameters if (acNodePtr) { for (size_t i = 0; i < acNodePtr->nChildren(); i++) { XML_Node& xmlACChild = acNodePtr->child(i); string stemp = xmlACChild.name(); string nodeName = lowercase(stemp); - /* - * Process a binary salt field, or any of the other XML fields - * that make up the Pitzer Database. Entries will be ignored - * if any of the species in the entry isn't in the solution. - */ + + // Process a binary salt field, or any of the other XML fields + // that make up the Pitzer Database. Entries will be ignored + // if any of the species in the entry isn't in the solution. if (nodeName == "binarysaltparameters") { readXMLBinarySalt(xmlACChild); } else if (nodeName == "thetaanion") { @@ -1463,13 +1392,10 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) readXMLCroppingCoefficients(acNode); } - /* - * Fill in the vector specifying the electrolyte species - * type - * - * First fill in default values. Everything is either - * a charge species, a nonpolar neutral, or the solvent. - */ + // Fill in the vector specifying the electrolyte species type + // + // First fill in default values. Everything is either a charge species, a + // nonpolar neutral, or the solvent. for (size_t k = 0; k < m_kk; k++) { if (fabs(charge(k)) > 0.0001) { m_electrolyteSpeciesType[k] = cEST_chargedSpecies; @@ -1483,11 +1409,9 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } m_electrolyteSpeciesType[m_indexSolvent] = cEST_solvent; - /* - * First look at the species database. - * -> Look for the subelement "stoichIsMods" - * in each of the species SS databases. - */ + + // First look at the species database. Look for the subelement + // "stoichIsMods" in each of the species SS databases. std::vector xspecies = speciesData(); for (size_t k = 0; k < m_kk; k++) { const XML_Node* spPtr = xspecies[k]; @@ -1499,9 +1423,8 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } } - /* - * Then look at the phase thermo specification - */ + + // Then look at the phase thermo specification if (acNodePtr && acNodePtr->hasChild("electrolyteSpeciesType")) { XML_Node& ESTNode = acNodePtr->child("electrolyteSpeciesType"); map msEST; @@ -1526,9 +1449,9 @@ void HMWSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) setMoleFSolventMin(1.0E-5); MolalityVPSSTP::initThermoXML(phaseNode, id_); - /* - * Lastly calculate the charge balance and then add stuff until the charges compensate - */ + + // Lastly calculate the charge balance and then add stuff until the charges + // compensate vector_fp mf(m_kk, 0.0); getMoleFractions(mf.data()); bool notDone = true; diff --git a/src/thermo/IdealGasPhase.cpp b/src/thermo/IdealGasPhase.cpp index c34f9c2aa..b86939382 100644 --- a/src/thermo/IdealGasPhase.cpp +++ b/src/thermo/IdealGasPhase.cpp @@ -38,10 +38,8 @@ IdealGasPhase::IdealGasPhase(const IdealGasPhase& right) : m_p0(right.m_p0), m_logc0(right.m_logc0) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = right; } @@ -280,14 +278,11 @@ void IdealGasPhase::setToEquilState(const doublereal* mu_RT) { const vector_fp& grt = gibbs_RT_ref(); - /* - * Within the method, we protect against inf results if the - * exponent is too high. - * - * If it is too low, we set - * the partial pressure to zero. This capability is needed - * by the elemental potential method. - */ + // Within the method, we protect against inf results if the exponent is too + // high. + // + // If it is too low, we set the partial pressure to zero. This capability is + // needed by the elemental potential method. doublereal pres = 0.0; for (size_t k = 0; k < m_kk; k++) { double tmp = -grt[k] + mu_RT[k]; diff --git a/src/thermo/IdealMolalSoln.cpp b/src/thermo/IdealMolalSoln.cpp index ade222512..faddfc1fa 100644 --- a/src/thermo/IdealMolalSoln.cpp +++ b/src/thermo/IdealMolalSoln.cpp @@ -4,13 +4,12 @@ * state (see \ref thermoprops * and class \link Cantera::IdealMolalSoln IdealMolalSoln\endlink). * - * Definition file for a derived class of ThermoPhase that handles - * variable pressure standard state methods for calculating - * thermodynamic properties that are further based upon - * activities on the molality scale. The Ideal molal - * solution assumes that all molality-based activity - * coefficients are equal to one. This turns out, actually, to be - * highly nonlinear when the solvent densities get low. + * Definition file for a derived class of ThermoPhase that handles variable + * pressure standard state methods for calculating thermodynamic properties that + * are further based upon activities on the molality scale. The Ideal molal + * solution assumes that all molality-based activity coefficients are equal to + * one. This turns out, actually, to be highly nonlinear when the solvent + * densities get low. */ /* * Copyright (2006) Sandia Corporation. Under the terms of @@ -48,10 +47,8 @@ IdealMolalSoln::IdealMolalSoln() : IdealMolalSoln::IdealMolalSoln(const IdealMolalSoln& b) : MolalityVPSSTP(b) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -169,9 +166,7 @@ doublereal IdealMolalSoln::cv_mole() const throw NotImplementedError("IdealMolalSoln::cv_mole"); } -// // ------- Mechanical Equation of State Properties ------------------------ -// void IdealMolalSoln::setPressure(doublereal p) { @@ -226,9 +221,7 @@ void IdealMolalSoln::setState_TP(doublereal temp, doublereal pres) calcDensity(); } -// // ------- Activities and Activity Concentrations -// void IdealMolalSoln::getActivityConcentrations(doublereal* c) const { @@ -266,10 +259,9 @@ doublereal IdealMolalSoln::standardConcentration(size_t k) const void IdealMolalSoln::getActivities(doublereal* ac) const { _updateStandardStateThermo(); - /* - * Update the molality array, m_molalities() - * This requires an update due to mole fractions - */ + + // Update the molality array, m_molalities(). This requires an update due to + // mole fractions if (IMS_typeCutoff_ == 0) { calcMolalities(); for (size_t k = 0; k < m_kk; k++) { @@ -284,9 +276,8 @@ void IdealMolalSoln::getActivities(doublereal* ac) const } else { s_updateIMS_lnMolalityActCoeff(); - /* - * Now calculate the array of activities. - */ + + // Now calculate the array of activities. for (size_t k = 1; k < m_kk; k++) { ac[k] = m_molalities[k] * exp(IMS_lnActCoeffMolal_[k]); } @@ -317,30 +308,23 @@ void IdealMolalSoln::getMolalityActivityCoefficients(doublereal* acMolality) con } } -// // ------ Partial Molar Properties of the Solution ----------------- -// void IdealMolalSoln::getChemPotentials(doublereal* mu) const { // Assertion is made for speed AssertThrow(m_indexSolvent == 0, "solvent not the first species"); - /* - * First get the standard chemical potentials - * -> this requires updates of standard state as a function - * of T and P - * These are defined at unit molality. - */ + // First get the standard chemical potentials. This requires updates of + // standard state as a function of T and P These are defined at unit + // molality. getStandardChemPotentials(mu); - /* - * Update the molality array, m_molalities() - * This requires an update due to mole fractions - */ + + // Update the molality array, m_molalities(). This requires an update due to + // mole fractions calcMolalities(); - /* - * get the solvent mole fraction - */ + + // get the solvent mole fraction double xmolSolvent = moleFraction(m_indexSolvent); if (IMS_typeCutoff_ == 0 || xmolSolvent > 3.* IMS_X_o_cutoff_/2.0) { @@ -348,18 +332,15 @@ void IdealMolalSoln::getChemPotentials(doublereal* mu) const double xx = std::max(m_molalities[k], SmallNumber); mu[k] += RT() * log(xx); } - /* - * Do the solvent - * -> see my notes - */ + + // Do the solvent + // -> see my notes double xx = std::max(xmolSolvent, SmallNumber); mu[m_indexSolvent] += (RT() * (xmolSolvent - 1.0) / xx); } else { - /* - * Update the activity coefficients - * This also updates the internal molality array. - */ + // Update the activity coefficients. This also updates the internal + // molality array. s_updateIMS_lnMolalityActCoeff(); for (size_t k = 1; k < m_kk; k++) { @@ -394,15 +375,12 @@ void IdealMolalSoln::getPartialMolarEntropies(doublereal* sbar) const double xmolSolvent = moleFraction(m_indexSolvent); sbar[m_indexSolvent] -= (GasConstant * (xmolSolvent - 1.0) / xmolSolvent); } else { - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + // Update the activity coefficients, This also update the internally + // stored molalities. s_updateIMS_lnMolalityActCoeff(); - /* - * First we will add in the obvious dependence on the T - * term out front of the log activity term - */ + + // First we will add in the obvious dependence on the T term out front + // of the log activity term doublereal mm; for (size_t k = 0; k < m_kk; k++) { if (k != m_indexSolvent) { @@ -423,19 +401,15 @@ void IdealMolalSoln::getPartialMolarVolumes(doublereal* vbar) const void IdealMolalSoln::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional Gibbs standard state of the - * species at the T and P of the solution. - */ + // Get the nondimensional Gibbs standard state of the species at the T and P + // of the solution. getCp_R(cpbar); for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } } -/* - * -------------- Utilities ------------------------------- - */ +// -------------- Utilities ------------------------------- void IdealMolalSoln::initThermo() { @@ -445,17 +419,13 @@ void IdealMolalSoln::initThermo() void IdealMolalSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) { - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("IdealMolalSoln::initThermoXML", "no thermo XML node"); } - /* - * Initialize the whole thermo object, using a virtual function. - */ + // Initialize the whole thermo object, using a virtual function. initThermo(); if (id_.size() > 0 && phaseNode.id() != id_) { @@ -463,18 +433,14 @@ void IdealMolalSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) "phasenode and Id are incompatible"); } - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("IdealMolalSoln::initThermo", "no thermo XML node"); } XML_Node& thermoNode = phaseNode.child("thermo"); - /* - * Possible change the form of the standard concentrations - */ + // Possible change the form of the standard concentrations if (thermoNode.hasChild("standardConc")) { XML_Node& scNode = thermoNode.child("standardConc"); m_formGC = 2; @@ -493,10 +459,8 @@ void IdealMolalSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Get the Name of the Solvent: - * solventName - */ + // Get the Name of the Solvent: + // solventName std::string solventName = ""; if (thermoNode.hasChild("solvent")) { std::vector nameSolventa; @@ -551,9 +515,7 @@ void IdealMolalSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Reconcile the solvent name and index. - */ + // Reconcile the solvent name and index. for (size_t k = 0; k < m_kk; k++) { if (solventName == speciesName(k)) { m_indexSolvent = k; @@ -572,9 +534,7 @@ void IdealMolalSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) " should be first species"); } - /* - * Now go get the molar volumes - */ + // Now go get the molar volumes XML_Node& speciesList = phaseNode.child("speciesArray"); XML_Node* speciesDB = get_XML_NameID("speciesData", speciesList["datasrc"], @@ -594,26 +554,20 @@ void IdealMolalSoln::initThermoXML(XML_Node& phaseNode, const std::string& id_) MolalityVPSSTP::initThermoXML(phaseNode, id_); setMoleFSolventMin(1.0E-5); - /* - * Set the state - */ + + // Set the state if (phaseNode.hasChild("state")) { XML_Node& stateNode = phaseNode.child("state"); setStateFromXML(stateNode); } } -/* - * ------------ Private and Restricted Functions ------------------ - */ +// ------------ Private and Restricted Functions ------------------ void IdealMolalSoln::s_updateIMS_lnMolalityActCoeff() const { - /* - * Calculate the molalities. Currently, the molalities - * may not be current with respect to the contents of the - * State objects' data. - */ + // Calculate the molalities. Currently, the molalities may not be current + // with respect to the contents of the State objects' data. calcMolalities(); double xmolSolvent = moleFraction(m_indexSolvent); @@ -640,9 +594,7 @@ void IdealMolalSoln::s_updateIMS_lnMolalityActCoeff() const IMS_lnActCoeffMolal_[m_indexSolvent] = log(IMS_gamma_o_min_); return; } else { - /* - * If we are in the middle region, calculate the connecting polynomials - */ + // If we are in the middle region, calculate the connecting polynomials double xminus = xmolSolvent - IMS_X_o_cutoff_/2.0; double xminus2 = xminus * xminus; double xminus3 = xminus2 * xminus; @@ -715,10 +667,6 @@ void IdealMolalSoln::s_updateIMS_lnMolalityActCoeff() const void IdealMolalSoln::initLengths() { - /* - * Obtain the limits of the temperature from the species - * thermo handler's limits. - */ m_pp.resize(m_kk); m_speciesMolarVolume.resize(m_kk); m_tmpV.resize(m_kk); diff --git a/src/thermo/IdealSolidSolnPhase.cpp b/src/thermo/IdealSolidSolnPhase.cpp index 10471ca74..983716845 100644 --- a/src/thermo/IdealSolidSolnPhase.cpp +++ b/src/thermo/IdealSolidSolnPhase.cpp @@ -108,9 +108,7 @@ int IdealSolidSolnPhase::eosType() const return res; } -/******************************************************************** - * Molar Thermodynamic Properties of the Solution - ********************************************************************/ +// Molar Thermodynamic Properties of the Solution doublereal IdealSolidSolnPhase::enthalpy_mole() const { @@ -133,33 +131,25 @@ doublereal IdealSolidSolnPhase::cp_mole() const return GasConstant * mean_X(cp_R_ref()); } -/******************************************************************** - * Mechanical Equation of State - ********************************************************************/ +// Mechanical Equation of State void IdealSolidSolnPhase::calcDensity() { - /* - * Calculate the molarVolume of the solution (m**3 kmol-1) - */ + // Calculate the molarVolume of the solution (m**3 kmol-1) const doublereal* const dtmp = moleFractdivMMW(); double invDens = dot(m_speciesMolarVolume.begin(), m_speciesMolarVolume.end(), dtmp); - /* - * Set the density in the parent State object directly, - * by calling the Phase::setDensity() function. - */ + + // Set the density in the parent State object directly, by calling the + // Phase::setDensity() function. Phase::setDensity(1.0/invDens); } void IdealSolidSolnPhase::setDensity(const doublereal rho) { - /* - * Unless the input density is exactly equal to the density - * calculated and stored in the State object, we throw an - * exception. This is because the density is NOT an - * independent variable. - */ + // Unless the input density is exactly equal to the density calculated and + // stored in the State object, we throw an exception. This is because the + // density is NOT an independent variable. if (rho != density()) { throw CanteraError("IdealSolidSolnPhase::setDensity", "Density is not an independent variable"); @@ -208,9 +198,7 @@ void IdealSolidSolnPhase::setConcentrations(const doublereal* const c) calcDensity(); } -/******************************************************************** - * Chemical Potentials and Activities - ********************************************************************/ +// Chemical Potentials and Activities void IdealSolidSolnPhase::getActivityConcentrations(doublereal* c) const { @@ -311,9 +299,7 @@ void IdealSolidSolnPhase::getChemPotentials_RT(doublereal* mu) const } } -/******************************************************************** - * Partial Molar Properties - ********************************************************************/ +// Partial Molar Properties void IdealSolidSolnPhase::getPartialMolarEnthalpies(doublereal* hbar) const { @@ -343,9 +329,7 @@ void IdealSolidSolnPhase::getPartialMolarVolumes(doublereal* vbar) const getStandardVolumes(vbar); } -/***************************************************************** - * Properties of the Standard State of the Species in the Solution - *****************************************************************/ +// Properties of the Standard State of the Species in the Solution void IdealSolidSolnPhase::getPureGibbs(doublereal* gpure) const { @@ -400,9 +384,7 @@ void IdealSolidSolnPhase::getStandardVolumes(doublereal* vol) const copy(m_speciesMolarVolume.begin(), m_speciesMolarVolume.end(), vol); } -/********************************************************************* - * Thermodynamic Values for the Species Reference States - *********************************************************************/ +// Thermodynamic Values for the Species Reference States void IdealSolidSolnPhase::getEnthalpy_RT_ref(doublereal* hrt) const { @@ -466,9 +448,7 @@ const vector_fp& IdealSolidSolnPhase::entropy_R_ref() const return m_s0_R; } -/********************************************************************* - * Utility Functions - *********************************************************************/ +// Utility Functions void IdealSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string& id_) { @@ -477,10 +457,8 @@ void IdealSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string& "phasenode and Id are incompatible"); } - /* - * Check on the thermo field. Must have: - * - */ + // Check on the thermo field. Must have: + // if (phaseNode.hasChild("thermo")) { XML_Node& thNode = phaseNode.child("thermo"); string mString = thNode.attrib("model"); @@ -493,13 +471,11 @@ void IdealSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string& "Unspecified thermo model"); } - /* - * Form of the standard concentrations. Must have one of: - * - * - * - * - */ + // Form of the standard concentrations. Must have one of: + // + // + // + // if (phaseNode.hasChild("standardConc")) { XML_Node& scNode = phaseNode.child("standardConc"); string formStringa = scNode.attrib("model"); @@ -519,14 +495,11 @@ void IdealSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string& "Unspecified standardConc model"); } - /* - * Initialize all of the lengths now that we know how many species - * there are in the phase. - */ + // Initialize all of the lengths now that we know how many species + // there are in the phase. initLengths(); - /* - * Now go get the molar volumes - */ + + // Now go get the molar volumes XML_Node& speciesList = phaseNode.child("speciesArray"); XML_Node* speciesDB = get_XML_NameID("speciesData", speciesList["datasrc"], &phaseNode.root()); @@ -537,21 +510,15 @@ void IdealSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string& m_speciesMolarVolume[k] = getFloat(*ss, "molarVolume", "toSI"); } - /* - * Call the base initThermo, which handles setting the initial - * state. - */ + // Call the base initThermo, which handles setting the initial state. ThermoPhase::initThermoXML(phaseNode, id_); } void IdealSolidSolnPhase::initLengths() { - /* - * Obtain the reference pressure by calling the ThermoPhase - * function refPressure, which in turn calls the - * species thermo reference pressure function of the - * same name. - */ + // Obtain the reference pressure by calling the ThermoPhase function + // refPressure, which in turn calls the species thermo reference pressure + // function of the same name. m_Pref = refPressure(); m_h0_RT.resize(m_kk); @@ -568,8 +535,7 @@ void IdealSolidSolnPhase::setToEquilState(const doublereal* lambda_RT) { const vector_fp& grt = gibbs_RT_ref(); - // set the pressure and composition to be consistent with - // the temperature, + // set the pressure and composition to be consistent with the temperature doublereal pres = 0.0; for (size_t k = 0; k < m_kk; k++) { m_pp[k] = -grt[k]; @@ -596,9 +562,8 @@ void IdealSolidSolnPhase::_updateThermo() const { doublereal tnow = temperature(); if (m_tlast != tnow) { - /* - * Update the thermodynamic functions of the reference state. - */ + + // Update the thermodynamic functions of the reference state. m_spthermo->update(tnow, m_cp0_R.data(), m_h0_RT.data(), m_s0_R.data()); m_tlast = tnow; doublereal rrt = 1.0 / (GasConstant * tnow); diff --git a/src/thermo/IdealSolnGasVPSS.cpp b/src/thermo/IdealSolnGasVPSS.cpp index 1b27b12bc..c20df136e 100644 --- a/src/thermo/IdealSolnGasVPSS.cpp +++ b/src/thermo/IdealSolnGasVPSS.cpp @@ -55,14 +55,11 @@ IdealSolnGasVPSS::IdealSolnGasVPSS(const IdealSolnGasVPSS& b) : IdealSolnGasVPSS& IdealSolnGasVPSS::operator=(const IdealSolnGasVPSS& b) { if (&b != this) { - /* - * Mostly, this is a passthrough to the underlying - * assignment operator for the ThermoPhae parent object. - */ + // Mostly, this is a passthrough to the underlying assignment operator + // for the ThermoPhae parent object. VPStandardStateTP::operator=(b); - /* - * However, we have to handle data that we own. - */ + + // However, we have to handle data that we own. m_idealGas = b.m_idealGas; m_formGC = b.m_formGC; } @@ -82,9 +79,7 @@ int IdealSolnGasVPSS::eosType() const return cIdealSolnGasVPSS_iscv; } -/* - * ------------Molar Thermodynamic Properties ------------------------- - */ +// ------------Molar Thermodynamic Properties ------------------------- doublereal IdealSolnGasVPSS::enthalpy_mole() const { @@ -118,9 +113,7 @@ void IdealSolnGasVPSS::setPressure(doublereal p) void IdealSolnGasVPSS::calcDensity() { - /* - * Calculate the molarVolume of the solution (m**3 kmol-1) - */ + // Calculate the molarVolume of the solution (m**3 kmol-1) if (m_idealGas) { double dens = (m_Pcurrent * meanMolecularWeight() /(GasConstant * temperature())); @@ -129,10 +122,8 @@ void IdealSolnGasVPSS::calcDensity() const doublereal* const dtmp = moleFractdivMMW(); const vector_fp& vss = m_VPSS_ptr->getStandardVolumes(); double dens = 1.0 / dot(vss.begin(), vss.end(), dtmp); - /* - * Set the density in the parent State object directly, - * by calling the Phase::setDensity() function. - */ + + // Set the density in the parent State object directly Phase::setDensity(dens); } } @@ -200,9 +191,7 @@ void IdealSolnGasVPSS::getActivityCoefficients(doublereal* ac) const } } -/* - * ---- Partial Molar Properties of the Solution ----------------- - */ +// ---- Partial Molar Properties of the Solution ----------------- void IdealSolnGasVPSS::getChemPotentials_RT(doublereal* muRT) const { @@ -265,14 +254,11 @@ void IdealSolnGasVPSS::setToEquilState(const doublereal* mu_RT) updateStandardStateThermo(); const vector_fp& grt = m_VPSS_ptr->Gibbs_RT_ref(); - /* - * Within the method, we protect against inf results if the - * exponent is too high. - * - * If it is too low, we set - * the partial pressure to zero. This capability is needed - * by the elemental potential method. - */ + // Within the method, we protect against inf results if the exponent is too + // high. + // + // If it is too low, we set the partial pressure to zero. This capability is + // needed by the elemental potential method. doublereal pres = 0.0; double m_p0 = m_VPSS_ptr->refPressure(); for (size_t k = 0; k < m_kk; k++) { @@ -314,13 +300,11 @@ void IdealSolnGasVPSS::initThermoXML(XML_Node& phaseNode, const std::string& id_ } } - /* - * Form of the standard concentrations. Must have one of: - * - * - * - * - */ + // Form of the standard concentrations. Must have one of: + // + // + // + // if (phaseNode.hasChild("standardConc")) { if (m_idealGas) { throw CanteraError("IdealSolnGasVPSS::initThermoXML", diff --git a/src/thermo/IonsFromNeutralVPSSTP.cpp b/src/thermo/IonsFromNeutralVPSSTP.cpp index b52512825..fee430caf 100644 --- a/src/thermo/IonsFromNeutralVPSSTP.cpp +++ b/src/thermo/IonsFromNeutralVPSSTP.cpp @@ -5,11 +5,10 @@ * (see \ref thermoprops * and class \link Cantera::IonsFromNeutralVPSSTP IonsFromNeutralVPSSTP\endlink). * - * Header file for a derived class of ThermoPhase that handles - * variable pressure standard state methods for calculating - * thermodynamic properties that are further based upon expressions - * for the excess Gibbs free energy expressed as a function of - * the mole fractions. + * Header file for a derived class of ThermoPhase that handles variable pressure + * standard state methods for calculating thermodynamic properties that are + * further based upon expressions for the excess Gibbs free energy expressed as + * a function of the mole fractions. */ /* * Copyright (2009) Sandia Corporation. Under the terms of @@ -89,13 +88,11 @@ IonsFromNeutralVPSSTP::operator=(const IonsFromNeutralVPSSTP& b) return *this; } - /* - * If we own the underlying neutral molecule phase, then we do a deep - * copy. If not, we do a shallow copy. We get a valid pointer for - * neutralMoleculePhase_ first, because we need it to assign the pointers - * within the PDSS_IonsFromNeutral object. which is done in the - * GibbsExcessVPSSTP::operator=(b) step. - */ + // If we own the underlying neutral molecule phase, then we do a deep copy. + // If not, we do a shallow copy. We get a valid pointer for + // neutralMoleculePhase_ first, because we need it to assign the pointers + // within the PDSS_IonsFromNeutral object. which is done in the + // GibbsExcessVPSSTP::operator=(b) step. if (IOwnNThermoPhase_) { if (b.neutralMoleculePhase_) { delete neutralMoleculePhase_; @@ -160,10 +157,9 @@ void IonsFromNeutralVPSSTP::constructPhaseFile(std::string inputFile, std::strin throw CanteraError("MargulesVPSSTP:constructPhaseFile","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + + // The phase object automatically constructs an XML object. + // Use this object to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id_); @@ -183,27 +179,21 @@ void IonsFromNeutralVPSSTP::constructPhaseXML(XML_Node& phaseNode, std::string i "phasenode and Id are incompatible"); } - /* - * Find the thermo XML node - */ + // Find the thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("IonsFromNeutralVPSSTP::constructPhaseXML", "no thermo XML node"); } XML_Node& thermoNode = phaseNode.child("thermo"); - /* - * Make sure that the thermo model is IonsFromNeutralMolecule - */ + // Make sure that the thermo model is IonsFromNeutralMolecule string formString = lowercase(thermoNode.attrib("model")); if (formString != "ionsfromneutralmolecule") { throw CanteraError("IonsFromNeutralVPSSTP::constructPhaseXML", "model name isn't IonsFromNeutralMolecule: " + formString); } - /* - * Find the Neutral Molecule Phase - */ + // Find the Neutral Molecule Phase if (!thermoNode.hasChild("neutralMoleculePhase")) { throw CanteraError("IonsFromNeutralVPSSTP::constructPhaseXML", "no neutralMoleculePhase XML node"); @@ -216,33 +206,25 @@ void IonsFromNeutralVPSSTP::constructPhaseXML(XML_Node& phaseNode, std::string i "neut_ptr = 0"); } - /* - * Create the neutralMolecule ThermoPhase if we haven't already - */ + // Create the neutralMolecule ThermoPhase if we haven't already if (!neutralMoleculePhase_) { neutralMoleculePhase_ = newPhase(*neut_ptr); } - /* - * Call the Cantera importPhase() function. This will import - * all of the species into the phase. This will also handle - * all of the solvent and solute standard states - */ + // Call the Cantera importPhase() function. This will import all of the + // species into the phase. This will also handle all of the solvent and + // solute standard states importPhase(phaseNode, this); } -/* - * -------------- Utilities ------------------------------- - */ +// -------------- Utilities ------------------------------- int IonsFromNeutralVPSSTP::eosType() const { return cIonsFromNeutral; } -/* - * ------------ Molar Thermodynamic Properties ---------------------- - */ +// ------------ Molar Thermodynamic Properties ---------------------- doublereal IonsFromNeutralVPSSTP::enthalpy_mole() const { @@ -275,9 +257,7 @@ doublereal IonsFromNeutralVPSSTP::cv_mole() const return mean_X(m_pp); } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// -- Activities, Standard States, Activity Concentrations ----------- void IonsFromNeutralVPSSTP::getDissociationCoeffs(vector_fp& coeffs, vector_fp& charges, std::vector& neutMolIndex) const @@ -289,31 +269,23 @@ void IonsFromNeutralVPSSTP::getDissociationCoeffs(vector_fp& coeffs, void IonsFromNeutralVPSSTP::getActivityCoefficients(doublereal* ac) const { - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); - /* - * take the exp of the internally stored coefficients. - */ + // take the exp of the internally stored coefficients. for (size_t k = 0; k < m_kk; k++) { ac[k] = exp(lnActCoeff_Scaled_[k]); } } -/* - * --------- Partial Molar Properties of the Solution ------------- - */ +// --------- Partial Molar Properties of the Solution ------------- void IonsFromNeutralVPSSTP::getChemPotentials(doublereal* mu) const { size_t icat, jNeut; doublereal xx, fact2; - /* - * Get the standard chemical potentials of netural molecules - */ + // Get the standard chemical potentials of netural molecules neutralMoleculePhase_->getStandardChemPotentials(muNeutralMolecule_.data()); doublereal RT_ = GasConstant * temperature(); @@ -328,7 +300,7 @@ void IonsFromNeutralVPSSTP::getChemPotentials(doublereal* mu) const // Do the cation list for (size_t k = 0; k < cationList_.size(); k++) { - //! Get the id for the next cation + // Get the id for the next cation icat = cationList_[k]; jNeut = fm_invert_ionForNeutral[icat]; xx = std::max(SmallNumber, moleFractions_[icat]); @@ -364,20 +336,16 @@ void IonsFromNeutralVPSSTP::getChemPotentials(doublereal* mu) const void IonsFromNeutralVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { hbar[k] *= RT(); } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeffdT(); for (size_t k = 0; k < m_kk; k++) { @@ -387,14 +355,11 @@ void IonsFromNeutralVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const void IonsFromNeutralVPSSTP::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getEntropy_R(sbar); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeffdT(); @@ -402,9 +367,8 @@ void IonsFromNeutralVPSSTP::getPartialMolarEntropies(doublereal* sbar) const double xx = std::max(moleFractions_[k], SmallNumber); sbar[k] += - lnActCoeff_Scaled_[k] -log(xx) - temperature() * dlnActCoeffdT_Scaled_[k]; } - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } @@ -454,25 +418,19 @@ void IonsFromNeutralVPSSTP::setPressure(doublereal p) void IonsFromNeutralVPSSTP::setState_TP(doublereal t, doublereal p) { - /* - * This is a two phase process. First, we calculate the standard states - * within the neutral molecule phase. - */ + // This is a two phase process. First, we calculate the standard states + // within the neutral molecule phase. neutralMoleculePhase_->setState_TP(t, p); VPStandardStateTP::setState_TP(t,p); - /* - * Calculate the partial molar volumes, and then the density of the fluid - */ + // Calculate the partial molar volumes, and then the density of the fluid Phase::setDensity(neutralMoleculePhase_->density()); } void IonsFromNeutralVPSSTP::calcIonMoleFractions(doublereal* const mf) const { - /* - * Download the neutral mole fraction vector into the - * vector, NeutralMolecMoleFractions_[] - */ + // Download the neutral mole fraction vector into the vector, + // NeutralMolecMoleFractions_[] neutralMoleculePhase_->getMoleFractions(NeutralMolecMoleFractions_.data()); // Zero the mole fractions @@ -480,9 +438,7 @@ void IonsFromNeutralVPSSTP::calcIonMoleFractions(doublereal* const mf) const mf[k] = 0.0; } - /* - * Use the formula matrix to calculate the relative mole numbers. - */ + // Use the formula matrix to calculate the relative mole numbers. for (size_t jNeut = 0; jNeut < numNeutralMoleculeSpecies_; jNeut++) { for (size_t k = 0; k < m_kk; k++) { double fmij = fm_neutralMolec_ions_[k + jNeut * m_kk]; @@ -490,9 +446,7 @@ void IonsFromNeutralVPSSTP::calcIonMoleFractions(doublereal* const mf) const } } - /* - * Normalize the new mole fractions - */ + // Normalize the new mole fractions doublereal sum = 0.0; for (size_t k = 0; k < m_kk; k++) { sum += mf[k]; @@ -508,7 +462,7 @@ void IonsFromNeutralVPSSTP::calcNeutralMoleculeMoleFractions() const doublereal fmij; doublereal sum = 0.0; - //! Zero the vector we are trying to find. + // Zero the vector we are trying to find. for (size_t k = 0; k < numNeutralMoleculeSpecies_; k++) { NeutralMolecMoleFractions_[k] = 0.0; } @@ -536,7 +490,7 @@ void IonsFromNeutralVPSSTP::calcNeutralMoleculeMoleFractions() const } for (size_t k = 0; k < cationList_.size(); k++) { - //! Get the id for the next cation + // Get the id for the next cation icat = cationList_[k]; jNeut = fm_invert_ionForNeutral[icat]; if (jNeut != npos) { @@ -565,12 +519,12 @@ void IonsFromNeutralVPSSTP::calcNeutralMoleculeMoleFractions() const } for (size_t k = 0; k < m_kk; k++) { if (fabs(moleFractionsTmp_[k]) > 1.0E-13) { - //! Check to see if we have in fact found the inverse. + // Check to see if we have in fact found the inverse. if (anionList_[0] != k) { throw CanteraError("IonsFromNeutralVPSSTP::calcNeutralMoleculeMoleFractions", "neutral molecule calc error"); } else { - //! For the single anion case, we will allow some slippage + // For the single anion case, we will allow some slippage if (fabs(moleFractionsTmp_[k]) > 1.0E-5) { throw CanteraError("IonsFromNeutralVPSSTP::calcNeutralMoleculeMoleFractions", "neutral molecule calc error - anion"); @@ -606,8 +560,8 @@ void IonsFromNeutralVPSSTP::getNeutralMoleculeMoleGrads(const doublereal* const { doublereal sumy, sumdy; - //check sum dx = 0 - //! Zero the vector we are trying to find. + // check sum dx = 0 + // Zero the vector we are trying to find. for (size_t k = 0; k < numNeutralMoleculeSpecies_; k++) { y_[k] = 0.0; dy[k] = 0.0; @@ -623,7 +577,7 @@ void IonsFromNeutralVPSSTP::getNeutralMoleculeMoleGrads(const doublereal* const case cIonSolnType_SINGLEANION: for (size_t k = 0; k < cationList_.size(); k++) { - //! Get the id for the next cation + // Get the id for the next cation size_t icat = cationList_[k]; size_t jNeut = fm_invert_ionForNeutral[icat]; if (jNeut != npos) { @@ -707,9 +661,7 @@ void IonsFromNeutralVPSSTP::setConcentrations(const doublereal* const c) neutralMoleculePhase_->setMoleFractions(NeutralMolecMoleFractions_.data()); } -/* - * ------------ Partial Molar Properties of the Solution ------------ - */ +// ------------ Partial Molar Properties of the Solution ------------ void IonsFromNeutralVPSSTP::initThermo() { @@ -779,27 +731,21 @@ void IonsFromNeutralVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string "phasenode and Id are incompatible"); } - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("IonsFromNeutralVPSSTP::initThermoXML", "no thermo XML node"); } XML_Node& thermoNode = phaseNode.child("thermo"); - /* - * Make sure that the thermo model is IonsFromNeutralMolecule - */ + // Make sure that the thermo model is IonsFromNeutralMolecule string formString = lowercase(thermoNode.attrib("model")); if (formString != "ionsfromneutralmolecule") { throw CanteraError("IonsFromNeutralVPSSTP::initThermoXML", "model name isn't IonsFromNeutralMolecule: " + formString); } - /* - * Find the Neutral Molecule Phase - */ + // Find the Neutral Molecule Phase if (!thermoNode.hasChild("neutralMoleculePhase")) { throw CanteraError("IonsFromNeutralVPSSTP::initThermoXML", "no neutralMoleculePhase XML node"); @@ -812,9 +758,7 @@ void IonsFromNeutralVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string "neut_ptr = 0"); } - /* - * Create the neutralMolecule ThermoPhase if we haven't already - */ + // Create the neutralMolecule ThermoPhase if we haven't already if (!neutralMoleculePhase_) { neutralMoleculePhase_ = newPhase(*neut_ptr); } @@ -934,23 +878,14 @@ void IonsFromNeutralVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string } } } - /* - * This includes the setStateFromXML calls - */ + // This includes the setStateFromXML calls GibbsExcessVPSSTP::initThermoXML(phaseNode, id_); - - /* - * There is one extra step here. We assure ourselves that we - * have charge conservation. - */ } void IonsFromNeutralVPSSTP::s_update_lnActCoeff() const { size_t icat, jNeut; - /* - * Get the activity coefficiens of the neutral molecules - */ + // Get the activity coefficiens of the neutral molecules neutralMoleculePhase_->getLnActivityCoefficients(lnActCoeff_NeutralMolecule_.data()); switch (ionSolnType_) { @@ -959,7 +894,7 @@ void IonsFromNeutralVPSSTP::s_update_lnActCoeff() const case cIonSolnType_SINGLEANION: // Do the cation list for (size_t k = 0; k < cationList_.size(); k++) { - //! Get the id for the next cation + // Get the id for the next cation icat = cationList_[k]; jNeut = fm_invert_ionForNeutral[icat]; double fmij = fm_neutralMolec_ions_[icat + jNeut * m_kk]; @@ -995,9 +930,7 @@ void IonsFromNeutralVPSSTP::getdlnActCoeffds(const doublereal dTds, const double doublereal* dlnActCoeffds) const { size_t icat, jNeut; - /* - * Get the activity coefficients of the neutral molecules - */ + // Get the activity coefficients of the neutral molecules if (!geThermo) { for (size_t k = 0; k < m_kk; k++) { dlnActCoeffds[k] = dXds[k] / moleFractions_[k]; @@ -1016,7 +949,7 @@ void IonsFromNeutralVPSSTP::getdlnActCoeffds(const doublereal dTds, const double case cIonSolnType_SINGLEANION: // Do the cation list for (size_t k = 0; k < cationList_.size(); k++) { - //! Get the id for the next cation + // Get the id for the next cation icat = cationList_[k]; jNeut = fm_invert_ionForNeutral[icat]; double fmij = fm_neutralMolec_ions_[icat + jNeut * m_kk]; @@ -1051,9 +984,8 @@ void IonsFromNeutralVPSSTP::getdlnActCoeffds(const doublereal dTds, const double void IonsFromNeutralVPSSTP::s_update_dlnActCoeffdT() const { size_t icat, jNeut; - /* - * Get the activity coefficients of the neutral molecules - */ + + // Get the activity coefficients of the neutral molecules if (!geThermo) { dlnActCoeffdT_Scaled_.assign(m_kk, 0.0); return; @@ -1102,9 +1034,8 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeffdT() const void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnX_diag() const { size_t icat, jNeut; - /* - * Get the activity coefficients of the neutral molecules - */ + + // Get the activity coefficients of the neutral molecules if (!geThermo) { dlnActCoeffdlnX_diag_.assign(m_kk, 0.0); return; @@ -1118,7 +1049,7 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnX_diag() const case cIonSolnType_SINGLEANION: // Do the cation list for (size_t k = 0; k < cationList_.size(); k++) { - //! Get the id for the next cation + // Get the id for the next cation icat = cationList_[k]; jNeut = fm_invert_ionForNeutral[icat]; double fmij = fm_neutralMolec_ions_[icat + jNeut * m_kk]; @@ -1153,9 +1084,8 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnX_diag() const void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnN_diag() const { size_t icat, jNeut; - /* - * Get the activity coefficients of the neutral molecules - */ + + // Get the activity coefficients of the neutral molecules if (!geThermo) { dlnActCoeffdlnN_diag_.assign(m_kk, 0.0); return; @@ -1169,7 +1099,7 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnN_diag() const case cIonSolnType_SINGLEANION: // Do the cation list for (size_t k = 0; k < cationList_.size(); k++) { - //! Get the id for the next cation + // Get the id for the next cation icat = cationList_[k]; jNeut = fm_invert_ionForNeutral[icat]; double fmij = fm_neutralMolec_ions_[icat + jNeut * m_kk]; @@ -1206,9 +1136,7 @@ void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnN() const size_t kcat = 0, kNeut = 0, mcat = 0, mNeut = 0; doublereal fmij = 0.0; dlnActCoeffdlnN_.zero(); - /* - * Get the activity coefficients of the neutral molecules - */ + // Get the activity coefficients of the neutral molecules if (!geThermo) { throw CanteraError("IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnN()", "dynamic cast failed"); } diff --git a/src/thermo/LatticePhase.cpp b/src/thermo/LatticePhase.cpp index 9de3c430f..f70e0b57c 100644 --- a/src/thermo/LatticePhase.cpp +++ b/src/thermo/LatticePhase.cpp @@ -296,10 +296,8 @@ void LatticePhase::initThermoXML(XML_Node& phaseNode, const std::string& id_) "ids don't match"); } - /* - * Check on the thermo field. Must have: - * - */ + // Check on the thermo field. Must have: + // if (phaseNode.hasChild("thermo")) { XML_Node& thNode = phaseNode.child("thermo"); std::string mString = thNode.attrib("model"); @@ -311,9 +309,8 @@ void LatticePhase::initThermoXML(XML_Node& phaseNode, const std::string& id_) throw CanteraError("LatticePhase::initThermoXML", "Unspecified thermo model"); } - /* - * Now go get the molar volumes. use the default if not found - */ + + // Now go get the molar volumes. use the default if not found XML_Node& speciesList = phaseNode.child("speciesArray"); XML_Node* speciesDB = get_XML_NameID("speciesData", speciesList["datasrc"], &phaseNode.root()); @@ -329,10 +326,7 @@ void LatticePhase::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Call the base initThermo, which handles setting the initial - * state. - */ + // Call the base initThermo, which handles setting the initial state. ThermoPhase::initThermoXML(phaseNode, id_); } diff --git a/src/thermo/LatticeSolidPhase.cpp b/src/thermo/LatticeSolidPhase.cpp index 173d9bcf5..c08acee99 100644 --- a/src/thermo/LatticeSolidPhase.cpp +++ b/src/thermo/LatticeSolidPhase.cpp @@ -227,10 +227,9 @@ void LatticeSolidPhase::getMoleFractions(doublereal* const x) const for (size_t k = 0; k < nsp; k++) { (x + strt)[k] /= sum; } - /* - * At this point we can check against the mole fraction vector of the underlying LatticePhase objects and - * get the same answer. - */ + + // At this point we can check against the mole fraction vector of the + // underlying LatticePhase objects and get the same answer. if (DEBUG_MODE_ENABLED) { m_lattice[n]->getMoleFractions(&m_x[strt]); for (size_t k = 0; k < nsp; k++) { @@ -347,9 +346,7 @@ void LatticeSolidPhase::installSlavePhases(XML_Node* phaseNode) addSpecies(lp->species(k)); kk++; } - /* - * Add in the lattice stoichiometry constraint - */ + // Add in the lattice stoichiometry constraint if (n > 0) { string econ = "LC_" + int2str(n) + "_" + id(); size_t m = addElement(econ, 0.0, 0, 0.0, CT_ELEM_TYPE_LATTICERATIO); diff --git a/src/thermo/MargulesVPSSTP.cpp b/src/thermo/MargulesVPSSTP.cpp index 95f6d3ab1..b26011fbf 100644 --- a/src/thermo/MargulesVPSSTP.cpp +++ b/src/thermo/MargulesVPSSTP.cpp @@ -81,28 +81,20 @@ ThermoPhase* MargulesVPSSTP::duplMyselfAsThermoPhase() const return new MargulesVPSSTP(*this); } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// -- Activities, Standard States, Activity Concentrations ----------- void MargulesVPSSTP::getLnActivityCoefficients(doublereal* lnac) const { - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); - /* - * take the exp of the internally stored coefficients. - */ + // take the exp of the internally stored coefficients. for (size_t k = 0; k < m_kk; k++) { lnac[k] = lnActCoeff_Scaled_[k]; } } -/* - * ------------ Partial Molar Properties of the Solution ------------ - */ +// ------------ Partial Molar Properties of the Solution ------------ void MargulesVPSSTP::getElectrochemPotentials(doublereal* mu) const { @@ -115,16 +107,11 @@ void MargulesVPSSTP::getElectrochemPotentials(doublereal* mu) const void MargulesVPSSTP::getChemPotentials(doublereal* mu) const { - /* - * First get the standard chemical potentials in - * molar form. - * -> this requires updates of standard state as a function - * of T and P - */ + // First get the standard chemical potentials in molar form. This requires + // updates of standard state as a function of T and P getStandardChemPotentials(mu); - /* - * Update the activity coefficients - */ + + // Update the activity coefficients s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { double xx = std::max(moleFractions_[k], SmallNumber); @@ -175,20 +162,16 @@ doublereal MargulesVPSSTP::cv_mole() const void MargulesVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { hbar[k] *= RT(); } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { @@ -198,24 +181,19 @@ void MargulesVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const void MargulesVPSSTP::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getCp_R(cpbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { cpbar[k] -= 2 * T * dlnActCoeffdT_Scaled_[k] + T * T * d2lnActCoeffdT2_Scaled_[k]; } - /* - * dimensionalize it. - */ + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } @@ -223,15 +201,12 @@ void MargulesVPSSTP::getPartialMolarCp(doublereal* cpbar) const void MargulesVPSSTP::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getEntropy_R(sbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); @@ -239,9 +214,8 @@ void MargulesVPSSTP::getPartialMolarEntropies(doublereal* sbar) const double xx = std::max(moleFractions_[k], SmallNumber); sbar[k] += - lnActCoeff_Scaled_[k] -log(xx) - T * dlnActCoeffdT_Scaled_[k]; } - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } @@ -251,9 +225,7 @@ void MargulesVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { double T = temperature(); - /* - * Get the standard state values in m^3 kmol-1 - */ + // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); for (size_t i = 0; i < numBinaryInteractions_; i++) { @@ -294,28 +266,22 @@ void MargulesVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& id_) } } - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("MargulesVPSSTP::initThermoXML", "no thermo XML node"); } XML_Node& thermoNode = phaseNode.child("thermo"); - /* - * Make sure that the thermo model is Margules - */ + // Make sure that the thermo model is Margules string formString = lowercase(thermoNode.attrib("model")); if (formString != "margules") { throw CanteraError("MargulesVPSSTP::initThermoXML", "model name isn't Margules: " + formString); } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the activityCoefficients + // XML block if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); string mStringa = acNode.attrib("model"); @@ -325,20 +291,17 @@ void MargulesVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& id_) } for (size_t i = 0; i < acNode.nChildren(); i++) { XML_Node& xmlACChild = acNode.child(i); - /* - * Process a binary salt field, or any of the other XML fields - * that make up the Pitzer Database. Entries will be ignored - * if any of the species in the entry isn't in the solution. - */ + + // Process a binary salt field, or any of the other XML fields that + // make up the Pitzer Database. Entries will be ignored if any of + // the species in the entry isn't in the solution. if (lowercase(xmlACChild.name()) == "binaryneutralspeciesparameters") { readXMLBinarySpecies(xmlACChild); } } } - /* - * Go down the chain - */ + // Go down the chain GibbsExcessVPSSTP::initThermoXML(phaseNode, id_); } @@ -475,9 +438,7 @@ void MargulesVPSSTP::s_update_dlnActCoeff_dlnN() const double T = temperature(); dlnActCoeffdlnN_.zero(); - /* - * Loop over the activity coefficient gamma_k - */ + // Loop over the activity coefficient gamma_k for (size_t iK = 0; iK < m_kk; iK++) { for (size_t iM = 0; iM < m_kk; iM++) { double XM = moleFractions_[iM]; @@ -594,19 +555,18 @@ void MargulesVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) if (bName == "") { throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies", "no speciesB attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species. What this means is that the A-B interaction referred to in this - * block will be ignored. - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species. What this means is that the A-B interaction + // referred to in this block will be ignored. size_t aSpecies = speciesIndex(aName); if (aSpecies == npos) { return; } string aspName = speciesName(aSpecies); - // @TODO Figure out what the original reason is for putting an error condition for charged species - // Seems OK to me. + // @TODO Figure out what the original reason is for putting an error + // condition for charged species. Seems OK to me. if (charge(aSpecies) != 0.0) { throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies", "speciesA has a charge: {}", charge(aSpecies)); @@ -629,20 +589,17 @@ void MargulesVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) for (size_t iChild = 0; iChild < xmLBinarySpecies.nChildren(); iChild++) { XML_Node& xmlChild = xmLBinarySpecies.child(iChild); string nodeName = lowercase(xmlChild.name()); - /* - * Process the binary species interaction parameters. - * They are in subblocks labeled: - * excessEnthalpy - * excessEntropy - * excessVolume_Enthalpy - * excessVolume_Entropy - * Other blocks are currently ignored. - * @TODO determine a policy about ignoring blocks that should or shouldn't be there. - */ + + // Process the binary species interaction parameters. + // They are in subblocks labeled: + // excessEnthalpy + // excessEntropy + // excessVolume_Enthalpy + // excessVolume_Entropy + // Other blocks are currently ignored. + // @TODO determine a policy about ignoring blocks that should or shouldn't be there. if (nodeName == "excessenthalpy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessEnthalpy"); if (vParams.size() != 2) { throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessEnthalpy for " + aspName @@ -654,9 +611,7 @@ void MargulesVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessentropy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessEntropy"); if (vParams.size() != 2) { throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessEntropy for " + aspName @@ -668,9 +623,7 @@ void MargulesVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessvolume_enthalpy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessVolume_Enthalpy"); if (vParams.size() != 2) { throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessVolume_Enthalpy for " + aspName @@ -682,9 +635,7 @@ void MargulesVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessvolume_entropy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessVolume_Entropy"); if (vParams.size() != 2) { throw CanteraError("MargulesVPSSTP::readXMLBinarySpecies::excessVolume_Entropy for " + aspName diff --git a/src/thermo/MaskellSolidSolnPhase.cpp b/src/thermo/MaskellSolidSolnPhase.cpp index 04570292c..909f6380d 100644 --- a/src/thermo/MaskellSolidSolnPhase.cpp +++ b/src/thermo/MaskellSolidSolnPhase.cpp @@ -66,9 +66,8 @@ void MaskellSolidSolnPhase::getActivityConcentrations(doublereal* c) const } } -/******************************************************************** - * Molar Thermodynamic Properties of the Solution - ********************************************************************/ +// Molar Thermodynamic Properties of the Solution + doublereal MaskellSolidSolnPhase::enthalpy_mole() const { _updateThermo(); @@ -93,18 +92,13 @@ doublereal MaskellSolidSolnPhase::entropy_mole() const return s0 + GasConstant * (xlogx(1-rfm) - xlogx(rfm) - xlogx(1-r-rfm) - xlogx((1-fmval)*r) - xlogx(1-r) - xlogx(r)); } -/******************************************************************** - * Mechanical Equation of State - ********************************************************************/ +// Mechanical Equation of State void MaskellSolidSolnPhase::setDensity(const doublereal rho) { - /* - * Unless the input density is exactly equal to the density - * calculated and stored in the State object, we throw an - * exception. This is because the density is NOT an - * independent variable. - */ + // Unless the input density is exactly equal to the density calculated and + // stored in the State object, we throw an exception. This is because the + // density is NOT an independent variable. double dens = density(); if (rho != dens) { throw CanteraError("MaskellSolidSolnPhase::setDensity", @@ -136,9 +130,7 @@ void MaskellSolidSolnPhase::setMolarDensity(const doublereal n) "Density is not an independent variable"); } -/******************************************************************** - * Chemical Potentials and Activities - ********************************************************************/ +// Chemical Potentials and Activities void MaskellSolidSolnPhase::getActivityCoefficients(doublereal* ac) const { @@ -182,9 +174,7 @@ void MaskellSolidSolnPhase::getChemPotentials_RT(doublereal* mu) const } } -/******************************************************************** - * Partial Molar Properties - ********************************************************************/ +// Partial Molar Properties void MaskellSolidSolnPhase::getPartialMolarEnthalpies(doublereal* hbar) const { @@ -217,13 +207,13 @@ void MaskellSolidSolnPhase::getPureGibbs(doublereal* gpure) const void MaskellSolidSolnPhase::getStandardChemPotentials(doublereal* mu) const { - // What is the difference between this and getPureGibbs? IdealSolidSolnPhase gives the same for both + // What is the difference between this and getPureGibbs? IdealSolidSolnPhase + // gives the same for both getPureGibbs(mu); } -/********************************************************************* - * Utility Functions - *********************************************************************/ +// Utility Functions + void MaskellSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string& id_) { if (id_.size() > 0 && phaseNode.id() != id_) { @@ -231,10 +221,8 @@ void MaskellSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string "phasenode and Id are incompatible"); } - /* - * Check on the thermo field. Must have: - * - */ + // Check on the thermo field. Must have: + // if (phaseNode.hasChild("thermo")) { XML_Node& thNode = phaseNode.child("thermo"); std::string mString = thNode.attrib("model"); @@ -243,9 +231,7 @@ void MaskellSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string "Unknown thermo model: " + mString); } - /* - * Parse the enthalpy of mixing constant - */ + // Parse the enthalpy of mixing constant if (thNode.hasChild("h_mix")) { set_h_mix(fpValue(thNode.child("h_mix").value())); } else { @@ -277,10 +263,7 @@ void MaskellSolidSolnPhase::initThermoXML(XML_Node& phaseNode, const std::string "MaskellSolidSolution model requires exactly 2 species."); } - /* - * Call the base initThermo, which handles setting the initial - * state. - */ + // Call the base initThermo, which handles setting the initial state. VPStandardStateTP::initThermoXML(phaseNode, id_); } @@ -289,9 +272,8 @@ void MaskellSolidSolnPhase::_updateThermo() const assert(m_kk == 2); static const int cacheId = m_cache.getId(); CachedScalar cached = m_cache.getScalar(cacheId); - /* - * Update the thermodynamic functions of the reference state. - */ + + // Update the thermodynamic functions of the reference state. doublereal tnow = temperature(); if (!cached.validate(tnow)) { m_spthermo->update(tnow, m_cp0_R.data(), m_h0_RT.data(), m_s0_R.data()); diff --git a/src/thermo/MetalSHEelectrons.cpp b/src/thermo/MetalSHEelectrons.cpp index 6167a6674..0ff517d5b 100644 --- a/src/thermo/MetalSHEelectrons.cpp +++ b/src/thermo/MetalSHEelectrons.cpp @@ -20,9 +20,7 @@ namespace Cantera { -/* - * ---- Constructors ------- - */ +// ---- Constructors ------- MetalSHEelectrons::MetalSHEelectrons() { @@ -57,18 +55,14 @@ ThermoPhase* MetalSHEelectrons::duplMyselfAsThermoPhase() const return new MetalSHEelectrons(*this); } -/* - * ---- Utilities ----- - */ +// ---- Utilities ----- int MetalSHEelectrons::eosType() const { return cMetalSHEelectrons; } -/* - * ----- Mechanical Equation of State ------ - */ +// ----- Mechanical Equation of State ------ doublereal MetalSHEelectrons::pressure() const { @@ -90,9 +84,7 @@ doublereal MetalSHEelectrons::thermalExpansionCoeff() const return 1.0/temperature(); } -/* - * ---- Chemical Potentials and Activities ---- - */ +// ---- Chemical Potentials and Activities ---- void MetalSHEelectrons::getActivityConcentrations(doublereal* c) const { @@ -109,9 +101,7 @@ doublereal MetalSHEelectrons::logStandardConc(size_t k) const return 0.0; } -/* - * Properties of the Standard State of the Species in the Solution - */ +// Properties of the Standard State of the Species in the Solution void MetalSHEelectrons::getStandardChemPotentials(doublereal* mu0) const { @@ -155,15 +145,11 @@ void MetalSHEelectrons::getIntEnergy_RT_ref(doublereal* urt) const urt[0] = m_h0_RT[0] - m_p0 / molarDensity() / RT(); } -/* - * ---- Initialization and Internal functions - */ +// ---- Initialization and Internal functions void MetalSHEelectrons::initThermoXML(XML_Node& phaseNode, const std::string& id_) { - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("MetalSHEelectrons::initThermoXML", "no thermo XML node"); diff --git a/src/thermo/MineralEQ3.cpp b/src/thermo/MineralEQ3.cpp index b7e7d4f89..f14828640 100644 --- a/src/thermo/MineralEQ3.cpp +++ b/src/thermo/MineralEQ3.cpp @@ -23,9 +23,7 @@ using namespace std; namespace Cantera { -/* - * ---- Constructors ------- - */ +// ---- Constructors ------- MineralEQ3::MineralEQ3(const std::string& infile, const std::string& id_) { @@ -66,18 +64,14 @@ ThermoPhase* MineralEQ3::duplMyselfAsThermoPhase() const return new MineralEQ3(*this); } -/* - * ---- Utilities ----- - */ +// ---- Utilities ----- int MineralEQ3::eosType() const { return cStoichSubstance; } -/* - * ----- Mechanical Equation of State ------ - */ +// ----- Mechanical Equation of State ------ doublereal MineralEQ3::pressure() const { @@ -99,9 +93,7 @@ doublereal MineralEQ3::thermalExpansionCoeff() const return 0.0; } -/* - * ---- Chemical Potentials and Activities ---- - */ +// ---- Chemical Potentials and Activities ---- void MineralEQ3::getActivityConcentrations(doublereal* c) const { @@ -118,9 +110,7 @@ doublereal MineralEQ3::logStandardConc(size_t k) const return 0.0; } -/* - * Properties of the Standard State of the Species in the Solution - */ +// Properties of the Standard State of the Species in the Solution void MineralEQ3::getStandardChemPotentials(doublereal* mu0) const { @@ -158,9 +148,7 @@ void MineralEQ3::getIntEnergy_RT(doublereal* urt) const urt[0] = m_h0_RT[0] - m_p0 / molarDensity() / RT(); } -/* - * ---- Thermodynamic Values for the Species Reference States ---- - */ +// ---- Thermodynamic Values for the Species Reference States ---- void MineralEQ3::getIntEnergy_RT_ref(doublereal* urt) const { @@ -168,9 +156,7 @@ void MineralEQ3::getIntEnergy_RT_ref(doublereal* urt) const urt[0] = m_h0_RT[0] - m_p0 / molarDensity() / RT(); } -/* - * ---- Initialization and Internal functions - */ +// ---- Initialization and Internal functions void MineralEQ3::setParameters(int n, doublereal* const c) { @@ -185,9 +171,7 @@ void MineralEQ3::getParameters(int& n, doublereal* const c) const void MineralEQ3::initThermoXML(XML_Node& phaseNode, const std::string& id_) { - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("HMWSoln::initThermoXML", "no thermo XML node"); @@ -262,9 +246,7 @@ doublereal MineralEQ3::LookupGe(const std::string& elemName) void MineralEQ3::convertDGFormation() { - /* - * Ok let's get the element compositions and conversion factors. - */ + // Ok let's get the element compositions and conversion factors. doublereal totalSum = 0.0; for (size_t m = 0; m < nElements(); m++) { double na = nAtoms(0, m); diff --git a/src/thermo/MixedSolventElectrolyte.cpp b/src/thermo/MixedSolventElectrolyte.cpp index dc6d9d0cf..89b15b04f 100644 --- a/src/thermo/MixedSolventElectrolyte.cpp +++ b/src/thermo/MixedSolventElectrolyte.cpp @@ -85,28 +85,20 @@ ThermoPhase* MixedSolventElectrolyte::duplMyselfAsThermoPhase() const return new MixedSolventElectrolyte(*this); } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// - Activities, Standard States, Activity Concentrations ----------- void MixedSolventElectrolyte::getActivityCoefficients(doublereal* ac) const { - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); - /* - * take the exp of the internally stored coefficients. - */ + // take the exp of the internally stored coefficients. for (size_t k = 0; k < m_kk; k++) { ac[k] = exp(lnActCoeff_Scaled_[k]); } } -/* - * ------------ Partial Molar Properties of the Solution ------------ - */ +// ------------ Partial Molar Properties of the Solution ------------ void MixedSolventElectrolyte::getElectrochemPotentials(doublereal* mu) const { @@ -119,16 +111,10 @@ void MixedSolventElectrolyte::getElectrochemPotentials(doublereal* mu) const void MixedSolventElectrolyte::getChemPotentials(doublereal* mu) const { - /* - * First get the standard chemical potentials in - * molar form. - * -> this requires updates of standard state as a function - * of T and P - */ + // First get the standard chemical potentials in molar form. This requires + // updates of standard state as a function of T and P getStandardChemPotentials(mu); - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { double xx = std::max(moleFractions_[k], SmallNumber); @@ -176,20 +162,15 @@ doublereal MixedSolventElectrolyte::cv_mole() const void MixedSolventElectrolyte::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * dimensionalize it. - */ + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { hbar[k] *= RT(); } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { @@ -199,24 +180,18 @@ void MixedSolventElectrolyte::getPartialMolarEnthalpies(doublereal* hbar) const void MixedSolventElectrolyte::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional standard state entropies - */ getCp_R(cpbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { cpbar[k] -= 2 * T * dlnActCoeffdT_Scaled_[k] + T * T * d2lnActCoeffdT2_Scaled_[k]; } - /* - * dimensionalize it. - */ + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } @@ -224,15 +199,12 @@ void MixedSolventElectrolyte::getPartialMolarCp(doublereal* cpbar) const void MixedSolventElectrolyte::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getEntropy_R(sbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the + // internally stored molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); @@ -240,9 +212,7 @@ void MixedSolventElectrolyte::getPartialMolarEntropies(doublereal* sbar) const double xx = std::max(moleFractions_[k], SmallNumber); sbar[k] += - lnActCoeff_Scaled_[k] -log(xx) - T * dlnActCoeffdT_Scaled_[k]; } - /* - * dimensionalize it. - */ + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } @@ -252,9 +222,7 @@ void MixedSolventElectrolyte::getPartialMolarVolumes(doublereal* vbar) const { double T = temperature(); - /* - * Get the standard state values in m^3 kmol-1 - */ + // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); for (size_t iK = 0; iK < m_kk; iK++) { @@ -299,10 +267,8 @@ void MixedSolventElectrolyte::initThermoXML(XML_Node& phaseNode, const std::stri "phasenode and Id are incompatible"); } - /* - * Check on the thermo field. Must have: - * - */ + // Check on the thermo field. Must have: + // if (!phaseNode.hasChild("thermo")) { throw CanteraError("MixedSolventElectrolyte::initThermoXML", "no thermo XML node"); @@ -314,10 +280,8 @@ void MixedSolventElectrolyte::initThermoXML(XML_Node& phaseNode, const std::stri "Unknown thermo model: " + mString); } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the activityCoefficients + // XML block if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); mString = acNode.attrib("model"); @@ -327,20 +291,17 @@ void MixedSolventElectrolyte::initThermoXML(XML_Node& phaseNode, const std::stri } for (size_t i = 0; i < acNode.nChildren(); i++) { XML_Node& xmlACChild = acNode.child(i); - /* - * Process a binary salt field, or any of the other XML fields - * that make up the Pitzer Database. Entries will be ignored - * if any of the species in the entry isn't in the solution. - */ + + // Process a binary salt field, or any of the other XML fields that + // make up the Pitzer Database. Entries will be ignored if any of + // the species in the entry isn't in the solution. if (lowercase(xmlACChild.name()) == "binaryneutralspeciesparameters") { readXMLBinarySpecies(xmlACChild); } } } - /* - * Go down the chain - */ + // Go down the chain MolarityIonicVPSSTP::initThermoXML(phaseNode, id_); } @@ -479,9 +440,7 @@ void MixedSolventElectrolyte::s_update_dlnActCoeff_dlnN() const double T = temperature(); dlnActCoeffdlnN_.zero(); - /* - * Loop over the activity coefficient gamma_k - */ + // Loop over the activity coefficient gamma_k for (size_t iK = 0; iK < m_kk; iK++) { for (size_t iM = 0; iM < m_kk; iM++) { double XM = moleFractions_[iM]; @@ -594,10 +553,9 @@ void MixedSolventElectrolyte::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) if (jName == "") { throw CanteraError("MixedSolventElectrolyte::readXMLBinarySpecies", "no speciesB attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(iName); if (iSpecies == npos) { return; @@ -623,13 +581,10 @@ void MixedSolventElectrolyte::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) for (size_t iChild = 0; iChild < xmLBinarySpecies.nChildren(); iChild++) { XML_Node& xmlChild = xmLBinarySpecies.child(iChild); string nodeName = lowercase(xmlChild.name()); - /* - * Process the binary species interaction child elements - */ + + // Process the binary species interaction child elements if (nodeName == "excessenthalpy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessEnthalpy"); if (vParams.size() != 2) { throw CanteraError("MixedSolventElectrolyte::readXMLBinarySpecies::excessEnthalpy for " + ispName @@ -641,9 +596,7 @@ void MixedSolventElectrolyte::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessentropy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessEntropy"); if (vParams.size() != 2) { throw CanteraError("MixedSolventElectrolyte::readXMLBinarySpecies::excessEntropy for " + ispName @@ -655,9 +608,7 @@ void MixedSolventElectrolyte::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessvolume_enthalpy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessVolume_Enthalpy"); if (vParams.size() != 2) { throw CanteraError("MixedSolventElectrolyte::readXMLBinarySpecies::excessVolume_Enthalpy for " + ispName @@ -669,9 +620,7 @@ void MixedSolventElectrolyte::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessvolume_entropy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessVolume_Entropy"); if (vParams.size() != 2) { throw CanteraError("MixedSolventElectrolyte::readXMLBinarySpecies::excessVolume_Entropy for " + ispName diff --git a/src/thermo/MixtureFugacityTP.cpp b/src/thermo/MixtureFugacityTP.cpp index 2e9b576c7..e1110001d 100644 --- a/src/thermo/MixtureFugacityTP.cpp +++ b/src/thermo/MixtureFugacityTP.cpp @@ -41,14 +41,10 @@ MixtureFugacityTP::MixtureFugacityTP(const MixtureFugacityTP& b) : MixtureFugacityTP& MixtureFugacityTP::operator=(const MixtureFugacityTP& b) { if (&b != this) { - /* - * Mostly, this is a passthrough to the underlying - * assignment operator for the ThermoPhase parent object. - */ + // Mostly, this is a passthrough to the underlying assignment operator + // for the ThermoPhase parent object. ThermoPhase::operator=(b); - /* - * However, we have to handle data that we own. - */ + // However, we have to handle data that we own. m_Pcurrent = b.m_Pcurrent; moleFractions_ = b.moleFractions_; iState_ = b.iState_; @@ -88,9 +84,7 @@ int MixtureFugacityTP::reportSolnBranchActual() const return iState_; } -/* - * ---- Partial Molar Properties of the Solution ----------------- - */ +// ---- Partial Molar Properties of the Solution ----------------- void MixtureFugacityTP::getChemPotentials_RT(doublereal* muRT) const { @@ -100,9 +94,7 @@ void MixtureFugacityTP::getChemPotentials_RT(doublereal* muRT) const } } -/* - * ----- Thermodynamic Values for the Species Standard States States ---- - */ +// ----- Thermodynamic Values for the Species Standard States States ---- void MixtureFugacityTP::getStandardChemPotentials(doublereal* g) const { @@ -178,10 +170,7 @@ void MixtureFugacityTP::getStandardVolumes(doublereal* vol) const } } -/* - * ----- Thermodynamic Values for the Species Reference States ---- - */ - +// ----- Thermodynamic Values for the Species Reference States ---- void MixtureFugacityTP::getEnthalpy_RT_ref(doublereal* hrt) const { @@ -332,15 +321,11 @@ void MixtureFugacityTP::calcDensity() void MixtureFugacityTP::setState_TP(doublereal t, doublereal pres) { - /* - * A pretty tricky algorithm is needed here, due to problems involving - * standard states of real fluids. For those cases you need - * to combine the T and P specification for the standard state, or else - * you may venture into the forbidden zone, especially when nearing the - * triple point. - * Therefore, we need to do the standard state thermo calc with the - * (t, pres) combo. - */ + // A pretty tricky algorithm is needed here, due to problems involving + // standard states of real fluids. For those cases you need to combine the T + // and P specification for the standard state, or else you may venture into + // the forbidden zone, especially when nearing the triple point. Therefore, + // we need to do the standard state thermo calc with the (t, pres) combo. getMoleFractions(moleFractions_.data()); Phase::setTemperature(t); @@ -479,10 +464,8 @@ doublereal MixtureFugacityTP::densityCalc(doublereal TKelvin, doublereal presPa, } } } else { - /* - * Assume the Gas phase initial guess, if nothing is - * specified to the routine - */ + // Assume the Gas phase initial guess, if nothing is specified to + // the routine rhoguess = presPa * mmw / (GasConstant * TKelvin); } } @@ -490,15 +473,13 @@ doublereal MixtureFugacityTP::densityCalc(doublereal TKelvin, doublereal presPa, double molarVolBase = mmw / rhoguess; double molarVolLast = molarVolBase; double vc = mmw / critDensity(); - /* - * molar volume of the spinodal at the current temperature and mole fractions. this will - * be updated as we go. - */ + + // molar volume of the spinodal at the current temperature and mole + // fractions. this will be updated as we go. double molarVolSpinodal = vc; bool conv = false; - /* - * We start on one side of the vc and stick with that side - */ + + // We start on one side of the vc and stick with that side bool gasSide = molarVolBase > vc; if (gasSide) { molarVolLast = (GasConstant * TKelvin)/presPa; @@ -506,36 +487,27 @@ doublereal MixtureFugacityTP::densityCalc(doublereal TKelvin, doublereal presPa, molarVolLast = liquidVolEst(TKelvin, presPa); } - /* - * OK, now we do a small solve to calculate the molar volume given the T,P value. - * The algorithm is taken from dfind() - */ + // OK, now we do a small solve to calculate the molar volume given the T,P + // value. The algorithm is taken from dfind() for (int n = 0; n < 200; n++) { - /* - * Calculate the predicted reduced pressure, pred0, based on the - * current tau and dd. - * Calculate the derivative of the predicted pressure - * wrt the molar volume. - * This routine also returns the pressure, presBase - */ + // Calculate the predicted reduced pressure, pred0, based on the current + // tau and dd. Calculate the derivative of the predicted pressure wrt + // the molar volume. This routine also returns the pressure, presBase double presBase; double dpdVBase = dpdVCalc(TKelvin, molarVolBase, presBase); - /* - * If dpdV is positive, then we are in the middle of the - * 2 phase region and beyond the spinodal stability curve. We need to adjust - * the initial guess outwards and start a new iteration. - */ + // If dpdV is positive, then we are in the middle of the 2 phase region + // and beyond the spinodal stability curve. We need to adjust the + // initial guess outwards and start a new iteration. if (dpdVBase >= 0.0) { if (TKelvin > tcrit) { throw CanteraError("MixtureFugacityTP::densityCalc", "T > tcrit unexpectedly"); } - /* - * TODO Spawn a calculation for the value of the spinodal point that is - * very accurate. Answer the question as to whether a solution is - * possible on the current side of the vapor dome. - */ + + // TODO Spawn a calculation for the value of the spinodal point that + // is very accurate. Answer the question as to whether a + // solution is possible on the current side of the vapor dome. if (gasSide) { if (molarVolBase >= vc) { molarVolSpinodal = molarVolBase; @@ -554,34 +526,25 @@ doublereal MixtureFugacityTP::densityCalc(doublereal TKelvin, doublereal presPa, continue; } - /* - * Check for convergence - */ + // Check for convergence if (fabs(presBase-presPa) < 1.0E-30 + 1.0E-8 * presPa) { conv = true; break; } - /* - * Dampen and crop the update - */ + // Dampen and crop the update doublereal dpdV = dpdVBase; if (n < 10) { dpdV = dpdVBase * 1.5; } - /* - * Formulate the update to the molar volume by - * Newton's method. Then, crop it to a max value - * of 0.1 times the current volume - */ + // Formulate the update to the molar volume by Newton's method. Then, + // crop it to a max value of 0.1 times the current volume double delMV = - (presBase - presPa) / dpdV; if ((!gasSide || delMV < 0.0) && fabs(delMV) > 0.2 * molarVolBase) { delMV = delMV / fabs(delMV) * 0.2 * molarVolBase; } - /* - * Only go 1/10 the way towards the spinodal at any one time. - */ + // Only go 1/10 the way towards the spinodal at any one time. if (TKelvin < tcrit) { if (gasSide) { if (delMV < 0.0 && -delMV > 0.5 * (molarVolBase - molarVolSpinodal)) { @@ -593,9 +556,7 @@ doublereal MixtureFugacityTP::densityCalc(doublereal TKelvin, doublereal presPa, } } } - /* - * updated the molar volume value - */ + // updated the molar volume value molarVolLast = molarVolBase; molarVolBase += delMV; @@ -604,17 +565,13 @@ doublereal MixtureFugacityTP::densityCalc(doublereal TKelvin, doublereal presPa, break; } - /* - * Check for negative molar volumes - */ + // Check for negative molar volumes if (molarVolBase <= 0.0) { molarVolBase = std::min(1.0E-30, fabs(delMV*1.0E-4)); } } - /* - * Check for convergence, and return 0.0 if it wasn't achieved. - */ + // Check for convergence, and return 0.0 if it wasn't achieved. double densBase = 0.0; if (! conv) { molarVolBase = 0.0; @@ -733,24 +690,23 @@ doublereal MixtureFugacityTP::satPressure(doublereal TKelvin) doublereal MixtureFugacityTP::calculatePsat(doublereal TKelvin, doublereal& molarVolGas, doublereal& molarVolLiquid) { - /* - * The algorithm for this routine has undergone quite a bit of work. It probably needs more work. - * However, it seems now to be fairly robust. - * The key requirement is to find an initial pressure where both the liquid and the gas exist. This - * is not as easy as it sounds, and it gets exceedingly hard as the critical temperature is approached - * from below. - * Once we have this initial state, then we seek to equilibrate the Gibbs free energies of the - * gas and liquid and use the formula - * - * dp = VdG - * - * to create an update condition for deltaP using - * - * - (Gliq - Ggas) = (Vliq - Vgas) (deltaP) - * - * @TODO Suggestions for the future would be to switch it to an algorithm that uses the gas molar volume - * and the liquid molar volumes as the fundamental unknowns. - */ + // The algorithm for this routine has undergone quite a bit of work. It + // probably needs more work. However, it seems now to be fairly robust. The + // key requirement is to find an initial pressure where both the liquid and + // the gas exist. This is not as easy as it sounds, and it gets exceedingly + // hard as the critical temperature is approached from below. Once we have + // this initial state, then we seek to equilibrate the Gibbs free energies + // of the gas and liquid and use the formula + // + // dp = VdG + // + // to create an update condition for deltaP using + // + // - (Gliq - Ggas) = (Vliq - Vgas) (deltaP) + // + // @TODO Suggestions for the future would be to switch it to an algorithm + // that uses the gas molar volume and the liquid molar volumes as the + // fundamental unknowns. // we need this because this is a non-const routine that is public setTemperature(TKelvin); @@ -767,10 +723,8 @@ doublereal MixtureFugacityTP::calculatePsat(doublereal TKelvin, doublereal& mola doublereal delGRT = 1.0E6; doublereal liqGRT, gasGRT; - /* - * First part of the calculation involves finding a pressure at which the - * gas and the liquid state coexists. - */ + // First part of the calculation involves finding a pressure at which + // the gas and the liquid state coexists. doublereal presLiquid = 0.; doublereal presGas; doublereal presBase = pres; @@ -864,9 +818,7 @@ doublereal MixtureFugacityTP::calculatePsat(doublereal TKelvin, doublereal& mola double RhoGas = RhoGasGood; double RhoLiquid = RhoLiquidGood; - /* - * Now that we have found a good pressure we can proceed with the algorithm. - */ + // Now that we have found a good pressure we can proceed with the algorithm. for (int i = 0; i < 20; i++) { int stab = corr0(TKelvin, pres, RhoLiquid, RhoGas, liqGRT, gasGRT); if (stab == 0) { diff --git a/src/thermo/MolalityVPSSTP.cpp b/src/thermo/MolalityVPSSTP.cpp index f5e4776e8..cbf5d0cc7 100644 --- a/src/thermo/MolalityVPSSTP.cpp +++ b/src/thermo/MolalityVPSSTP.cpp @@ -5,11 +5,10 @@ * (see \ref thermoprops * and class \link Cantera::MolalityVPSSTP MolalityVPSSTP\endlink). * - * Header file for a derived class of ThermoPhase that handles - * variable pressure standard state methods for calculating - * thermodynamic properties that are further based upon activities - * based on the molality scale. These include most of the methods for - * calculating liquid electrolyte thermodynamics. + * Header file for a derived class of ThermoPhase that handles variable pressure + * standard state methods for calculating thermodynamic properties that are + * further based upon activities based on the molality scale. These include + * most of the methods for calculating liquid electrolyte thermodynamics. */ /* * Copyright (2005) Sandia Corporation. Under the terms of @@ -36,11 +35,9 @@ MolalityVPSSTP::MolalityVPSSTP() : m_xmolSolventMIN(0.01), m_Mnaught(18.01528E-3) { - /* - * Change the default to be that charge neutrality in the - * phase is necessary condition for the proper specification - * of thermodynamic functions within the phase - */ + // Change the default to be that charge neutrality in the phase is necessary + // condition for the proper specification of thermodynamic functions within + // the phase m_chargeNeutralityNecessary = true; } @@ -75,9 +72,7 @@ ThermoPhase* MolalityVPSSTP::duplMyselfAsThermoPhase() const return new MolalityVPSSTP(*this); } -/* - * -------------- Utilities ------------------------------- - */ +// -------------- Utilities ------------------------------- void MolalityVPSSTP::setpHScale(const int pHscaleType) { @@ -165,24 +160,18 @@ void MolalityVPSSTP::setMolalities(const doublereal* const molal) } } setMoleFractions(m_molalities.data()); - /* - * Essentially we don't trust the input: We calculate - * the molalities from the mole fractions that we - * just obtained. - */ + + // Essentially we don't trust the input: We calculate the molalities from + // the mole fractions that we just obtained. calcMolalities(); } void MolalityVPSSTP::setMolalitiesByName(const compositionMap& mMap) { - /* - * HKM -> Might need to be more complicated here, setting - * neutrals so that the existing mole fractions are - * preserved. - */ - /* - * Get a vector of mole fractions - */ + // HKM -> Might need to be more complicated here, setting neutrals so that + // the existing mole fractions are preserved. + + // Get a vector of mole fractions vector_fp mf(m_kk, 0.0); getMoleFractions(mf.data()); double xmolSmin = std::max(mf[m_indexSolvent], m_xmolSolventMIN); @@ -192,9 +181,8 @@ void MolalityVPSSTP::setMolalitiesByName(const compositionMap& mMap) mf[k] = mol_k * m_Mnaught * xmolSmin; } } - /* - * check charge neutrality - */ + + // check charge neutrality size_t largePos = npos; double cPos = 0.0; size_t largeNeg = npos; @@ -240,11 +228,9 @@ void MolalityVPSSTP::setMolalitiesByName(const compositionMap& mMap) mf[k] *= sum; } setMoleFractions(mf.data()); - /* - * After we formally set the mole fractions, we - * calculate the molalities again and store it in - * this object. - */ + + // After we formally set the mole fractions, we calculate the molalities + // again and store it in this object. calcMolalities(); } @@ -254,9 +240,7 @@ void MolalityVPSSTP::setMolalitiesByName(const std::string& x) setMolalitiesByName(xx); } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// - Activities, Standard States, Activity Concentrations ----------- int MolalityVPSSTP::activityConvention() const { @@ -296,14 +280,11 @@ void MolalityVPSSTP::getMolalityActivityCoefficients(doublereal* acMolality) con doublereal MolalityVPSSTP::osmoticCoefficient() const { - /* - * First, we calculate the activities all over again - */ + // First, we calculate the activities all over again vector_fp act(m_kk); getActivities(act.data()); - /* - * Then, we calculate the sum of the solvent molalities - */ + + // Then, we calculate the sum of the solvent molalities double sum = 0; for (size_t k = 1; k < m_kk; k++) { sum += std::max(m_molalities[k], 0.0); @@ -366,13 +347,11 @@ void MolalityVPSSTP::initThermo() { initLengths(); VPStandardStateTP::initThermo(); - /* - * The solvent defaults to species 0 - */ + + // The solvent defaults to species 0 setSolvent(0); - /* - * Find the Cl- species - */ + + // Find the Cl- species m_indexCLM = findCLMIndex(); } @@ -452,9 +431,8 @@ void MolalityVPSSTP::initLengths() void MolalityVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& id_) { initLengths(); - /* - * The solvent defaults to species 0 - */ + + // The solvent defaults to species 0 setSolvent(0); VPStandardStateTP::initThermoXML(phaseNode, id_); } diff --git a/src/thermo/MolarityIonicVPSSTP.cpp b/src/thermo/MolarityIonicVPSSTP.cpp index 8c294234d..a2853bf11 100644 --- a/src/thermo/MolarityIonicVPSSTP.cpp +++ b/src/thermo/MolarityIonicVPSSTP.cpp @@ -5,11 +5,10 @@ * (see \ref thermoprops * and class \link Cantera::MolarityIonicVPSSTP MolarityIonicVPSSTP\endlink). * - * Header file for a derived class of ThermoPhase that handles - * variable pressure standard state methods for calculating - * thermodynamic properties that are further based upon expressions - * for the excess Gibbs free energy expressed as a function of - * the mole fractions. + * Header file for a derived class of ThermoPhase that handles variable pressure + * standard state methods for calculating thermodynamic properties that are + * further based upon expressions for the excess Gibbs free energy expressed as + * a function of the mole fractions. */ /* * Copyright (2009) Sandia Corporation. Under the terms of @@ -88,20 +87,14 @@ ThermoPhase* MolarityIonicVPSSTP::duplMyselfAsThermoPhase() const return new MolarityIonicVPSSTP(*this); } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// - Activities, Standard States, Activity Concentrations ----------- void MolarityIonicVPSSTP::getLnActivityCoefficients(doublereal* lnac) const { - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); - /* - * take the exp of the internally stored coefficients. - */ + // take the exp of the internally stored coefficients. for (size_t k = 0; k < m_kk; k++) { lnac[k] = lnActCoeff_Scaled_[k]; } @@ -109,16 +102,11 @@ void MolarityIonicVPSSTP::getLnActivityCoefficients(doublereal* lnac) const void MolarityIonicVPSSTP::getChemPotentials(doublereal* mu) const { - /* - * First get the standard chemical potentials in - * molar form. - * -> this requires updates of standard state as a function - * of T and P - */ + // First get the standard chemical potentials in molar form. This requires + // updates of standard state as a function of T and P getStandardChemPotentials(mu); - /* - * Update the activity coefficients - */ + + // Update the activity coefficients s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { double xx = std::max(moleFractions_[k], SmallNumber); @@ -137,21 +125,17 @@ void MolarityIonicVPSSTP::getElectrochemPotentials(doublereal* mu) const void MolarityIonicVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * dimensionalize it. - */ + + // dimensionalize it. double T = temperature(); for (size_t k = 0; k < m_kk; k++) { hbar[k] *= GasConstant * T; } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { @@ -161,24 +145,20 @@ void MolarityIonicVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const void MolarityIonicVPSSTP::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getCp_R(cpbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { cpbar[k] -= 2 * T * dlnActCoeffdT_Scaled_[k] + T * T * d2lnActCoeffdT2_Scaled_[k]; } - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } @@ -186,15 +166,12 @@ void MolarityIonicVPSSTP::getPartialMolarCp(doublereal* cpbar) const void MolarityIonicVPSSTP::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getEntropy_R(sbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); @@ -202,9 +179,8 @@ void MolarityIonicVPSSTP::getPartialMolarEntropies(doublereal* sbar) const double xx = std::max(moleFractions_[k], SmallNumber); sbar[k] += - lnActCoeff_Scaled_[k] -log(xx) - T * dlnActCoeffdT_Scaled_[k]; } - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } @@ -212,9 +188,7 @@ void MolarityIonicVPSSTP::getPartialMolarEntropies(doublereal* sbar) const void MolarityIonicVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { - /* - * Get the standard state values in m^3 kmol-1 - */ + // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); for (size_t iK = 0; iK < m_kk; iK++) { vbar[iK] += 0.0; @@ -305,9 +279,8 @@ void MolarityIonicVPSSTP::initThermo() { GibbsExcessVPSSTP::initThermo(); initLengths(); - /* - * Go find the list of cations and anions - */ + + // Go find the list of cations and anions cationList_.clear(); anionList_.clear(); passThroughList_.clear(); @@ -346,11 +319,9 @@ void MolarityIonicVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& "phasenode and Id are incompatible"); } - /* - * Check on the thermo field. Must have one of: - * - * - */ + // Check on the thermo field. Must have one of: + // + // if (!phaseNode.hasChild("thermo")) { throw CanteraError("MolarityIonicVPSSTP::initThermoXML", "no thermo XML node"); @@ -363,26 +334,20 @@ void MolarityIonicVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& "Unknown thermo model: " + mStringa + " - This object only knows \"MolarityIonicVPSSTP\" "); } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the activityCoefficients + // XML block if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); for (size_t i = 0; i < acNode.nChildren(); i++) { XML_Node& xmlACChild = acNode.child(i); - /* - * Process a binary interaction - */ + // Process a binary interaction if (lowercase(xmlACChild.name()) == "binaryneutralspeciesparameters") { readXMLBinarySpecies(xmlACChild); } } } - /* - * Go down the chain - */ + // Go down the chain GibbsExcessVPSSTP::initThermoXML(phaseNode, id); } diff --git a/src/thermo/Mu0Poly.cpp b/src/thermo/Mu0Poly.cpp index 0533148a6..38a73141f 100644 --- a/src/thermo/Mu0Poly.cpp +++ b/src/thermo/Mu0Poly.cpp @@ -104,11 +104,10 @@ Mu0Poly* newMu0ThermoFromXML(const XML_Node& Mu0Node) throw CanteraError("installMu0ThermoFromXML", "missing Mu0Values"); } getFloatArray(*valNode_ptr, cValues, true, "actEnergy"); - /* - * Check to see whether the Mu0's were input in a dimensionless - * form. If they were, then the assumed temperature needs to be - * adjusted from the assumed T = 273.15 - */ + + // Check to see whether the Mu0's were input in a dimensionless form. If + // they were, then the assumed temperature needs to be adjusted from the + // assumed T = 273.15 if (valNode_ptr->attrib("units") == "Dimensionless") { dimensionlessMu0Values = true; } @@ -127,9 +126,7 @@ Mu0Poly* newMu0ThermoFromXML(const XML_Node& Mu0Node) throw CanteraError("installMu0ThermoFromXML", "numPoints inconsistent"); } - /* - * Fix up dimensionless Mu0 values if input - */ + // Fix up dimensionless Mu0 values if input if (dimensionlessMu0Values) { for (size_t i = 0; i < numPoints; i++) { cValues[i] *= cTemperatures[i] / 273.15; @@ -158,19 +155,16 @@ void Mu0Poly::processCoeffs(const doublereal* coeffs) m_numIntervals = nPoints - 1; m_H298 = coeffs[1] / GasConstant; size_t iT298 = 0; - /* - * Resize according to the number of points - */ + + // Resize according to the number of points m_t0_int.resize(nPoints); m_h0_R_int.resize(nPoints); m_s0_R_int.resize(nPoints); m_cp0_R_int.resize(nPoints); m_mu0_R_int.resize(nPoints); - /* - * Calculate the T298 interval and make sure that - * the temperatures are strictly monotonic. - * Also distribute the data into the internal arrays. - */ + + // Calculate the T298 interval and make sure that the temperatures are + // strictly monotonic. Also distribute the data into the internal arrays. bool ifound = false; for (size_t i = 0, iindex = 2; i < nPoints; i++) { double T1 = coeffs[iindex]; @@ -191,9 +185,7 @@ void Mu0Poly::processCoeffs(const doublereal* coeffs) "One temperature has to be 298.15"); } - /* - * Starting from the interval with T298, we go up - */ + // Starting from the interval with T298, we go up m_h0_R_int[iT298] = m_H298; m_s0_R_int[iT298] = - (m_mu0_R_int[iT298] - m_h0_R_int[iT298]) / m_t0_int[iT298]; for (size_t i = iT298; i < m_numIntervals; i++) { @@ -209,9 +201,7 @@ void Mu0Poly::processCoeffs(const doublereal* coeffs) m_cp0_R_int[i+1] = cpi; } - /* - * Starting from the interval with T298, we go down - */ + // Starting from the interval with T298, we go down if (iT298 != 0) { m_h0_R_int[iT298] = m_H298; m_s0_R_int[iT298] = - (m_mu0_R_int[iT298] - m_h0_R_int[iT298]) / m_t0_int[iT298]; diff --git a/src/thermo/PDSS.cpp b/src/thermo/PDSS.cpp index f5bac312f..f14be86f1 100644 --- a/src/thermo/PDSS.cpp +++ b/src/thermo/PDSS.cpp @@ -94,10 +94,8 @@ PDSS::PDSS(const PDSS& b) : m_gss_RT_ptr(b.m_gss_RT_ptr), m_Vss_ptr(b.m_Vss_ptr) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -114,10 +112,8 @@ PDSS& PDSS::operator=(const PDSS& b) m_minTemp = b.m_minTemp; m_maxTemp = b.m_maxTemp; - // Pointers which are zero, are properly assigned in the - // function, initAllPtrs(). which must be called after the - // assignment operation. - + // Pointers which are zero, are properly assigned in the function, + // initAllPtrs(). which must be called after the assignment operation. m_tp = 0; m_vpssmgr_ptr = 0; m_mw = b.m_mw; diff --git a/src/thermo/PDSS_ConstVol.cpp b/src/thermo/PDSS_ConstVol.cpp index e9463d0e3..17af4ff03 100644 --- a/src/thermo/PDSS_ConstVol.cpp +++ b/src/thermo/PDSS_ConstVol.cpp @@ -47,10 +47,8 @@ PDSS_ConstVol::PDSS_ConstVol(VPStandardStateTP* tp, size_t spindex, PDSS_ConstVol::PDSS_ConstVol(const PDSS_ConstVol& b) : PDSS(b) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -109,10 +107,9 @@ void PDSS_ConstVol::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, throw CanteraError("PDSS_ConstVol::initThermo","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + + // The phase object automatically constructs an XML object. Use this object + // to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id); diff --git a/src/thermo/PDSS_HKFT.cpp b/src/thermo/PDSS_HKFT.cpp index 0dc66ccaa..3378668e8 100644 --- a/src/thermo/PDSS_HKFT.cpp +++ b/src/thermo/PDSS_HKFT.cpp @@ -23,9 +23,7 @@ using namespace std; namespace Cantera { -/* - * Set the default to error exit if there is an input file inconsistency - */ +// Set the default to error exit if there is an input file inconsistency int PDSS_HKFT::s_InputInconsistencyErrorExit = 1; PDSS_HKFT::PDSS_HKFT(VPStandardStateTP* tp, size_t spindex) : @@ -147,10 +145,9 @@ PDSS_HKFT::PDSS_HKFT(const PDSS_HKFT& b) : { m_pdssType = cPDSS_MOLAL_HKFT; m_presR_bar = OneAtm * 1.0E-5; - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -159,15 +156,13 @@ PDSS_HKFT& PDSS_HKFT::operator=(const PDSS_HKFT& b) if (&b == this) { return *this; } - /* - * Call the base class operator - */ + // Call the base class operator PDSS::operator=(b); - //! Need to call initAllPtrs AFTER, to get the correct m_waterSS + // Need to call initAllPtrs AFTER, to get the correct m_waterSS m_waterSS = 0; m_densWaterSS = b.m_densWaterSS; - //! Need to call initAllPtrs AFTER, to get the correct m_waterProps + // Need to call initAllPtrs AFTER, to get the correct m_waterProps m_born_coeff_j = b.m_born_coeff_j; m_r_e_j = b.m_r_e_j; m_deltaG_formation_tr_pr = b.m_deltaG_formation_tr_pr; @@ -396,9 +391,8 @@ void PDSS_HKFT::initThermo() PDSS::initThermo(); m_waterSS = dynamic_cast(m_tp->providePDSS(0)); - /* - * Section to initialize m_Z_pr_tr and m_Y_pr_tr - */ + + // Section to initialize m_Z_pr_tr and m_Y_pr_tr m_temp = 273.15 + 25.; m_pres = OneAtm; doublereal relepsilon = m_waterProps->relEpsilon(m_temp, m_pres, 0); @@ -413,7 +407,7 @@ void PDSS_HKFT::initThermo() m_charge_j = m_tp->charge(m_spindex); convertDGFormation(); - //! Ok, we have mu. Let's check it against the input value + // Ok, we have mu. Let's check it against the input value // of DH_F to see that we have some internal consistency doublereal Hcalc = m_Mu0_tr_pr + 298.15 * (m_Entrop_tr_pr * 1.0E3 * 4.184); doublereal DHjmol = m_deltaH_formation_tr_pr * 1.0E3 * 4.184; @@ -621,10 +615,9 @@ void PDSS_HKFT::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, throw CanteraError("PDSS_HKFT::initThermo","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + + // The phase object automatically constructs an XML object. Use this object + // to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id); @@ -691,7 +684,7 @@ doublereal PDSS_HKFT::deltaH() const return deltaH_calgmol * 1.0E3 * 4.184; } #endif -//================================================================================================================ + doublereal PDSS_HKFT::deltaG() const { doublereal pbar = m_pres * 1.0E-5; @@ -906,9 +899,7 @@ doublereal PDSS_HKFT::LookupGe(const std::string& elemName) void PDSS_HKFT::convertDGFormation() { - /* - * Ok let's get the element compositions and conversion factors. - */ + // Ok let's get the element compositions and conversion factors. doublereal totalSum = 0.0; for (size_t m = 0; m < m_tp->nElements(); m++) { double na = m_tp->nAtoms(m_spindex, m); diff --git a/src/thermo/PDSS_IdealGas.cpp b/src/thermo/PDSS_IdealGas.cpp index bca02d48d..db73d967e 100644 --- a/src/thermo/PDSS_IdealGas.cpp +++ b/src/thermo/PDSS_IdealGas.cpp @@ -48,10 +48,8 @@ PDSS_IdealGas::PDSS_IdealGas(VPStandardStateTP* tp, size_t spindex, const XML_No PDSS_IdealGas::PDSS_IdealGas(const PDSS_IdealGas& b) : PDSS(b) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -90,11 +88,9 @@ void PDSS_IdealGas::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, throw CanteraError("PDSS_IdealGas::constructPDSSFile","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + // The phase object automatically constructs an XML object. Use this object + // to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id); diff --git a/src/thermo/PDSS_IonsFromNeutral.cpp b/src/thermo/PDSS_IonsFromNeutral.cpp index f4d3a5e7b..f2449b593 100644 --- a/src/thermo/PDSS_IonsFromNeutral.cpp +++ b/src/thermo/PDSS_IonsFromNeutral.cpp @@ -63,10 +63,8 @@ PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(VPStandardStateTP* tp, size_t spindex PDSS_IonsFromNeutral::PDSS_IonsFromNeutral(const PDSS_IonsFromNeutral& b) : PDSS(b) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -78,11 +76,9 @@ PDSS_IonsFromNeutral& PDSS_IonsFromNeutral::operator=(const PDSS_IonsFromNeutral PDSS::operator=(b); - /* - * The shallow pointer copy in the next step will be insufficient in most cases. However, its - * functionally the best we can do for this assignment operator. We fix up the pointer in the - * initAllPtrs() function. - */ + // The shallow pointer copy in the next step will be insufficient in most + // cases. However, its functionally the best we can do for this assignment + // operator. We fix up the pointer in the initAllPtrs() function. neutralMoleculePhase_ = b.neutralMoleculePhase_; numMult_ = b.numMult_; @@ -178,10 +174,9 @@ void PDSS_IonsFromNeutral::constructPDSSFile(VPStandardStateTP* tp, size_t spind throw CanteraError("PDSS_IonsFromNeutral::constructPDSSFile","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + + // The phase object automatically constructs an XML object. Use this object + // to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id); @@ -340,9 +335,8 @@ doublereal PDSS_IonsFromNeutral::molarVolume_ref() const doublereal PDSS_IonsFromNeutral::temperature() const { - /* - * Obtain the temperature from the owning VPStandardStateTP object if you can. - */ + // Obtain the temperature from the owning VPStandardStateTP object if you + // can. m_temp = m_vpssmgr_ptr->temperature(); return m_temp; } diff --git a/src/thermo/PDSS_SSVol.cpp b/src/thermo/PDSS_SSVol.cpp index 2ec9650cd..72572f6c4 100644 --- a/src/thermo/PDSS_SSVol.cpp +++ b/src/thermo/PDSS_SSVol.cpp @@ -58,10 +58,8 @@ PDSS_SSVol::PDSS_SSVol(const PDSS_SSVol& b) : volumeModel_(cSSVOLUME_CONSTANT), m_constMolarVolume(-1.0) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -137,10 +135,9 @@ void PDSS_SSVol::constructPDSSFile(VPStandardStateTP* tp, size_t spindex, throw CanteraError("PDSS_SSVol::initThermo","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + + // The phase object automatically constructs an XML object. Use this object + // to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id); diff --git a/src/thermo/PDSS_Water.cpp b/src/thermo/PDSS_Water.cpp index a46a5efaf..d1b57b339 100644 --- a/src/thermo/PDSS_Water.cpp +++ b/src/thermo/PDSS_Water.cpp @@ -99,10 +99,8 @@ PDSS_Water::PDSS_Water(const PDSS_Water& b) : m_verbose(b.m_verbose), m_allowGasPhase(b.m_allowGasPhase) { - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -111,9 +109,7 @@ PDSS_Water& PDSS_Water::operator=(const PDSS_Water& b) if (&b == this) { return *this; } - /* - * Call the base class operator - */ + // Call the base class operator PDSS::operator=(b); m_sub = b.m_sub; @@ -154,10 +150,9 @@ void PDSS_Water::constructPDSSFile(VPStandardStateTP* tp, int spindex, throw CanteraError("PDSS_Water::initThermo","could not open " +path+" for reading."); } - /* - * The phase object automatically constructs an XML object. - * Use this object to store information. - */ + + // The phase object automatically constructs an XML object. Use this object + // to store information. XML_Node fxml; fxml.build(fin); XML_Node* fxml_phase = findXMLPhase(&fxml, id); @@ -171,15 +166,11 @@ void PDSS_Water::constructPDSSFile(VPStandardStateTP* tp, int spindex, void PDSS_Water::constructSet() { - /* - * Calculate the molecular weight. - * hard coded to Cantera's elements and Water. - */ + // Calculate the molecular weight. hard coded to Cantera's elements and + // Water. m_mw = 2 * 1.00794 + 15.9994; - /* - * Set the baseline - */ + // Set the baseline doublereal T = 298.15; m_p0 = OneAtm; doublereal presLow = 1.0E-2; @@ -202,10 +193,7 @@ void PDSS_Water::constructSet() } h = enthalpy_mole(); - /* - * Set the initial state of the system to 298.15 K and - * 1 bar. - */ + // Set the initial state of the system to 298.15 K and 1 bar. setTemperature(298.15); m_dens = m_sub.density(298.15, OneAtm, WATER_LIQUID); m_pres = OneAtm; diff --git a/src/thermo/Phase.cpp b/src/thermo/Phase.cpp index b60199d3e..7372a6d7d 100644 --- a/src/thermo/Phase.cpp +++ b/src/thermo/Phase.cpp @@ -78,12 +78,10 @@ Phase& Phase::operator=(const Phase& right) m_elementNames = right.m_elementNames; m_entropy298 = right.m_entropy298; m_elem_type = right.m_elem_type; - /* - * This is a little complicated. -> Because we delete m_xml - * in the destructor, we own m_xml completely, and we need - * to have our own individual copies of the XML data tree - * in each object - */ + + // This is a little complicated. -> Because we delete m_xml in the + // destructor, we own m_xml completely, and we need to have our own + // individual copies of the XML data tree in each object if (m_xml) { XML_Node* rroot = &m_xml->root(); delete rroot; @@ -327,9 +325,7 @@ void Phase::setMoleFractions(const doublereal* const x) { // Use m_y as a temporary work vector for the non-negative mole fractions doublereal norm = 0.0; - /* - * sum is calculated below as the unnormalized molecular weight - */ + // sum is calculated below as the unnormalized molecular weight doublereal sum = 0; for (size_t k = 0; k < m_kk; k++) { double xk = std::max(x[k], 0.0); // Ignore negative mole fractions @@ -337,24 +333,22 @@ void Phase::setMoleFractions(const doublereal* const x) norm += xk; sum += m_molwts[k] * xk; } - /* - * Set m_ym_ to the normalized mole fractions divided by the normalized mean molecular weight: - * m_ym_k = X_k / (sum_k X_k M_k) - */ + + // Set m_ym_ to the normalized mole fractions divided by the normalized mean + // molecular weight: + // m_ym_k = X_k / (sum_k X_k M_k) const doublereal invSum = 1.0/sum; for (size_t k=0; k < m_kk; k++) { m_ym[k] = m_y[k]*invSum; } - /* - * Now set m_y to the normalized mass fractions - * m_y = X_k M_k / (sum_k X_k M_k) - */ + + // Now set m_y to the normalized mass fractions: + // m_y = X_k M_k / (sum_k X_k M_k) for (size_t k=0; k < m_kk; k++) { m_y[k] = m_ym[k] * m_molwts[k]; } - /* - * Calculate the normalized molecular weight - */ + + // Calculate the normalized molecular weight m_mmw = sum/norm; m_stateNum++; } diff --git a/src/thermo/PhaseCombo_Interaction.cpp b/src/thermo/PhaseCombo_Interaction.cpp index 31324404c..f168f0c30 100644 --- a/src/thermo/PhaseCombo_Interaction.cpp +++ b/src/thermo/PhaseCombo_Interaction.cpp @@ -1,5 +1,5 @@ /** - * @file + * @file PhaseCombo_Interaction.cpp */ /* * Copyright (2009) Sandia Corporation. Under the terms of @@ -80,37 +80,27 @@ ThermoPhase* PhaseCombo_Interaction::duplMyselfAsThermoPhase() const return new PhaseCombo_Interaction(*this); } -/* - * -------------- Utilities ------------------------------- - */ +// -------------- Utilities ------------------------------- int PhaseCombo_Interaction::eosType() const { return cPhaseCombo_Interaction; } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// - Activities, Standard States, Activity Concentrations ----------- void PhaseCombo_Interaction::getActivityCoefficients(doublereal* ac) const { - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); - /* - * take the exp of the internally stored coefficients. - */ + // take the exp of the internally stored coefficients. for (size_t k = 0; k < m_kk; k++) { ac[k] = exp(lnActCoeff_Scaled_[k]); } } -/* - * ------------ Partial Molar Properties of the Solution ------------ - */ +// ------------ Partial Molar Properties of the Solution ------------ void PhaseCombo_Interaction::getElectrochemPotentials(doublereal* mu) const { @@ -123,16 +113,10 @@ void PhaseCombo_Interaction::getElectrochemPotentials(doublereal* mu) const void PhaseCombo_Interaction::getChemPotentials(doublereal* mu) const { - /* - * First get the standard chemical potentials in - * molar form. - * -> this requires updates of standard state as a function - * of T and P - */ + // First get the standard chemical potentials in molar form. This requires + // updates of standard state as a function of T and P getStandardChemPotentials(mu); - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { @@ -181,21 +165,16 @@ doublereal PhaseCombo_Interaction::cv_mole() const void PhaseCombo_Interaction::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * dimensionalize it. - */ + // dimensionalize it. double T = temperature(); for (size_t k = 0; k < m_kk; k++) { hbar[k] *= GasConstant * T; } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { @@ -205,24 +184,20 @@ void PhaseCombo_Interaction::getPartialMolarEnthalpies(doublereal* hbar) const void PhaseCombo_Interaction::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getCp_R(cpbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { cpbar[k] -= 2 * T * dlnActCoeffdT_Scaled_[k] + T * T * d2lnActCoeffdT2_Scaled_[k]; } - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } @@ -230,15 +205,12 @@ void PhaseCombo_Interaction::getPartialMolarCp(doublereal* cpbar) const void PhaseCombo_Interaction::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getEntropy_R(sbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); @@ -246,9 +218,8 @@ void PhaseCombo_Interaction::getPartialMolarEntropies(doublereal* sbar) const double xx = std::max(moleFractions_[k], SmallNumber); sbar[k] += - lnActCoeff_Scaled_[k] - log(xx) - T * dlnActCoeffdT_Scaled_[k]; } - /* - * dimensionalize it. - */ + + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } @@ -258,9 +229,7 @@ void PhaseCombo_Interaction::getPartialMolarVolumes(doublereal* vbar) const { double T = temperature(); - /* - * Get the standard state values in m^3 kmol-1 - */ + // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); for (size_t iK = 0; iK < m_kk; iK++) { @@ -303,10 +272,8 @@ void PhaseCombo_Interaction::initThermoXML(XML_Node& phaseNode, const std::strin "phasenode and Id are incompatible"); } - /* - * Check on the thermo field. Must have: - * - */ + // Check on the thermo field. Must have: + // if (!phaseNode.hasChild("thermo")) { throw CanteraError("PhaseCombo_Interaction::initThermoXML", "no thermo XML node"); @@ -318,10 +285,8 @@ void PhaseCombo_Interaction::initThermoXML(XML_Node& phaseNode, const std::strin "model name isn't PhaseCombo_Interaction: " + formString); } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the activityCoefficients + // XML block if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); string mString = acNode.attrib("model"); @@ -331,20 +296,17 @@ void PhaseCombo_Interaction::initThermoXML(XML_Node& phaseNode, const std::strin } for (size_t i = 0; i < acNode.nChildren(); i++) { XML_Node& xmlACChild = acNode.child(i); - /* - * Process a binary salt field, or any of the other XML fields - * that make up the Pitzer Database. Entries will be ignored - * if any of the species in the entry isn't in the solution. - */ + + // Process a binary salt field, or any of the other XML fields that + // make up the Pitzer Database. Entries will be ignored if any of + // the species in the entry isn't in the solution. if (lowercase(xmlACChild.name()) == "binaryneutralspeciesparameters") { readXMLBinarySpecies(xmlACChild); } } } - /* - * Go down the chain - */ + // Go down the chain GibbsExcessVPSSTP::initThermoXML(phaseNode, id); } @@ -354,18 +316,13 @@ void PhaseCombo_Interaction::s_update_lnActCoeff() const lnActCoeff_Scaled_.assign(m_kk, 0.0); for (size_t iK = 0; iK < m_kk; iK++) { - /* - * We never sample the end of the mole fraction domains - */ + // We never sample the end of the mole fraction domains double xx = std::max(moleFractions_[iK], SmallNumber); - /* - * First wipe out the ideal solution mixing term - */ + + // First wipe out the ideal solution mixing term lnActCoeff_Scaled_[iK] = - log(xx); - /* - * Then add in the Margules interaction terms. that's it! - */ + // Then add in the Margules interaction terms. that's it! for (size_t i = 0; i < numBinaryInteractions_; i++) { size_t iA = m_pSpecies_A_ij[i]; size_t iB = m_pSpecies_B_ij[i]; @@ -435,13 +392,10 @@ void PhaseCombo_Interaction::getdlnActCoeffds(const doublereal dTds, const doubl s_update_dlnActCoeff_dT(); for (size_t iK = 0; iK < m_kk; iK++) { - /* - * We never sample the end of the mole fraction domains - */ + // We never sample the end of the mole fraction domains double xx = std::max(moleFractions_[iK], SmallNumber); - /* - * First wipe out the ideal solution mixing term - */ + + // First wipe out the ideal solution mixing term if (xx > SmallNumber) { dlnActCoeffds[iK] += - 1.0 / xx; } @@ -477,13 +431,10 @@ void PhaseCombo_Interaction::s_update_dlnActCoeff_dlnN_diag() const for (size_t iK = 0; iK < m_kk; iK++) { double XK = moleFractions_[iK]; - /* - * We never sample the end of the mole fraction domains - */ + // We never sample the end of the mole fraction domains double xx = std::max(moleFractions_[iK], SmallNumber); - /* - * First wipe out the ideal solution mixing term - */ + + // First wipe out the ideal solution mixing term if (xx > SmallNumber) { dlnActCoeffdlnN_diag_[iK] = - 1.0 + xx; } @@ -515,13 +466,9 @@ void PhaseCombo_Interaction::s_update_dlnActCoeff_dlnN() const double T = temperature(); dlnActCoeffdlnN_.zero(); - /* - * Loop over the activity coefficient gamma_k - */ + // Loop over the activity coefficient gamma_k for (size_t iK = 0; iK < m_kk; iK++) { - /* - * We never sample the end of the mole fraction domains - */ + // We never sample the end of the mole fraction domains double xx = std::max(moleFractions_[iK], SmallNumber); for (size_t iM = 0; iM < m_kk; iM++) { double XM = moleFractions_[iM]; @@ -646,10 +593,9 @@ void PhaseCombo_Interaction::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) if (jName == "") { throw CanteraError("PhaseCombo_Interaction::readXMLBinarySpecies", "no speciesB attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species size_t iSpecies = speciesIndex(iName); if (iSpecies == npos) { return; @@ -675,13 +621,10 @@ void PhaseCombo_Interaction::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) for (size_t iChild = 0; iChild < xmLBinarySpecies.nChildren(); iChild++) { XML_Node& xmlChild = xmLBinarySpecies.child(iChild); string nodeName = lowercase(xmlChild.name()); - /* - * Process the binary species interaction child elements - */ + + // Process the binary species interaction child elements if (nodeName == "excessenthalpy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessEnthalpy"); if (vParams.size() != 2) { throw CanteraError("PhaseCombo_Interaction::readXMLBinarySpecies::excessEnthalpy for " + ispName @@ -693,9 +636,7 @@ void PhaseCombo_Interaction::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessentropy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessEntropy"); if (vParams.size() != 2) { throw CanteraError("PhaseCombo_Interaction::readXMLBinarySpecies::excessEntropy for " + ispName @@ -707,9 +648,7 @@ void PhaseCombo_Interaction::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessvolume_enthalpy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessVolume_Enthalpy"); if (vParams.size() != 2) { throw CanteraError("PhaseCombo_Interaction::readXMLBinarySpecies::excessVolume_Enthalpy for " + ispName @@ -721,9 +660,7 @@ void PhaseCombo_Interaction::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) } if (nodeName == "excessvolume_entropy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, vParams, true, "toSI", "excessVolume_Entropy"); if (vParams.size() != 2) { throw CanteraError("PhaseCombo_Interaction::readXMLBinarySpecies::excessVolume_Entropy for " + ispName diff --git a/src/thermo/RedlichKisterVPSSTP.cpp b/src/thermo/RedlichKisterVPSSTP.cpp index c96d57ccd..3ea0922f7 100644 --- a/src/thermo/RedlichKisterVPSSTP.cpp +++ b/src/thermo/RedlichKisterVPSSTP.cpp @@ -79,28 +79,19 @@ ThermoPhase* RedlichKisterVPSSTP::duplMyselfAsThermoPhase() const return new RedlichKisterVPSSTP(*this); } -/* - * - Activities, Standard States, Activity Concentrations ----------- - */ +// - Activities, Standard States, Activity Concentrations ----------- void RedlichKisterVPSSTP::getLnActivityCoefficients(doublereal* lnac) const { - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); - /* - * take the exp of the internally stored coefficients. - */ for (size_t k = 0; k < m_kk; k++) { lnac[k] = lnActCoeff_Scaled_[k]; } } -/* - * ------------ Partial Molar Properties of the Solution ------------ - */ +// ------------ Partial Molar Properties of the Solution ------------ void RedlichKisterVPSSTP::getElectrochemPotentials(doublereal* mu) const { @@ -113,16 +104,10 @@ void RedlichKisterVPSSTP::getElectrochemPotentials(doublereal* mu) const void RedlichKisterVPSSTP::getChemPotentials(doublereal* mu) const { - /* - * First get the standard chemical potentials in - * molar form. - * -> this requires updates of standard state as a function - * of T and P - */ + // First get the standard chemical potentials in molar form. This requires + // updates of standard state as a function of T and P getStandardChemPotentials(mu); - /* - * Update the activity coefficients - */ + // Update the activity coefficients s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { @@ -171,21 +156,16 @@ doublereal RedlichKisterVPSSTP::cv_mole() const void RedlichKisterVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * Get the nondimensional standard state enthalpies - */ + // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); - /* - * dimensionalize it. - */ + // dimensionalize it. double T = temperature(); for (size_t k = 0; k < m_kk; k++) { hbar[k] *= GasConstant * T; } - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { @@ -195,24 +175,18 @@ void RedlichKisterVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const void RedlichKisterVPSSTP::getPartialMolarCp(doublereal* cpbar) const { - /* - * Get the nondimensional standard state entropies - */ getCp_R(cpbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { cpbar[k] -= 2 * T * dlnActCoeffdT_Scaled_[k] + T * T * d2lnActCoeffdT2_Scaled_[k]; } - /* - * dimensionalize it. - */ + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } @@ -220,15 +194,12 @@ void RedlichKisterVPSSTP::getPartialMolarCp(doublereal* cpbar) const void RedlichKisterVPSSTP::getPartialMolarEntropies(doublereal* sbar) const { - /* - * Get the nondimensional standard state entropies - */ + // Get the nondimensional standard state entropies getEntropy_R(sbar); double T = temperature(); - /* - * Update the activity coefficients, This also update the - * internally stored molalities. - */ + + // Update the activity coefficients, This also update the internally stored + // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); @@ -236,9 +207,7 @@ void RedlichKisterVPSSTP::getPartialMolarEntropies(doublereal* sbar) const double xx = std::max(moleFractions_[k], SmallNumber); sbar[k] += - lnActCoeff_Scaled_[k] -log(xx) - T * dlnActCoeffdT_Scaled_[k]; } - /* - * dimensionalize it. - */ + // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } @@ -246,9 +215,7 @@ void RedlichKisterVPSSTP::getPartialMolarEntropies(doublereal* sbar) const void RedlichKisterVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { - /* - * Get the standard state values in m^3 kmol-1 - */ + // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); for (size_t iK = 0; iK < m_kk; iK++) { vbar[iK] += 0.0; @@ -273,10 +240,8 @@ void RedlichKisterVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& "phasenode and Id are incompatible"); } - /* - * Check on the thermo field. Must have: - * - */ + // Check on the thermo field. Must have: + // if (!phaseNode.hasChild("thermo")) { throw CanteraError("RedlichKisterVPSSTP::initThermoXML", "no thermo XML node"); @@ -288,10 +253,8 @@ void RedlichKisterVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& "Unknown thermo model: " + mString + " - This object only knows \"Redlich-Kister\" "); } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the activityCoefficients + // XML block if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); mString = acNode.attrib("model"); @@ -301,19 +264,16 @@ void RedlichKisterVPSSTP::initThermoXML(XML_Node& phaseNode, const std::string& } for (size_t i = 0; i < acNode.nChildren(); i++) { XML_Node& xmlACChild = acNode.child(i); - /* - * Process a binary salt field, or any of the other XML fields - * that make up the Pitzer Database. Entries will be ignored - * if any of the species in the entry isn't in the solution. - */ + + // Process a binary salt field, or any of the other XML fields that + // make up the Pitzer Database. Entries will be ignored if any of + // the species in the entry isn't in the solution. if (lowercase(xmlACChild.name()) == "binaryneutralspeciesparameters") { readXMLBinarySpecies(xmlACChild); } } } - /* - * Go down the chain - */ + // Go down the chain GibbsExcessVPSSTP::initThermoXML(phaseNode, id_); } @@ -322,11 +282,10 @@ void RedlichKisterVPSSTP::s_update_lnActCoeff() const doublereal T = temperature(); lnActCoeff_Scaled_.assign(m_kk, 0.0); - /* - * Scaling: I moved the division of RT higher so that we are always dealing with G/RT dimensionless terms - * within the routine. There is a severe problem with roundoff error in these calculations. The - * dimensionless terms help. - */ + // Scaling: I moved the division of RT higher so that we are always dealing + // with G/RT dimensionless terms within the routine. There is a severe + // problem with roundoff error in these calculations. The dimensionless + // terms help. for (size_t i = 0; i < numBinaryInteractions_; i++) { size_t iA = m_pSpecies_A_ij[i]; size_t iB = m_pSpecies_B_ij[i]; @@ -558,11 +517,10 @@ void RedlichKisterVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) if (jName == "") { throw CanteraError("RedlichKisterVPSSTP::readXMLBinarySpecies", "no speciesB attrib"); } - /* - * Find the index of the species in the current phase. It's not - * an error to not find the species. This means that the interaction doesn't occur for the current - * implementation of the phase. - */ + + // Find the index of the species in the current phase. It's not an error to + // not find the species. This means that the interaction doesn't occur for + // the current implementation of the phase. size_t iSpecies = speciesIndex(iName); if (iSpecies == npos) { return; @@ -579,9 +537,8 @@ void RedlichKisterVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) if (charge(jSpecies) != 0) { throw CanteraError("RedlichKisterVPSSTP::readXMLBinarySpecies", "speciesB charge problem"); } - /* - * Ok we have found a valid interaction - */ + + // Ok we have found a valid interaction numBinaryInteractions_++; size_t iSpot = numBinaryInteractions_ - 1; m_pSpecies_A_ij.resize(numBinaryInteractions_); @@ -592,21 +549,16 @@ void RedlichKisterVPSSTP::readXMLBinarySpecies(XML_Node& xmLBinarySpecies) for (size_t iChild = 0; iChild < xmLBinarySpecies.nChildren(); iChild++) { XML_Node& xmlChild = xmLBinarySpecies.child(iChild); string nodeName = lowercase(xmlChild.name()); - /* - * Process the binary species interaction child elements - */ + + // Process the binary species interaction child elements if (nodeName == "excessenthalpy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, hParams, true, "toSI", "excessEnthalpy"); Npoly = std::max(hParams.size(), Npoly); } if (nodeName == "excessentropy") { - /* - * Get the string containing all of the values - */ + // Get the string containing all of the values getFloatArray(xmlChild, sParams, true, "toSI", "excessEntropy"); Npoly = std::max(sParams.size(), Npoly); } diff --git a/src/thermo/RedlichKwongMFTP.cpp b/src/thermo/RedlichKwongMFTP.cpp index f9467efd5..e402f313a 100644 --- a/src/thermo/RedlichKwongMFTP.cpp +++ b/src/thermo/RedlichKwongMFTP.cpp @@ -78,14 +78,11 @@ RedlichKwongMFTP::RedlichKwongMFTP(const RedlichKwongMFTP& b) : RedlichKwongMFTP& RedlichKwongMFTP::operator=(const RedlichKwongMFTP& b) { if (&b != this) { - /* - * Mostly, this is a passthrough to the underlying - * assignment operator for the ThermoPhae parent object. - */ + // Mostly, this is a passthrough to the underlying assignment operator + // for the ThermoPhae parent object. MixtureFugacityTP::operator=(b); - /* - * However, we have to handle data that we own. - */ + + // However, we have to handle data that we own. m_standardMixingRules = b.m_standardMixingRules; m_formTempParam = b.m_formTempParam; m_b_current = b.m_b_current; @@ -121,9 +118,7 @@ int RedlichKwongMFTP::eosType() const return cRedlichKwongMFTP; } -/* - * ------------Molar Thermodynamic Properties ------------------------- - */ +// ------------Molar Thermodynamic Properties ------------------------- doublereal RedlichKwongMFTP::enthalpy_mole() const { @@ -190,16 +185,13 @@ doublereal RedlichKwongMFTP::pressure() const void RedlichKwongMFTP::calcDensity() { - /* - * Calculate the molarVolume of the solution (m**3 kmol-1) - */ + // Calculate the molarVolume of the solution (m**3 kmol-1) const doublereal* const dtmp = moleFractdivMMW(); getPartialMolarVolumes(m_tmpV.data()); double invDens = dot(m_tmpV.begin(), m_tmpV.end(), dtmp); - /* - * Set the density in the parent State object directly, - * by calling the Phase::setDensity() function. - */ + + // Set the density in the parent State object directly, by calling the + // Phase::setDensity() function. Phase::setDensity(1.0/invDens); } @@ -284,9 +276,7 @@ void RedlichKwongMFTP::getActivityCoefficients(doublereal* ac) const } } -/* - * ---- Partial Molar Properties of the Solution ----------------- - */ +// ---- Partial Molar Properties of the Solution ----------------- void RedlichKwongMFTP::getChemPotentials_RT(doublereal* muRT) const { @@ -332,15 +322,11 @@ void RedlichKwongMFTP::getChemPotentials(doublereal* mu) const void RedlichKwongMFTP::getPartialMolarEnthalpies(doublereal* hbar) const { - /* - * First we get the reference state contributions - */ + // First we get the reference state contributions getEnthalpy_RT_ref(hbar); scale(hbar, hbar+m_kk, hbar, RT()); - /* - * We calculate dpdni_ - */ + // We calculate dpdni_ doublereal TKelvin = temperature(); doublereal mv = molarVolume(); doublereal sqt = sqrt(TKelvin); @@ -572,14 +558,11 @@ void RedlichKwongMFTP::setToEquilState(const doublereal* mu_RT) _updateReferenceStateThermo(); getGibbs_RT_ref(m_tmpV.data()); - /* - * Within the method, we protect against inf results if the - * exponent is too high. - * - * If it is too low, we set - * the partial pressure to zero. This capability is needed - * by the elemental potential method. - */ + // Within the method, we protect against inf results if the exponent is too + // high. + // + // If it is too low, we set the partial pressure to zero. This capability is + // needed by the elemental potential method. doublereal pres = 0.0; double m_p0 = refPressure(); for (size_t k = 0; k < m_kk; k++) { @@ -620,12 +603,10 @@ void RedlichKwongMFTP::initThermoXML(XML_Node& phaseNode, const std::string& id) { RedlichKwongMFTP::initLengths(); - /* - * Check the model parameter for the Redlich-Kwong equation of state - * two are allowed - * RedlichKwong mixture of species, each of which are RK fluids - * RedlichKwongMFTP mixture of species with cross term coefficients - */ + // Check the model parameter for the Redlich-Kwong equation of state + // two are allowed + // RedlichKwong mixture of species, each of which are RK fluids + // RedlichKwongMFTP mixture of species with cross term coefficients if (phaseNode.hasChild("thermo")) { XML_Node& thermoNode = phaseNode.child("thermo"); std::string model = thermoNode["model"]; @@ -638,29 +619,20 @@ void RedlichKwongMFTP::initThermoXML(XML_Node& phaseNode, const std::string& id) "Unknown thermo model : " + model); } - /* - * Go get all of the coefficients and factors in the - * activityCoefficients XML block - */ + // Go get all of the coefficients and factors in the + // activityCoefficients XML block XML_Node* acNodePtr = 0; if (thermoNode.hasChild("activityCoefficients")) { XML_Node& acNode = thermoNode.child("activityCoefficients"); acNodePtr = &acNode; size_t nC = acNode.nChildren(); - /* - * Loop through the children getting multiple instances of - * parameters - */ + // Loop through the children getting multiple instances of + // parameters for (size_t i = 0; i < nC; i++) { XML_Node& xmlACChild = acNodePtr->child(i); string stemp = xmlACChild.name(); string nodeName = lowercase(stemp); - /* - * Process a binary salt field, or any of the other XML fields - * that make up the Pitzer Database. Entries will be ignored - * if any of the species in the entry isn't in the solution. - */ if (nodeName == "purefluidparameters") { readXMLPureFluid(xmlACChild); } @@ -668,19 +640,13 @@ void RedlichKwongMFTP::initThermoXML(XML_Node& phaseNode, const std::string& id) if (m_standardMixingRules == 1) { applyStandardMixingRules(); } - /* - * Loop through the children getting multiple instances of - * parameters - */ + + // Loop through the children getting multiple instances of + // parameters for (size_t i = 0; i < nC; i++) { XML_Node& xmlACChild = acNodePtr->child(i); string stemp = xmlACChild.name(); string nodeName = lowercase(stemp); - /* - * Process a binary salt field, or any of the other XML fields - * that make up the Pitzer Database. Entries will be ignored - * if any of the species in the entry isn't in the solution. - */ if (nodeName == "crossfluidparameters") { readXMLCrossFluid(xmlACChild); } @@ -708,10 +674,8 @@ void RedlichKwongMFTP::readXMLPureFluid(XML_Node& pureFluidParam) "Incorrect name for processing this routine: " + xname); } - /* - * Read the species - * Find the index of the species in the current phase. It's not an error to not find the species - */ + // Read the species. Find the index of the species in the current phase. + // It's not an error to not find the species string iName = pureFluidParam.attrib("species"); if (iName == "") { throw CanteraError("RedlichKwongMFTP::readXMLPureFluid", "no species attribute"); @@ -789,10 +753,8 @@ void RedlichKwongMFTP::readXMLCrossFluid(XML_Node& CrossFluidParam) "Incorrect name for processing this routine: " + xname); } - /* - * Read the species - * Find the index of the species in the current phase. It's not an error to not find the species - */ + // Read the species. Find the index of the species in the current phase. + // It's not an error to not find the species string iName = CrossFluidParam.attrib("species1"); if (iName == "") { throw CanteraError("RedlichKwongMFTP::readXMLCrossFluid", "no species1 attribute"); @@ -918,9 +880,7 @@ doublereal RedlichKwongMFTP::liquidVolEst(doublereal TKelvin, doublereal& presGu doublereal RedlichKwongMFTP::densityCalc(doublereal TKelvin, doublereal presPa, int phaseRequested, doublereal rhoguess) { - /* - * It's necessary to set the temperature so that m_a_current is set correctly. - */ + // It's necessary to set the temperature so that m_a_current is set correctly. setTemperature(TKelvin); double tcrit = critTemperature(); doublereal mmw = meanMolecularWeight(); @@ -937,10 +897,8 @@ doublereal RedlichKwongMFTP::densityCalc(doublereal TKelvin, doublereal presPa, } } } else { - /* - * Assume the Gas phase initial guess, if nothing is - * specified to the routine - */ + // Assume the Gas phase initial guess, if nothing is specified to + // the routine rhoguess = presPa * mmw / (GasConstant * TKelvin); } } @@ -1179,9 +1137,8 @@ int RedlichKwongMFTP::NicholsSolve(double TKelvin, double pres, doublereal a, do if (TKelvin <= 0.0) { throw CanteraError("RedlichKwongMFTP::NicholsSolve()", "neg temperature"); } - /* - * Derive the coefficients of the cubic polynomial to solve. - */ + + // Derive the coefficients of the cubic polynomial to solve. doublereal an = 1.0; doublereal bn = - GasConstant * TKelvin / pres; doublereal sqt = sqrt(TKelvin); @@ -1196,7 +1153,8 @@ int RedlichKwongMFTP::NicholsSolve(double TKelvin, double pres, doublereal a, do // Derive the center of the cubic, x_N doublereal xN = - bn /(3 * an); - // Derive the value of delta**2. This is a key quantity that determines the number of turning points + // Derive the value of delta**2. This is a key quantity that determines the + // number of turning points doublereal delta2 = (bn * bn - 3 * an * cn) / (9 * an * an); doublereal delta = 0.0; @@ -1248,9 +1206,7 @@ int RedlichKwongMFTP::NicholsSolve(double TKelvin, double pres, doublereal a, do nSolnValues = 1; } - /* - * One real root -> have to determine whether gas or liquid is the root - */ + // One real root -> have to determine whether gas or liquid is the root if (desc > 0.0) { doublereal tmpD = sqrt(desc); doublereal tmp1 = (- yN + tmpD) / (2.0 * an); @@ -1325,9 +1281,8 @@ int RedlichKwongMFTP::NicholsSolve(double TKelvin, double pres, doublereal a, do } } - /* - * Unfortunately, there is a heavy amount of roundoff error due to bad conditioning in this - */ + // Unfortunately, there is a heavy amount of roundoff error due to bad + // conditioning in this double res, dresdV = 0.0; for (int i = 0; i < nSolnValues; i++) { for (int n = 0; n < 20; n++) { diff --git a/src/thermo/SingleSpeciesTP.cpp b/src/thermo/SingleSpeciesTP.cpp index dfc2e7aba..d7385e781 100644 --- a/src/thermo/SingleSpeciesTP.cpp +++ b/src/thermo/SingleSpeciesTP.cpp @@ -54,9 +54,7 @@ int SingleSpeciesTP::eosType() const throw NotImplementedError("SingleSpeciesTP::eosType"); } -/* - * ------------ Molar Thermodynamic Properties -------------------- - */ +// ------------ Molar Thermodynamic Properties -------------------- doublereal SingleSpeciesTP::enthalpy_mole() const { @@ -82,11 +80,9 @@ doublereal SingleSpeciesTP::entropy_mole() const doublereal SingleSpeciesTP::gibbs_mole() const { double gbar; - /* - * Get the chemical potential of the first species. - * This is the same as the partial molar Gibbs - * free energy. - */ + + // Get the chemical potential of the first species. This is the same as the + // partial molar Gibbs free energy. getChemPotentials(&gbar); return gbar; } @@ -94,11 +90,9 @@ doublereal SingleSpeciesTP::gibbs_mole() const doublereal SingleSpeciesTP::cp_mole() const { double cpbar; - /* - * Really should have a partial molar heat capacity - * function in ThermoPhase. However, the standard - * state heat capacity will do fine here for now. - */ + + // Really should have a partial molar heat capacity function in ThermoPhase. + // However, the standard state heat capacity will do fine here for now. getCp_R(&cpbar); cpbar *= GasConstant; return cpbar; @@ -106,15 +100,13 @@ doublereal SingleSpeciesTP::cp_mole() const doublereal SingleSpeciesTP::cv_mole() const { - /* - * For single species, we go directory to the general Cp - Cv relation - * - * Cp = Cv + alpha**2 * V * T / beta - * - * where - * alpha = volume thermal expansion coefficient - * beta = isothermal compressibility - */ + // For single species, we go directory to the general Cp - Cv relation + // + // Cp = Cv + alpha**2 * V * T / beta + // + // where + // alpha = volume thermal expansion coefficient + // beta = isothermal compressibility doublereal cvbar = cp_mole(); doublereal alpha = thermalExpansionCoeff(); doublereal beta = isothermalCompressibility(); @@ -126,9 +118,7 @@ doublereal SingleSpeciesTP::cv_mole() const return cvbar; } -/* - * ----------- Partial Molar Properties of the Solution ----------------- - */ +// ----------- Partial Molar Properties of the Solution ----------------- void SingleSpeciesTP::getChemPotentials(doublereal* mu) const { @@ -175,9 +165,7 @@ void SingleSpeciesTP::getPartialMolarVolumes(doublereal* vbar) const vbar[0] = molecularWeight(0) / density(); } -/* - * Properties of the Standard State of the Species in the Solution - */ +// Properties of the Standard State of the Species in the Solution void SingleSpeciesTP::getPureGibbs(doublereal* gpure) const { @@ -190,9 +178,7 @@ void SingleSpeciesTP::getStandardVolumes(doublereal* vbar) const vbar[0] = molecularWeight(0) / density(); } -/* - * ---- Thermodynamic Values for the Species Reference States ------- - */ +// ---- Thermodynamic Values for the Species Reference States ------- void SingleSpeciesTP::getEnthalpy_RT_ref(doublereal* hrt) const { @@ -224,9 +210,7 @@ void SingleSpeciesTP::getCp_R_ref(doublereal* cpr) const cpr[0] = m_cp0_R[0]; } -/* - * ------------------ Setting the State ------------------------ - */ +// ------------------ Setting the State ------------------------ void SingleSpeciesTP::setState_HP(doublereal h, doublereal p, doublereal tol) @@ -299,29 +283,22 @@ void SingleSpeciesTP::setState_SV(doublereal s, doublereal v, void SingleSpeciesTP::initThermo() { - /* - * Make sure there is one and only one species in this phase. - */ + // Make sure there is one and only one species in this phase. if (nSpecies() != 1) { throw CanteraError("initThermo", "stoichiometric substances may only contain one species."); } - /* - * Resize temporary arrays. - */ + // Resize temporary arrays. m_h0_RT.resize(1); m_cp0_R.resize(1); m_s0_R.resize(1); - /* - * Make sure the species mole fraction is equal to 1.0; - */ + // Make sure the species mole fraction is equal to 1.0; double x = 1.0; ThermoPhase::setMoleFractions(&x); - /* - * Call the base class initThermo object. - */ + + // Call the base class initThermo object. ThermoPhase::initThermo(); } diff --git a/src/thermo/SpeciesThermoFactory.cpp b/src/thermo/SpeciesThermoFactory.cpp index b093082b3..c1c821374 100644 --- a/src/thermo/SpeciesThermoFactory.cpp +++ b/src/thermo/SpeciesThermoFactory.cpp @@ -173,16 +173,14 @@ SpeciesThermoInterpType* newShomateForMineralEQ3(const XML_Node& MinEQ3node) doublereal e = Entrop_pr_tr * 1.0E3 * 4.184; doublereal Hcalc = Mu0_tr_pr + 298.15 * e; - /* - * Now calculate the shomate polynomials - * - * Cp first - * - * Shomate: (Joules / gmol / K) - * Cp = As + Bs * t + Cs * t*t + Ds * t*t*t + Es / (t*t) - * where - * t = temperature(Kelvin) / 1000 - */ + // Now calculate the shomate polynomials + // + // Cp first + // + // Shomate: (Joules / gmol / K) + // Cp = As + Bs * t + Cs * t*t + Ds * t*t*t + Es / (t*t) + // where + // t = temperature(Kelvin) / 1000 double As = a * 4.184; double Bs = b * 4.184 * 1000.; double Cs = 0.0; @@ -382,9 +380,10 @@ static SpeciesThermoInterpType* newAdsorbateThermoFromXML(const XML_Node& f) SpeciesThermoInterpType* newSpeciesThermoInterpType(const XML_Node& thermo) { - // Get the children of the thermo XML node. In the next bit of code we take out the comments that - // may have been children of the thermo XML node by doing a selective copy. - // These shouldn't interfere with the algorithm at any point. + // Get the children of the thermo XML node. In the next bit of code we take + // out the comments that may have been children of the thermo XML node by + // doing a selective copy. These shouldn't interfere with the algorithm at + // any point. const std::vector& tpWC = thermo.children(); std::vector tp; for (size_t i = 0; i < tpWC.size(); i++) { diff --git a/src/thermo/StoichSubstance.cpp b/src/thermo/StoichSubstance.cpp index e08a4ea66..a010f1b9f 100644 --- a/src/thermo/StoichSubstance.cpp +++ b/src/thermo/StoichSubstance.cpp @@ -20,9 +20,7 @@ namespace Cantera { -/* - * ---- Constructors ------- - */ +// ---- Constructors ------- StoichSubstance::StoichSubstance(const std::string& infile, const std::string& id_) { @@ -53,18 +51,14 @@ ThermoPhase* StoichSubstance::duplMyselfAsThermoPhase() const return new StoichSubstance(*this); } -/* - * ---- Utilities ----- - */ +// ---- Utilities ----- int StoichSubstance::eosType() const { return cStoichSubstance; } -/* - * ----- Mechanical Equation of State ------ - */ +// ----- Mechanical Equation of State ------ doublereal StoichSubstance::pressure() const { @@ -86,9 +80,7 @@ doublereal StoichSubstance::thermalExpansionCoeff() const return 0.0; } -/* - * ---- Chemical Potentials and Activities ---- - */ +// ---- Chemical Potentials and Activities ---- void StoichSubstance::getActivityConcentrations(doublereal* c) const { @@ -105,9 +97,7 @@ doublereal StoichSubstance::logStandardConc(size_t k) const return 0.0; } -/* - * Properties of the Standard State of the Species in the Solution - */ +// Properties of the Standard State of the Species in the Solution void StoichSubstance::getStandardChemPotentials(doublereal* mu0) const { @@ -145,9 +135,7 @@ void StoichSubstance::getIntEnergy_RT(doublereal* urt) const urt[0] = m_h0_RT[0] - m_p0 / molarDensity() / (GasConstant * temperature()); } -/* - * ---- Thermodynamic Values for the Species Reference States ---- - */ +// ---- Thermodynamic Values for the Species Reference States ---- void StoichSubstance::getIntEnergy_RT_ref(doublereal* urt) const { @@ -155,42 +143,32 @@ void StoichSubstance::getIntEnergy_RT_ref(doublereal* urt) const urt[0] = m_h0_RT[0] - m_p0 / molarDensity() / (GasConstant * temperature()); } -/* - * ---- Initialization and Internal functions - */ +// ---- Initialization and Internal functions void StoichSubstance::initThermo() { - /* - * Make sure there is one and only one species in this phase. - */ + // Make sure there is one and only one species in this phase. if (m_kk != 1) { throw CanteraError("initThermo", "stoichiometric substances may only contain one species."); } - /* - * Store the reference pressure in the variables for the class. - */ + + // Store the reference pressure in the variables for the class. m_p0 = refPressure(); - /* - * Resize temporary arrays. - */ + // Resize temporary arrays. int leng = 1; m_h0_RT.resize(leng); m_cp0_R.resize(leng); m_s0_R.resize(leng); - /* - * Call the base class thermo initializer - */ + + // Call the base class thermo initializer SingleSpeciesTP::initThermo(); } void StoichSubstance::initThermoXML(XML_Node& phaseNode, const std::string& id_) { - /* - * Find the Thermo XML node - */ + // Find the Thermo XML node if (!phaseNode.hasChild("thermo")) { throw CanteraError("StoichSubstance::initThermoXML", "no thermo XML node"); diff --git a/src/thermo/SurfPhase.cpp b/src/thermo/SurfPhase.cpp index 0e8dba272..7af11ce37 100644 --- a/src/thermo/SurfPhase.cpp +++ b/src/thermo/SurfPhase.cpp @@ -273,10 +273,7 @@ void SurfPhase::setCoverages(const doublereal* theta) for (size_t k = 0; k < m_kk; k++) { m_work[k] = m_n0*theta[k]/(sum*size(k)); } - /* - * Call the Phase:: class function - * setConcentrations. - */ + // Call the Phase:: class function setConcentrations. setConcentrations(m_work.data()); } @@ -285,10 +282,7 @@ void SurfPhase::setCoveragesNoNorm(const doublereal* theta) for (size_t k = 0; k < m_kk; k++) { m_work[k] = m_n0*theta[k]/size(k); } - /* - * Call the Phase:: class function - * setConcentrations. - */ + // Call the Phase:: class function setConcentrations. setConcentrations(m_work.data()); } diff --git a/src/thermo/ThermoFactory.cpp b/src/thermo/ThermoFactory.cpp index 5550abc3a..33452c140 100644 --- a/src/thermo/ThermoFactory.cpp +++ b/src/thermo/ThermoFactory.cpp @@ -188,14 +188,17 @@ ThermoPhase* newPhase(const std::string& infile, std::string id) //! Gather a vector of pointers to XML_Nodes for a phase /*! - * @param spDataNodeList Output vector of pointer to XML_Nodes which contain the species XML_Nodes for the - * species in the current phase. - * @param spNamesList Output Vector of strings, which contain the names of the species in the phase - * @param spRuleList Output Vector of ints, which contain the value of sprule for each species in the phase - * @param spArray_names Vector of pointers to the XML_Nodes which contains the names of the - * species in the phase - * @param spArray_dbases Input vector of pointers to species data bases. - * We search each data base for the required species names + * @param spDataNodeList Output vector of pointer to XML_Nodes which contain + * the species XML_Nodes for the species in the current phase. + * @param spNamesList Output Vector of strings, which contain the names + * of the species in the phase + * @param spRuleList Output Vector of ints, which contain the value of + * sprule for each species in the phase + * @param spArray_names Vector of pointers to the XML_Nodes which contains + * the names of the species in the phase + * @param spArray_dbases Input vector of pointers to species data bases. We + * search each data base for the required species + * names * @param sprule Input vector of sprule values */ static void formSpeciesXMLNodeList(std::vector &spDataNodeList, @@ -220,8 +223,8 @@ static void formSpeciesXMLNodeList(std::vector &spDataNodeList, size_t nsp = spnames.size(); // if 'all' is specified as the one and only species in the - // spArray_names field, then add all species - // defined in the corresponding database to the phase + // spArray_names field, then add all species defined in the + // corresponding database to the phase if (nsp == 1 && spnames[0] == "all") { std::vector allsp = db->getChildren("species"); nsp = allsp.size(); @@ -304,13 +307,10 @@ void importPhase(XML_Node& phase, ThermoPhase* th) ", is not a phase element."); } - /* - * In this section of code, we get the reference to the - * phase XML tree within the ThermoPhase object. Then, - * we clear it and fill it with the current information that - * we are about to use to construct the object. We will then - * be able to resurrect the information later by calling xml(). - */ + // In this section of code, we get the reference to the phase XML tree + // within the ThermoPhase object. Then, we clear it and fill it with the + // current information that we are about to use to construct the object. We + // will then be able to resurrect the information later by calling xml(). th->setXMLdata(phase); // set the id attribute of the phase to the 'id' attribute in the XML tree. @@ -330,9 +330,9 @@ void importPhase(XML_Node& phase, ThermoPhase* th) th->setNDim(3); // default } - // Set equation of state parameters. The parameters are - // specific to each subclass of ThermoPhase, so this is done - // by method setParametersFromXML in each subclass. + // Set equation of state parameters. The parameters are specific to each + // subclass of ThermoPhase, so this is done by method setParametersFromXML + // in each subclass. const XML_Node& eos = phase.child("thermo"); if (phase.hasChild("thermo")) { th->setParametersFromXML(eos); @@ -352,20 +352,15 @@ void importPhase(XML_Node& phase, ThermoPhase* th) } } - /*************************************************************** - * Add the elements. - ***************************************************************/ + // Add the elements. if (ssConvention != cSS_CONVENTION_SLAVE) { installElements(*th, phase); } - /*************************************************************** - * Add the species. - * - * Species definitions may be imported from multiple - * sources. For each one, a speciesArray element must be - * present. - ***************************************************************/ + // Add the species. + // + // Species definitions may be imported from multiple sources. For each one, + // a speciesArray element must be present. vector sparrays = phase.getChildren("speciesArray"); if (ssConvention != cSS_CONVENTION_SLAVE && sparrays.empty()) { throw CanteraError("importPhase", @@ -404,11 +399,9 @@ void importPhase(XML_Node& phase, ThermoPhase* th) } } - // Get a pointer to the node containing the species - // definitions for the species declared in this - // speciesArray element. This may be in the local file - // containing the phase element, or may be in another - // file. + // Get a pointer to the node containing the species definitions for the + // species declared in this speciesArray element. This may be in the + // local file containing the phase element, or may be in another file. XML_Node* db = get_XML_Node(speciesArray["datasrc"], &phase.root()); if (db == 0) { throw CanteraError("importPhase()", @@ -420,10 +413,10 @@ void importPhase(XML_Node& phase, ThermoPhase* th) dbases.push_back(db); } - // Now, collect all the species names and all the XML_Node * pointers - // for those species in a single vector. This is where we decide what - // species are to be included in the phase. - // The logic is complicated enough that we put it in a separate routine. + // Now, collect all the species names and all the XML_Node * pointers for + // those species in a single vector. This is where we decide what species + // are to be included in the phase. The logic is complicated enough that we + // put it in a separate routine. std::vector spDataNodeList; std::vector spNamesList; vector_int spRuleList; @@ -463,8 +456,8 @@ void importPhase(XML_Node& phase, ThermoPhase* th) // initialization. th->initThermo(); - // Perform any required subclass-specific initialization - // that requires the XML phase object + // Perform any required subclass-specific initialization that requires the + // XML phase object std::string id = ""; th->initThermoXML(phase, id); } diff --git a/src/thermo/ThermoPhase.cpp b/src/thermo/ThermoPhase.cpp index 01da161b9..c3dc49f7a 100644 --- a/src/thermo/ThermoPhase.cpp +++ b/src/thermo/ThermoPhase.cpp @@ -50,43 +50,31 @@ ThermoPhase::ThermoPhase(const ThermoPhase& right) : m_chargeNeutralityNecessary(false), m_ssConvention(cSS_CONVENTION_TEMPERATURE) { - /* - * Call the assignment operator - */ + // Call the assignment operator *this = right; } ThermoPhase& ThermoPhase::operator=(const ThermoPhase& right) { - /* - * Check for self assignment. - */ + // Check for self assignment. if (this == &right) { return *this; } - /* - * We need to destruct first - */ + // We need to destruct first for (size_t k = 0; k < m_speciesData.size(); k++) { delete m_speciesData[k]; } delete m_spthermo; - /* - * Call the base class assignment operator - */ + // Call the base class assignment operator Phase::operator=(right); - /* - * Pointer to the species thermodynamic property manager - * We own this, so we need to do a deep copy - */ + // Pointer to the species thermodynamic property manager + // We own this, so we need to do a deep copy m_spthermo = (right.m_spthermo)->duplMyselfAsSpeciesThermo(); - /* - * Do a deep copy of species Data, because we own this - */ + // Do a deep copy of species Data, because we own this m_speciesData.resize(m_kk); for (size_t k = 0; k < m_kk; k++) { m_speciesData[k] = new XML_Node(*(right.m_speciesData[k])); @@ -291,9 +279,8 @@ void ThermoPhase::setState_HPorUV(doublereal Htarget, doublereal p, double Tbot = Tnew; bool ignoreBounds = false; - // Unstable phases are those for which - // cp < 0.0. These are possible for cases where - // we have passed the spinodal curve. + // Unstable phases are those for which cp < 0.0. These are possible for + // cases where we have passed the spinodal curve. bool unstablePhase = false; // Counter indicating the last temperature point where the // phase was unstable @@ -315,9 +302,8 @@ void ThermoPhase::setState_HPorUV(doublereal Htarget, doublereal p, // Calculate the new T Tnew = Told + dt; - // Limit the step size so that we are convergent - // This is the step that makes it different from a - // Newton's algorithm + // Limit the step size so that we are convergent This is the step that + // makes it different from a Newton's algorithm if ((dt > 0.0 && unstablePhase) || (dt <= 0.0 && !unstablePhase)) { if (Hbot < Htarget && Tnew < (0.75 * Tbot + 0.25 * Told)) { dt = 0.75 * (Tbot - Told); @@ -404,10 +390,9 @@ void ThermoPhase::setState_HPorUV(doublereal Htarget, doublereal p, } } // We are here when there hasn't been convergence - /* - * Formulate a detailed error message, since questions seem to - * arise often about the lack of convergence. - */ + + // Formulate a detailed error message, since questions seem to arise often + // about the lack of convergence. string ErrString = "No convergence in 500 iterations\n"; if (doUV) { ErrString += fmt::format( @@ -495,9 +480,8 @@ void ThermoPhase::setState_SPorSV(doublereal Starget, doublereal p, double Tbot = Tnew; bool ignoreBounds = false; - // Unstable phases are those for which - // Cp < 0.0. These are possible for cases where - // we have passed the spinodal curve. + // Unstable phases are those for which Cp < 0.0. These are possible for + // cases where we have passed the spinodal curve. bool unstablePhase = false; double Tunstable = -1.0; bool unstablePhaseNew = false; @@ -592,10 +576,9 @@ void ThermoPhase::setState_SPorSV(doublereal Starget, doublereal p, } } // We are here when there hasn't been convergence - /* - * Formulate a detailed error message, since questions seem to - * arise often about the lack of convergence. - */ + + // Formulate a detailed error message, since questions seem to arise often + // about the lack of convergence. string ErrString = "No convergence in 500 iterations\n"; if (doSV) { ErrString += fmt::format( @@ -848,9 +831,7 @@ void ThermoPhase::getdlnActCoeffdlnN_numderiv(const size_t ld, doublereal* const double deltaMoles_j = 0.0; double pres = pressure(); - /* - * Evaluate the current base activity coefficients if necessary - */ + // Evaluate the current base activity coefficients if necessary vector_fp ActCoeff_Base(m_kk); getActivityCoefficients(ActCoeff_Base.data()); vector_fp Xmol_Base(m_kk); @@ -862,56 +843,40 @@ void ThermoPhase::getdlnActCoeffdlnN_numderiv(const size_t ld, doublereal* const double v_totalMoles = 1.0; double TMoles_base = v_totalMoles; - /* - * Loop over the columns species to be deltad - */ + // Loop over the columns species to be deltad for (size_t j = 0; j < m_kk; j++) { - /* - * Calculate a value for the delta moles of species j - * -> NOte Xmol_[] and Tmoles are always positive or zero - * quantities. - * -> experience has shown that you always need to make the deltas greater than needed to - * change the other mole fractions in order to capture some effects. - */ + // Calculate a value for the delta moles of species j + // -> Note Xmol_[] and Tmoles are always positive or zero quantities. + // -> experience has shown that you always need to make the deltas + // greater than needed to change the other mole fractions in order + // to capture some effects. double moles_j_base = v_totalMoles * Xmol_Base[j]; deltaMoles_j = 1.0E-7 * moles_j_base + v_totalMoles * 1.0E-13 + 1.0E-150; - /* - * Now, update the total moles in the phase and all of the - * mole fractions based on this. - */ + + // Now, update the total moles in the phase and all of the mole + // fractions based on this. v_totalMoles = TMoles_base + deltaMoles_j; for (size_t k = 0; k < m_kk; k++) { Xmol[k] = Xmol_Base[k] * TMoles_base / v_totalMoles; } Xmol[j] = (moles_j_base + deltaMoles_j) / v_totalMoles; - /* - * Go get new values for the activity coefficients. - * -> Note this calls setState_PX(); - */ + // Go get new values for the activity coefficients. + // -> Note this calls setState_PX(); setState_PX(pres, Xmol.data()); getActivityCoefficients(ActCoeff.data()); - /* - * Calculate the column of the matrix - */ + // Calculate the column of the matrix double* const lnActCoeffCol = dlnActCoeffdlnN + ld * j; for (size_t k = 0; k < m_kk; k++) { lnActCoeffCol[k] = (2*moles_j_base + deltaMoles_j) *(ActCoeff[k] - ActCoeff_Base[k]) / ((ActCoeff[k] + ActCoeff_Base[k]) * deltaMoles_j); } - /* - * Revert to the base case Xmol_, v_totalMoles - */ + // Revert to the base case Xmol_, v_totalMoles v_totalMoles = TMoles_base; Xmol = Xmol_Base; } - /* - * Go get base values for the activity coefficients. - * -> Note this calls setState_TPX() again; - * -> Just wanted to make sure that cantera is in sync - * with VolPhase after this call. - */ + setState_PX(pres, Xmol_Base.data()); } diff --git a/src/thermo/VPSSMgr.cpp b/src/thermo/VPSSMgr.cpp index 50df91c95..38ced50c1 100644 --- a/src/thermo/VPSSMgr.cpp +++ b/src/thermo/VPSSMgr.cpp @@ -63,19 +63,19 @@ VPSSMgr& VPSSMgr::operator=(const VPSSMgr& right) return *this; } m_kk = right.m_kk; - /* - * What we are doing here is to make a shallow copy of the VPStandardStateTP - * pointer in the "new" VPSSMgr object using the value from the "old" - * VPSSMgr object. This is not appropriate if we are making a copy of a ThermoPhase - * object and the VPSSMgr objects are owned by the ThermoPhase object. - * - * The new object will want to have a different value of m_vptp_ptr than the - * value this is being copied here. It will want to refer to the copy of the - * VPStandardStateTP object being made that will own the new VPSSMgr object. - * However, the assignment object is not the place to carry out this fixup. - * - * We will have to "fix" up the shallow copies later. - */ + + // What we are doing here is to make a shallow copy of the VPStandardStateTP + // pointer in the "new" VPSSMgr object using the value from the "old" + // VPSSMgr object. This is not appropriate if we are making a copy of a + // ThermoPhase object and the VPSSMgr objects are owned by the ThermoPhase + // object. + // + // The new object will want to have a different value of m_vptp_ptr than the + // value this is being copied here. It will want to refer to the copy of the + // VPStandardStateTP object being made that will own the new VPSSMgr object. + // However, the assignment object is not the place to carry out this fixup. + // + // We will have to "fix" up the shallow copies later. m_vptp_ptr = right.m_vptp_ptr; m_spthermo = right.m_spthermo; m_tlast = -1.0; @@ -212,6 +212,7 @@ const vector_fp& VPSSMgr::getStandardVolumes() const } /*****************************************************************/ + void VPSSMgr::getEnthalpy_RT_ref(doublereal* hrt) const { if (m_useTmpRefStateStorage) { @@ -387,6 +388,7 @@ PDSS* VPSSMgr::createInstallPDSS(size_t k, const XML_Node& s, } /*****************************************************************/ + doublereal VPSSMgr::minTemp(size_t k) const { if (k != npos) { @@ -416,7 +418,6 @@ PDSS_enumType VPSSMgr::reportPDSSType(int index) const throw NotImplementedError("VPSSMgr::reportPDSSType()"); } - VPSSMgr_enumType VPSSMgr::reportVPSSMgrType() const { throw NotImplementedError("VPSSMgr::reportVPSSType()"); diff --git a/src/thermo/VPSSMgrFactory.h b/src/thermo/VPSSMgrFactory.h index 9ea0a4f1d..be158da43 100644 --- a/src/thermo/VPSSMgrFactory.h +++ b/src/thermo/VPSSMgrFactory.h @@ -41,26 +41,20 @@ public: //! Factory to build instances of classes that manage the //! standard-state thermodynamic properties of a set of species. /*! - * This class is responsible for making the decision concerning - * which derivative of VPSSMgr object to use. - * The VPSSMgr object is used to calculate - * thermodynamic functions for the standard state. - * It queries the database of species to understand what - * the requirements are for the submodels for all of the - * species in the phase. Then, it picks the derived VPSSMgr - * object to use and passes it back to the calling routine. - * It doesn't load any data into the derived - * VPSSMgr object. + * This class is responsible for making the decision concerning which + * derivative of VPSSMgr object to use. The VPSSMgr object is used to calculate + * thermodynamic functions for the standard state. It queries the database of + * species to understand what the requirements are for the submodels for all of + * the species in the phase. Then, it picks the derived VPSSMgr object to use + * and passes it back to the calling routine. It doesn't load any data into the + * derived VPSSMgr object. * - * Making the choice of VPSSMgr types is the only - * thing this class does. + * Making the choice of VPSSMgr types is the only thing this class does. * - * This class is implemented as a singleton -- one in which - * only one instance is needed. The recommended way to access - * the factory is to call this static method, which - * instantiates the class if it is the first call, but - * otherwise simply returns the pointer to the existing - * instance. + * This class is implemented as a singleton -- one in which only one instance is + * needed. The recommended way to access the factory is to call this static + * method, which instantiates the class if it is the first call, but otherwise + * simply returns the pointer to the existing instance. * * @ingroup mgrpdssthermocalc */ @@ -69,12 +63,10 @@ class VPSSMgrFactory : public FactoryBase public: //! Static method to return an instance of this class /*! - * This class is implemented as a singleton -- one in which - * only one instance is needed. The recommended way to access - * the factory is to call this static method, which - * instantiates the class if it is the first call, but - * otherwise simply returns the pointer to the existing - * instance. + * This class is implemented as a singleton -- one in which only one + * instance is needed. The recommended way to access the factory is to call + * this static method, which instantiates the class if it is the first call, + * but otherwise simply returns the pointer to the existing instance. */ static VPSSMgrFactory* factory() { std::unique_lock lock(vpss_species_thermo_mutex); @@ -86,17 +78,16 @@ public: //! Delete static instance of this class /*! - * If it is necessary to explicitly delete the factory before - * the process terminates (for example, when checking for - * memory leaks) then this method can be called to delete it. + * If it is necessary to explicitly delete the factory before the process + * terminates (for example, when checking for memory leaks) then this method + * can be called to delete it. */ void deleteFactory(); //! String conversion to an enumType /*! * This routine is a string conversion. The string is obtained from the - * standardState model attribute and converted to a VPSSMgr_enumType - * type. + * standardState model attribute and converted to a VPSSMgr_enumType type. * * @param ssModel String representing the VPSSMGr object */ @@ -113,18 +104,18 @@ public: //! Create a new species property manager for a group of species /*! - * This routine will look through species nodes. It will discover what - * each species needs for its species property managers. Then, - * it will malloc and return the proper species property manager to use. + * This routine will look through species nodes. It will discover what each + * species needs for its species property managers. Then, it will malloc and + * return the proper species property manager to use. * * @param vp_ptr Variable pressure standard state ThermoPhase object * that will be the owner. * @param phaseNode_ptr Pointer to the ThermoPhase phase XML Node - * @param spDataNodeList Vector of XML_Nodes, each of which is a species XML Node. - * There are m_kk of these. + * @param spDataNodeList Vector of XML_Nodes, each of which is a species XML + * Node. There are m_kk of these. * - * @return Returns a pointer to a newly malloced species property - * manager object. + * @return Returns a pointer to a newly malloced species + * property manager object. */ virtual VPSSMgr* newVPSSMgr(VPStandardStateTP* vp_ptr, XML_Node* phaseNode_ptr, diff --git a/src/thermo/VPSSMgr_General.cpp b/src/thermo/VPSSMgr_General.cpp index 30436d236..5e13d33ce 100644 --- a/src/thermo/VPSSMgr_General.cpp +++ b/src/thermo/VPSSMgr_General.cpp @@ -54,12 +54,12 @@ VPSSMgr_General& VPSSMgr_General::operator=(const VPSSMgr_General& b) return *this; } VPSSMgr::operator=(b); - /* - * Must fill in the shallow pointers. These must have already been transfered - * and stored in the owning VPStandardStateTP class. Note we are aware that at this point - * m_vptr_ptr may refer back to the wrong ThermoPhase object. However, the shallow copy - * performed here is consistent with the assignment operator's general functionality. - */ + + // Must fill in the shallow pointers. These must have already been + // transfered and stored in the owning VPStandardStateTP class. Note we are + // aware that at this point m_vptr_ptr may refer back to the wrong + // ThermoPhase object. However, the shallow copy performed here is + // consistent with the assignment operator's general functionality. m_PDSS_ptrs.resize(m_kk); for (size_t k = 0; k < m_kk; k++) { m_PDSS_ptrs[k] = m_vptp_ptr->providePDSS(k); @@ -75,10 +75,9 @@ VPSSMgr* VPSSMgr_General::duplMyselfAsVPSSMgr() const void VPSSMgr_General::initAllPtrs(VPStandardStateTP* vp_ptr, SpeciesThermo* sp_ptr) { VPSSMgr::initAllPtrs(vp_ptr, sp_ptr); - /* - * Must fill in the shallow pointers. These must have already been transfered - * and stored in the owning VPStandardStateTP class. - */ + + // Must fill in the shallow pointers. These must have already been + // transfered and stored in the owning VPStandardStateTP class. m_PDSS_ptrs.resize(m_kk); for (size_t k = 0; k < m_kk; k++) { m_PDSS_ptrs[k] = m_vptp_ptr->providePDSS(k); diff --git a/src/thermo/VPStandardStateTP.cpp b/src/thermo/VPStandardStateTP.cpp index b1916ce29..fb3820b76 100644 --- a/src/thermo/VPStandardStateTP.cpp +++ b/src/thermo/VPStandardStateTP.cpp @@ -19,9 +19,6 @@ using namespace std; namespace Cantera { -/* - * Default constructor - */ VPStandardStateTP::VPStandardStateTP() : m_Pcurrent(OneAtm), m_Tlast_ss(-1.0), @@ -44,22 +41,17 @@ VPStandardStateTP::VPStandardStateTP(const VPStandardStateTP& b) : VPStandardStateTP& VPStandardStateTP::operator=(const VPStandardStateTP& b) { if (&b != this) { - /* - * Mostly, this is a passthrough to the underlying - * assignment operator for the ThermoPhase parent object. - */ + // Mostly, this is a passthrough to the underlying assignment operator + // for the ThermoPhase parent object. ThermoPhase::operator=(b); - /* - * However, we have to handle data that we own. - */ + + // However, we have to handle data that we own. m_Pcurrent = b.m_Pcurrent; m_Tlast_ss = b.m_Tlast_ss; m_Plast_ss = b.m_Plast_ss; m_P0 = b.m_P0; - /* - * Duplicate the pdss objects - */ + // Duplicate the pdss objects if (m_PDSS_storage.size() > 0) { for (int k = 0; k < (int) m_PDSS_storage.size(); k++) { delete m_PDSS_storage[k]; @@ -70,32 +62,26 @@ VPStandardStateTP& VPStandardStateTP::operator=(const VPStandardStateTP& b) m_PDSS_storage[k] = b.m_PDSS_storage[k]->duplMyselfAsPDSS(); } - /* - * Duplicate the VPSS Manager object that conducts the calculations - */ + // Duplicate the VPSS Manager object that conducts the calculations delete m_VPSS_ptr; m_VPSS_ptr = (b.m_VPSS_ptr)->duplMyselfAsVPSSMgr(); - /* - * The VPSSMgr object contains shallow pointers. Whenever you have shallow - * pointers, they have to be fixed up to point to the correct objects referring - * back to this ThermoPhase's properties. - */ + // The VPSSMgr object contains shallow pointers. Whenever you have + // shallow pointers, they have to be fixed up to point to the correct + // objects referring back to this ThermoPhase's properties. m_VPSS_ptr->initAllPtrs(this, m_spthermo); - /* - * The PDSS objects contains shallow pointers. Whenever you have shallow - * pointers, they have to be fixed up to point to the correct objects referring - * back to this ThermoPhase's properties. This function also sets m_VPSS_ptr - * so it occurs after m_VPSS_ptr is set. - */ + + // The PDSS objects contains shallow pointers. Whenever you have shallow + // pointers, they have to be fixed up to point to the correct objects + // referring back to this ThermoPhase's properties. This function also + // sets m_VPSS_ptr so it occurs after m_VPSS_ptr is set. for (size_t k = 0; k < m_kk; k++) { m_PDSS_storage[k]->initAllPtrs(this, m_VPSS_ptr, m_spthermo); } - /* - * Ok, the VPSSMgr object is ready for business. - * We need to resync the temperature and the pressure of the new standard states - * with what is stored in this object. - */ + + // Ok, the VPSSMgr object is ready for business. We need to resync the + // temperature and the pressure of the new standard states with what is + // stored in this object. m_VPSS_ptr->setState_TP(m_Tlast_ss, m_Plast_ss); } return *this; @@ -127,9 +113,8 @@ void VPStandardStateTP::getChemPotentials_RT(doublereal* muRT) const } } -/* - * ----- Thermodynamic Values for the Species Standard States States ---- - */ +// ----- Thermodynamic Values for the Species Standard States States ---- + void VPStandardStateTP::getStandardChemPotentials(doublereal* g) const { getGibbs_RT(g); @@ -194,9 +179,7 @@ const vector_fp& VPStandardStateTP::getStandardVolumes() const return m_VPSS_ptr->getStandardVolumes(); } -/* - * ----- Thermodynamic Values for the Species Reference States ---- - */ +// ----- Thermodynamic Values for the Species Reference States ---- void VPStandardStateTP::getEnthalpy_RT_ref(doublereal* hrt) const { @@ -284,26 +267,21 @@ void VPStandardStateTP::calcDensity() void VPStandardStateTP::setState_TP(doublereal t, doublereal pres) { - /* - * A pretty tricky algorithm is needed here, due to problems involving - * standard states of real fluids. For those cases you need - * to combine the T and P specification for the standard state, or else - * you may venture into the forbidden zone, especially when nearing the - * triple point. - * Therefore, we need to do the standard state thermo calc with the - * (t, pres) combo. - */ + // A pretty tricky algorithm is needed here, due to problems involving + // standard states of real fluids. For those cases you need to combine the T + // and P specification for the standard state, or else you may venture into + // the forbidden zone, especially when nearing the triple point. Therefore, + // we need to do the standard state thermo calc with the (t, pres) combo. Phase::setTemperature(t); m_Pcurrent = pres; updateStandardStateThermo(); - /* - * Now, we still need to do the calculations for general ThermoPhase objects. - * So, we switch back to a virtual function call, setTemperature, and - * setPressure to recalculate stuff for child ThermoPhase objects of - * the VPStandardStateTP object. At this point, - * we haven't touched m_tlast or m_plast, so some calculations may still - * need to be done at the ThermoPhase object level. - */ + + // Now, we still need to do the calculations for general ThermoPhase + // objects. So, we switch back to a virtual function call, setTemperature, + // and setPressure to recalculate stuff for child ThermoPhase objects of the + // VPStandardStateTP object. At this point, we haven't touched m_tlast or + // m_plast, so some calculations may still need to be done at the + // ThermoPhase object level. calcDensity(); } diff --git a/src/thermo/WaterProps.cpp b/src/thermo/WaterProps.cpp index 72ee3540f..492ba4a66 100644 --- a/src/thermo/WaterProps.cpp +++ b/src/thermo/WaterProps.cpp @@ -98,11 +98,8 @@ doublereal WaterProps::density_T(doublereal T, doublereal P, int ifunc) doublereal tmp3 = Tc + U3; doublereal rho = 1000. * (1.0 - tmp1*t4t4/(U2 * tmp3)); - /* - * Impose an ideal gas lower bound on rho. We need this - * to ensure positivity of rho, even though it is - * grossly unrepresentative. - */ + // Impose an ideal gas lower bound on rho. We need this to ensure positivity + // of rho, even though it is grossly unrepresentative. doublereal rhomin = P / (GasConstant * T); if (rho < rhomin) { rho = rhomin; @@ -205,19 +202,15 @@ doublereal WaterProps::ADebye(doublereal T, doublereal P_input, int ifunc) doublereal tmp3 = tmp2 * sqrt(tmp2); doublereal A_Debye = tmp * tmp3 / (8.0 * Pi); - /* - * dAdT = - 3/2 Ad/T + 1/2 Ad/dw d(dw)/dT - 3/2 Ad/eps d(eps)/dT - * dAdT = - 3/2 Ad/T - 1/2 Ad/Vw d(Vw)/dT - 3/2 Ad/eps d(eps)/dT - */ + // dAdT = - 3/2 Ad/T + 1/2 Ad/dw d(dw)/dT - 3/2 Ad/eps d(eps)/dT + // dAdT = - 3/2 Ad/T - 1/2 Ad/Vw d(Vw)/dT - 3/2 Ad/eps d(eps)/dT if (ifunc == 1 || ifunc == 2) { doublereal dAdT = - 1.5 * A_Debye / T; doublereal depsRelWaterdT = relEpsilon(T, P, 1); dAdT -= A_Debye * (1.5 * depsRelWaterdT / epsRelWater); - /* - * calculate d(lnV)/dT _constantP, i.e., the cte - */ + // calculate d(lnV)/dT _constantP, i.e., the cte doublereal cte = coeffThermalExp_IAPWS(T, P); doublereal contrib2 = - A_Debye * (0.5 * cte); dAdT += contrib2; @@ -227,11 +220,9 @@ doublereal WaterProps::ADebye(doublereal T, doublereal P_input, int ifunc) } if (ifunc == 2) { - /* - * Get the second derivative of the dielectric constant wrt T - * -> we will take each of the terms in dAdT and differentiate - * it again. - */ + // Get the second derivative of the dielectric constant wrt T + // -> we will take each of the terms in dAdT and differentiate + // it again. doublereal d2AdT2 = 1.5 / T * (A_Debye/T - dAdT); doublereal d2epsRelWaterdT2 = relEpsilon(T, P, 2); d2AdT2 += 1.5 * (- dAdT * depsRelWaterdT / epsRelWater @@ -246,16 +237,15 @@ doublereal WaterProps::ADebye(doublereal T, doublereal P_input, int ifunc) return d2AdT2; } } - /* - * A_Debye = (1/(8 Pi)) sqrt(2 Na dw / 1000) - * (e e/(epsilon R T))^3/2 - * - * dAdP = + 1/2 Ad/dw d(dw)/dP - 3/2 Ad/eps d(eps)/dP - * dAdP = - 1/2 Ad/Vw d(Vw)/dP - 3/2 Ad/eps d(eps)/dP - * dAdP = + 1/2 Ad * kappa - 3/2 Ad/eps d(eps)/dP - * - * where kappa = - 1/Vw d(Vw)/dP_T (isothermal compressibility) - */ + + // A_Debye = (1/(8 Pi)) sqrt(2 Na dw / 1000) + // (e e/(epsilon R T))^3/2 + // + // dAdP = + 1/2 Ad/dw d(dw)/dP - 3/2 Ad/eps d(eps)/dP + // dAdP = - 1/2 Ad/Vw d(Vw)/dP - 3/2 Ad/eps d(eps)/dP + // dAdP = + 1/2 Ad * kappa - 3/2 Ad/eps d(eps)/dP + // + // where kappa = - 1/Vw d(Vw)/dP_T (isothermal compressibility) if (ifunc == 3) { doublereal dAdP = 0.0; doublereal depsRelWaterdP = relEpsilon(T, P, 3); @@ -437,14 +427,12 @@ doublereal WaterProps::thermalConductivityWater() const doublereal rho4 = rho2 * rho2; doublereal temp2 = (tbar - 1.0) * (tbar - 1.0); - /* - * beta = M / (rho * Rgas) (d (pressure) / dT) at constant rho - * - * Note for ideal gases this is equal to one. - * - * beta = delta (phi0_d() + phiR_d()) - * - tau delta (phi0_dt() + phiR_dt()) - */ + // beta = M / (rho * Rgas) (d (pressure) / dT) at constant rho + // + // Note for ideal gases this is equal to one. + // + // beta = delta (phi0_d() + phiR_d()) + // - tau delta (phi0_dt() + phiR_dt()) doublereal beta = m_waterIAPWS->coeffPresExp(); doublereal dpdT_const_rho = beta * GasConstant * dens / 18.015268; dpdT_const_rho *= Tstar / presstar; diff --git a/src/thermo/WaterPropsIAPWS.cpp b/src/thermo/WaterPropsIAPWS.cpp index a796f7daa..8a069cb93 100644 --- a/src/thermo/WaterPropsIAPWS.cpp +++ b/src/thermo/WaterPropsIAPWS.cpp @@ -15,9 +15,8 @@ namespace Cantera { -/* - * Critical Point values of water in mks units - */ +// Critical Point values of water in mks units + //! Critical Temperature value (kelvin) const doublereal T_c = 647.096; //! Critical Pressure (Pascals) @@ -68,9 +67,8 @@ void WaterPropsIAPWS::calcDim(doublereal temperature, doublereal rho) { tau = T_c / temperature; delta = rho / Rho_c; - /* - * Determine the internal state - */ + + // Determine the internal state if (temperature > T_c) { iState = WATER_SUPERCRIT; } else { @@ -110,10 +108,8 @@ doublereal WaterPropsIAPWS::density(doublereal temperature, doublereal pressure, if (phase == WATER_GAS || phase == WATER_SUPERCRIT) { rhoguess = pressure * M_water / (Rgas * temperature); } else if (phase == WATER_LIQUID) { - /* - * Provide a guess about the liquid density that is - * relatively high -> convergence from above seems robust. - */ + // Provide a guess about the liquid density that is + // relatively high -> convergence from above seems robust. rhoguess = 1000.; } else if (phase == WATER_UNSTABLELIQUID || phase == WATER_UNSTABLEGAS) { throw CanteraError("WaterPropsIAPWS::density", @@ -124,10 +120,8 @@ doublereal WaterPropsIAPWS::density(doublereal temperature, doublereal pressure, } } } else { - /* - * Assume the Gas phase initial guess, if nothing is - * specified to the routine - */ + // Assume the Gas phase initial guess, if nothing is specified to + // the routine rhoguess = pressure * M_water / (Rgas * temperature); } } @@ -139,14 +133,11 @@ doublereal WaterPropsIAPWS::density(doublereal temperature, doublereal pressure, if (delta_retn >0.0) { delta = delta_retn; - /* - * Dimensionalize the density before returning - */ + // Dimensionalize the density before returning density_retn = delta_retn * Rho_c; - /* - * Set the internal state -> this may be - * a duplication. However, let's just be sure. - */ + + // Set the internal state -> this may be a duplication. However, let's + // just be sure. setState_TR(temperature, density_retn); } else { density_retn = -1.0; @@ -168,10 +159,8 @@ doublereal WaterPropsIAPWS::density_const(doublereal pressure, if (phase == WATER_GAS || phase == WATER_SUPERCRIT) { rhoguess = pressure * M_water / (Rgas * temperature); } else if (phase == WATER_LIQUID) { - /* - * Provide a guess about the liquid density that is - * relatively high -> convergence from above seems robust. - */ + // Provide a guess about the liquid density that is + // relatively high -> convergence from above seems robust. rhoguess = 1000.; } else if (phase == WATER_UNSTABLELIQUID || phase == WATER_UNSTABLEGAS) { throw CanteraError("WaterPropsIAPWS::density", @@ -182,10 +171,8 @@ doublereal WaterPropsIAPWS::density_const(doublereal pressure, } } } else { - /* - * Assume the Gas phase initial guess, if nothing is - * specified to the routine - */ + // Assume the Gas phase initial guess, if nothing is specified to + // the routine rhoguess = pressure * M_water / (Rgas * temperature); } } @@ -200,9 +187,7 @@ doublereal WaterPropsIAPWS::density_const(doublereal pressure, if (delta_retn > 0.0) { delta = delta_retn; - /* - * Dimensionalize the density before returning - */ + // Dimensionalize the density before returning density_retn = delta_retn * Rho_c; } else { @@ -252,9 +237,8 @@ doublereal WaterPropsIAPWS::psat_est(doublereal temperature) const doublereal q = b / v; ps = 22.093*exp(q); } - /* - * Original correlation was in cgs. Convert to mks - */ + + // Original correlation was in cgs. Convert to mks ps *= 1.0E6; return ps; } diff --git a/src/thermo/WaterPropsIAPWSphi.cpp b/src/thermo/WaterPropsIAPWSphi.cpp index ed090bd4e..d77dc55e5 100644 --- a/src/thermo/WaterPropsIAPWSphi.cpp +++ b/src/thermo/WaterPropsIAPWSphi.cpp @@ -458,9 +458,7 @@ doublereal WaterPropsIAPWSphi::phiR() const doublereal delta = DELTAsave; int i, j; - /* - * Write out the first seven polynomials in the expression - */ + // Write out the first seven polynomials in the expression doublereal T375 = pow(tau, 0.375); doublereal val = (ni[1] * delta / TAUsqrt + ni[2] * delta * TAUsqrt * T375 + @@ -469,16 +467,12 @@ doublereal WaterPropsIAPWSphi::phiR() const ni[5] * DELTAp[2] * T375 * T375 + ni[6] * DELTAp[3] * T375 + ni[7] * DELTAp[4] * tau); - /* - * Next, do polynomial contributions 8 to 51 - */ + // Next, do polynomial contributions 8 to 51 for (i = 8; i <= 51; i++) { val += (ni[i] * DELTAp[diR[i]] * TAUp[tiR[i]] * exp(-DELTAp[ciR[i]])); } - /* - * Next do contributions 52 to 54 - */ + // Next do contributions 52 to 54 for (j = 0; j < 3; j++) { i = 52 + j; doublereal dtmp = delta - epsi[j]; @@ -487,9 +481,7 @@ doublereal WaterPropsIAPWSphi::phiR() const exp(-alphai[j]*dtmp*dtmp - betai[j]*ttmp*ttmp)); } - /* - * Next do contributions 55 and 56 - */ + // Next do contributions 55 and 56 for (j = 0; j < 2; j++) { i = 55 + j; doublereal deltam1 = delta - 1.0; @@ -520,9 +512,7 @@ doublereal WaterPropsIAPWSphi::phiR_d() const doublereal delta = DELTAsave; int i, j; - /* - * Write out the first seven polynomials in the expression - */ + // Write out the first seven polynomials in the expression doublereal T375 = pow(tau, 0.375); doublereal val = (ni[1] / TAUsqrt + ni[2] * TAUsqrt * T375 + @@ -531,17 +521,13 @@ doublereal WaterPropsIAPWSphi::phiR_d() const ni[5] * 2.0 * delta * T375 * T375 + ni[6] * 3.0 * DELTAp[2] * T375 + ni[7] * 4.0 * DELTAp[3] * tau); - /* - * Next, do polynomial contributions 8 to 51 - */ + // Next, do polynomial contributions 8 to 51 for (i = 8; i <= 51; i++) { val += ((ni[i] * exp(-DELTAp[ciR[i]]) * DELTAp[diR[i] - 1] * TAUp[tiR[i]]) * (diR[i] - ciR[i]* DELTAp[ciR[i]])); } - /* - * Next do contributions 52 to 54 - */ + // Next do contributions 52 to 54 for (j = 0; j < 3; j++) { i = 52 + j; doublereal dtmp = delta - epsi[j]; @@ -551,9 +537,7 @@ doublereal WaterPropsIAPWSphi::phiR_d() const val += tmp * (diR[i]/delta - 2.0 * alphai[j] * dtmp); } - /* - * Next do contributions 55 and 56 - */ + // Next do contributions 55 and 56 for (j = 0; j < 2; j++) { i = 55 + j; doublereal deltam1 = delta - 1.0; @@ -608,17 +592,13 @@ doublereal WaterPropsIAPWSphi::phiR_dd() const int i, j; doublereal atmp; - /* - * Write out the first seven polynomials in the expression - */ + // Write out the first seven polynomials in the expression doublereal T375 = pow(tau, 0.375); doublereal val = (ni[4] * 2.0 * TAUsqrt + ni[5] * 2.0 * T375 * T375 + ni[6] * 6.0 * delta * T375 + ni[7] * 12.0 * DELTAp[2] * tau); - /* - * Next, do polynomial contributions 8 to 51 - */ + // Next, do polynomial contributions 8 to 51 for (i = 8; i <= 51; i++) { doublereal dtmp = DELTAp[ciR[i]]; doublereal tmp = ni[i] * exp(-dtmp) * TAUp[tiR[i]]; @@ -632,9 +612,7 @@ doublereal WaterPropsIAPWSphi::phiR_dd() const val += tmp; } - /* - * Next do contributions 52 to 54 - */ + // Next do contributions 52 to 54 for (j = 0; j < 3; j++) { i = 52 + j; doublereal dtmp = delta - epsi[j]; @@ -652,9 +630,7 @@ doublereal WaterPropsIAPWSphi::phiR_dd() const diR[i] * (diR[i] - 1.0) * deltmpM2); } - /* - * Next do contributions 55 and 56 - */ + // Next do contributions 55 and 56 for (j = 0; j < 2; j++) { i = 55 + j; doublereal deltam1 = delta - 1.0; @@ -741,9 +717,7 @@ doublereal WaterPropsIAPWSphi::phiR_t() const int i, j; doublereal atmp, tmp; - /* - * Write out the first seven polynomials in the expression - */ + // Write out the first seven polynomials in the expression doublereal T375 = pow(tau, 0.375); doublereal val = ((-0.5) *ni[1] * delta / TAUsqrt / tau + ni[2] * delta * 0.875 / TAUsqrt * T375 + @@ -752,17 +726,13 @@ doublereal WaterPropsIAPWSphi::phiR_t() const ni[5] * DELTAp[2] * 0.75 * T375 * T375 / tau + ni[6] * DELTAp[3] * 0.375 * T375 / tau + ni[7] * DELTAp[4]); - /* - * Next, do polynomial contributions 8 to 51 - */ + // Next, do polynomial contributions 8 to 51 for (i = 8; i <= 51; i++) { tmp = (ni[i] * DELTAp[diR[i]] * TAUp[tiR[i]-1] * exp(-DELTAp[ciR[i]])); val += tiR[i] * tmp; } - /* - * Next do contributions 52 to 54 - */ + // Next do contributions 52 to 54 for (j = 0; j < 3; j++) { i = 52 + j; doublereal dtmp = delta - epsi[j]; @@ -772,9 +742,7 @@ doublereal WaterPropsIAPWSphi::phiR_t() const val += tmp *(tiR[i]/tau - 2.0 * betai[j]*ttmp); } - /* - * Next do contributions 55 and 56 - */ + // Next do contributions 55 and 56 for (j = 0; j < 2; j++) { i = 55 + j; doublereal deltam1 = delta - 1.0; @@ -820,18 +788,14 @@ doublereal WaterPropsIAPWSphi::phiR_tt() const int i, j; doublereal atmp, tmp; - /* - * Write out the first seven polynomials in the expression - */ + // Write out the first seven polynomials in the expression doublereal T375 = pow(tau, 0.375); doublereal val = ((-0.5) * (-1.5) * ni[1] * delta / (TAUsqrt * tau * tau) + ni[2] * delta * 0.875 * (-0.125) * T375 / (TAUsqrt * tau) + ni[4] * DELTAp[2] * 0.5 * (-0.5)/ (TAUsqrt * tau) + ni[5] * DELTAp[2] * 0.75 *(-0.25) * T375 * T375 / (tau * tau) + ni[6] * DELTAp[3] * 0.375 *(-0.625) * T375 / (tau * tau)); - /* - * Next, do polynomial contributions 8 to 51 - */ + // Next, do polynomial contributions 8 to 51 for (i = 8; i <= 51; i++) { if (tiR[i] > 1) { tmp = (ni[i] * DELTAp[diR[i]] * TAUp[tiR[i]-2] * exp(-DELTAp[ciR[i]])); @@ -839,9 +803,7 @@ doublereal WaterPropsIAPWSphi::phiR_tt() const } } - /* - * Next do contributions 52 to 54 - */ + // Next do contributions 52 to 54 for (j = 0; j < 3; j++) { i = 52 + j; doublereal dtmp = delta - epsi[j]; @@ -852,9 +814,7 @@ doublereal WaterPropsIAPWSphi::phiR_tt() const val += tmp *(atmp * atmp - tiR[i]/(tau*tau) - 2.0*betai[j]); } - /* - * Next do contributions 55 and 56 - */ + // Next do contributions 55 and 56 for (j = 0; j < 2; j++) { i = 55 + j; doublereal deltam1 = delta - 1.0; @@ -900,9 +860,7 @@ doublereal WaterPropsIAPWSphi::phiR_dt() const doublereal delta = DELTAsave; int i, j; doublereal tmp; - /* - * Write out the first seven polynomials in the expression - */ + // Write out the first seven polynomials in the expression doublereal T375 = pow(tau, 0.375); doublereal val = (ni[1] * (-0.5) / (TAUsqrt * tau) + ni[2] * (0.875) * T375 / TAUsqrt + @@ -911,18 +869,14 @@ doublereal WaterPropsIAPWSphi::phiR_dt() const ni[5] * 2.0 * delta * (0.75) * T375 * T375 / tau + ni[6] * 3.0 * DELTAp[2] * 0.375 * T375 / tau + ni[7] * 4.0 * DELTAp[3]); - /* - * Next, do polynomial contributions 8 to 51 - */ + // Next, do polynomial contributions 8 to 51 for (i = 8; i <= 51; i++) { tmp = (ni[i] * tiR[i] * exp(-DELTAp[ciR[i]]) * DELTAp[diR[i] - 1] * TAUp[tiR[i] - 1]); val += tmp * (diR[i] - ciR[i] * DELTAp[ciR[i]]); } - /* - * Next do contributions 52 to 54 - */ + // Next do contributions 52 to 54 for (j = 0; j < 3; j++) { i = 52 + j; doublereal dtmp = delta - epsi[j]; @@ -933,9 +887,7 @@ doublereal WaterPropsIAPWSphi::phiR_dt() const (tiR[i]/tau - 2.0 * betai[j] * ttmp)); } - /* - * Next do contributions 55 and 56 - */ + // Next do contributions 55 and 56 for (j = 0; j < 2; j++) { i = 55 + j; doublereal deltam1 = delta - 1.0; @@ -977,29 +929,24 @@ doublereal WaterPropsIAPWSphi::dfind(doublereal p_red, doublereal tau, doublerea doublereal deldd = dd; doublereal pcheck = 1.0E-30 + 1.0E-8 * p_red; for (int n = 0; n < 200; n++) { - /* - * Calculate the internal polynomials, and then calculate the - * phi deriv functions needed by this routine. - */ + + // Calculate the internal polynomials, and then calculate the phi deriv + // functions needed by this routine. tdpolycalc(tau, dd); doublereal q1 = phiR_d(); doublereal q2 = phiR_dd(); - /* - * Calculate the predicted reduced pressure, pred0, based on the - * current tau and dd. - */ + // Calculate the predicted reduced pressure, pred0, based on the current + // tau and dd. doublereal pred0 = dd + dd * dd * q1; - /* - * Calculate the derivative of the predicted reduced pressure - * wrt the reduced density, dd, This is dpddelta - */ + + // Calculate the derivative of the predicted reduced pressure wrt the + // reduced density, dd, This is dpddelta doublereal dpddelta = 1.0 + 2.0 * dd * q1 + dd * dd * q2; - /* - * If dpddelta is negative, then we are in the middle of the - * 2 phase region, beyond the stability curve. We need to adjust - * the initial guess outwards and start a new iteration. - */ + + // If dpddelta is negative, then we are in the middle of the 2 phase + // region, beyond the stability curve. We need to adjust the initial + // guess outwards and start a new iteration. if (dpddelta <= 0.0) { if (deltaGuess > 1.0) { dd = dd * 1.05; @@ -1009,50 +956,41 @@ doublereal WaterPropsIAPWSphi::dfind(doublereal p_red, doublereal tau, doublerea } continue; } - /* - * Check for convergence - */ + + // Check for convergence if (fabs(pred0-p_red) < pcheck) { conv = true; break; } - /* - * Dampen and crop the update - */ + // Dampen and crop the update doublereal dpdx = dpddelta; if (n < 10) { dpdx = dpddelta * 1.1; } dpdx = std::max(dpdx, 0.001); - /* - * Formulate the update to reduced density using - * Newton's method. Then, crop it to a max value - * of 0.02 - */ + // Formulate the update to reduced density using Newton's method. Then, + // crop it to a max value of 0.02 deldd = - (pred0 - p_red) / dpdx; if (fabs(deldd) > 0.05) { deldd = deldd * 0.05 / fabs(deldd); } - /* - * updated the reduced density value - */ + + // updated the reduced density value dd += deldd; if (fabs(deldd/dd) < 1.0E-14) { conv = true; break; } - /* - * Check for negative densities - */ + + // Check for negative densities if (dd <= 0.0) { dd = 1.0E-24; } } - /* - * Check for convergence, and return 0.0 if it wasn't achieved. - */ + + // Check for convergence, and return 0.0 if it wasn't achieved. if (! conv) { dd = 0.0; } diff --git a/src/thermo/WaterSSTP.cpp b/src/thermo/WaterSSTP.cpp index 20d4649e4..7e70bd83b 100644 --- a/src/thermo/WaterSSTP.cpp +++ b/src/thermo/WaterSSTP.cpp @@ -56,10 +56,8 @@ WaterSSTP::WaterSSTP(const WaterSSTP& b) : { m_waterProps.reset(new WaterProps(&m_sub)); - /* - * Use the assignment operator to do the brunt - * of the work for the copy constructor. - */ + // Use the assignment operator to do the brunt of the work for the copy + // constructor. *this = b; } @@ -84,18 +82,14 @@ ThermoPhase* WaterSSTP::duplMyselfAsThermoPhase() const void WaterSSTP::initThermoXML(XML_Node& phaseNode, const std::string& id) { - /* - * Do initializations that don't depend on knowing the XML file - */ + // Do initializations that don't depend on knowing the XML file initThermo(); - /* - * Calculate the molecular weight. Note while there may - * be a very good calculated weight in the steam table - * class, using this weight may lead to codes exhibiting - * mass loss issues. We need to grab the elemental - * atomic weights used in the Element class and calculate - * a consistent H2O molecular weight based on that. - */ + + // Calculate the molecular weight. Note while there may be a very good + // calculated weight in the steam table class, using this weight may lead to + // codes exhibiting mass loss issues. We need to grab the elemental atomic + // weights used in the Element class and calculate a consistent H2O + // molecular weight based on that. size_t nH = elementIndex("H"); if (nH == npos) { throw CanteraError("WaterSSTP::initThermo", @@ -113,9 +107,7 @@ void WaterSSTP::initThermoXML(XML_Node& phaseNode, const std::string& id) double one = 1.0; setMoleFractions(&one); - /* - * Set the baseline - */ + // Set the baseline doublereal T = 298.15; Phase::setDensity(7.0E-8); Phase::setTemperature(T); @@ -140,25 +132,18 @@ void WaterSSTP::initThermoXML(XML_Node& phaseNode, const std::string& id) } h = enthalpy_mole(); - /* - * Set the initial state of the system to 298.15 K and - * 1 bar. - */ + // Set the initial state of the system to 298.15 K and 1 bar. setTemperature(298.15); double rho0 = m_sub.density(298.15, OneAtm, WATER_LIQUID); setDensity(rho0); m_waterProps.reset(new WaterProps(&m_sub)); - /* - * We have to do something with the thermo function here. - */ + // We have to do something with the thermo function here. delete m_spthermo; m_spthermo = 0; - /* - * Set the flag to say we are ready to calculate stuff - */ + // Set the flag to say we are ready to calculate stuff m_ready = true; } @@ -408,9 +393,7 @@ doublereal WaterSSTP::vaporFraction() const } return 1.0; } - /* - * If below tcrit we always return 0 from this class - */ + // If below tcrit we always return 0 from this class return 0.0; }