diff --git a/Cantera/src/thermo/GibbsExcessVPSSTP.cpp b/Cantera/src/thermo/GibbsExcessVPSSTP.cpp index 5dc65a056..5ee5c16e8 100644 --- a/Cantera/src/thermo/GibbsExcessVPSSTP.cpp +++ b/Cantera/src/thermo/GibbsExcessVPSSTP.cpp @@ -39,7 +39,7 @@ namespace Cantera { dlnActCoeffdT_Scaled_(0), d2lnActCoeffdT2_Scaled_(0), dlnActCoeffdlnN_diag_(0), - dlnActCoeffdlnX_Scaled_(0), + dlnActCoeffdlnX_diag_(0), dlnActCoeffdN_Scaled_(0,0), m_pp(0) { @@ -58,7 +58,7 @@ namespace Cantera { dlnActCoeffdT_Scaled_(0), d2lnActCoeffdT2_Scaled_(0), dlnActCoeffdlnN_diag_(0), - dlnActCoeffdlnX_Scaled_(0), + dlnActCoeffdlnX_diag_(0), dlnActCoeffdN_Scaled_(0,0), m_pp(0) { @@ -83,7 +83,7 @@ namespace Cantera { lnActCoeff_Scaled_ = b.lnActCoeff_Scaled_; dlnActCoeffdT_Scaled_ = b.dlnActCoeffdT_Scaled_; d2lnActCoeffdT2_Scaled_ = b.d2lnActCoeffdT2_Scaled_; - dlnActCoeffdlnX_Scaled_ = b.dlnActCoeffdlnX_Scaled_; + dlnActCoeffdlnX_diag_ = b.dlnActCoeffdlnX_diag_; dlnActCoeffdlnN_diag_ = b.dlnActCoeffdlnN_diag_; dlnActCoeffdN_Scaled_ = b.dlnActCoeffdN_Scaled_; m_pp = b.m_pp; @@ -343,7 +343,7 @@ namespace Cantera { lnActCoeff_Scaled_.resize(m_kk); dlnActCoeffdT_Scaled_.resize(m_kk); d2lnActCoeffdT2_Scaled_.resize(m_kk); - dlnActCoeffdlnX_Scaled_.resize(m_kk); + dlnActCoeffdlnX_diag_.resize(m_kk); dlnActCoeffdlnN_diag_.resize(m_kk); dlnActCoeffdN_Scaled_.resize(m_kk, m_kk); m_pp.resize(m_kk); diff --git a/Cantera/src/thermo/GibbsExcessVPSSTP.h b/Cantera/src/thermo/GibbsExcessVPSSTP.h index da4d91394..63b387da6 100644 --- a/Cantera/src/thermo/GibbsExcessVPSSTP.h +++ b/Cantera/src/thermo/GibbsExcessVPSSTP.h @@ -304,50 +304,8 @@ namespace Cantera { err("getdlnActCoeffdT"); } - //! Get the array of log concentration-like derivatives of the - //! log activity coefficients - /*! - * This function is a virtual method. For ideal mixtures - * (unity activity coefficients), this can return zero. - * Implementations should take the derivative of the - * logarithm of the activity coefficient with respect to the - * logarithm of the concentration-like variable (i.e. mole fraction, - * molality, etc.) that represents the standard state. - * This quantity is to be used in conjunction with derivatives of - * that concentration-like variable when the derivative of the chemical - * potential is taken. - * - * units = dimensionless - * - * @param dlnActCoeffdlnN_diag Output vector of derivatives of the - * log Activity Coefficients. length = m_kk - */ - virtual void getdlnActCoeffdlnN_diag(doublereal *dlnActCoeffdlnN_diag) const { - err("getdlnActCoeffdlnN_diag"); - } - - //! Get the array of log concentration-like derivatives of the - //! log activity coefficients - /*! - * This function is a virtual method. For ideal mixtures - * (unity activity coefficients), this can return zero. - * Implementations should take the derivative of the - * logarithm of the activity coefficient with respect to the - * logarithm of the concentration-like variable (i.e. number of moles in - * in a unit volume. ) that represents the standard state. - * This quantity is to be used in conjunction with derivatives of - * that concentration-like variable when the derivative of the chemical - * potential is taken. - * - * units = dimensionless - * - * @param dlnActCoeffdlnX Output vector of derivatives of the - * log Activity Coefficients. length = m_kk - */ - virtual void getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const { - err("getdlnActCoeffdlnX"); - } + //@} /// @name Partial Molar Properties of the Solution //@{ @@ -576,7 +534,7 @@ namespace Cantera { //! Storage for the current derivative values of the //! gradients with respect to logarithm of the mole fraction of the //! log of theactivity coefficients of the species @deprecated - mutable std::vector dlnActCoeffdlnX_Scaled_; + mutable std::vector dlnActCoeffdlnX_diag_; //! Storage for the current derivative values of the gradients with respect to logarithm of the species mole number of the //! log of the activity coefficients of the species diff --git a/Cantera/src/thermo/IonsFromNeutralVPSSTP.cpp b/Cantera/src/thermo/IonsFromNeutralVPSSTP.cpp index 96726725b..8aaeb95da 100644 --- a/Cantera/src/thermo/IonsFromNeutralVPSSTP.cpp +++ b/Cantera/src/thermo/IonsFromNeutralVPSSTP.cpp @@ -198,7 +198,7 @@ namespace Cantera { muNeutralMolecule_ = b.muNeutralMolecule_; gammaNeutralMolecule_ = b.gammaNeutralMolecule_; dlnActCoeffdT_NeutralMolecule_ = b.dlnActCoeffdT_NeutralMolecule_; - dlnActCoeffdlnX_NeutralMolecule_ = b.dlnActCoeffdlnX_NeutralMolecule_; + dlnActCoeffdlnX_diag_NeutralMolecule_ = b.dlnActCoeffdlnX_diag_NeutralMolecule_; dlnActCoeffdlnN_diag_NeutralMolecule_ = b.dlnActCoeffdlnN_diag_NeutralMolecule_; return *this; @@ -593,9 +593,9 @@ namespace Cantera { } - //! Get the array of log concentration-like derivatives of the - //! log activity coefficients - /*! + // Get the array of log concentration-like derivatives of the + // log activity coefficients + /* * This function is a virtual method. For ideal mixtures * (unity activity coefficients), this can return zero. * Implementations should take the derivative of the @@ -612,12 +612,12 @@ namespace Cantera { * derivatives of the log Activity Coefficients. * length = m_kk */ - void IonsFromNeutralVPSSTP::getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const { + void IonsFromNeutralVPSSTP::getdlnActCoeffdlnX_diag(doublereal *dlnActCoeffdlnX_diag) const { s_update_lnActCoeff(); - s_update_dlnActCoeff_dlnX(); + s_update_dlnActCoeff_dlnX_diag(); for (int k = 0; k < m_kk; k++) { - dlnActCoeffdlnX[k] = dlnActCoeffdlnX_Scaled_[k]; + dlnActCoeffdlnX_diag[k] = dlnActCoeffdlnX_diag_[k]; } } @@ -1192,7 +1192,7 @@ namespace Cantera { muNeutralMolecule_.resize(numNeutralMoleculeSpecies_); gammaNeutralMolecule_.resize(numNeutralMoleculeSpecies_); dlnActCoeffdT_NeutralMolecule_.resize(numNeutralMoleculeSpecies_); - dlnActCoeffdlnX_NeutralMolecule_.resize(numNeutralMoleculeSpecies_); + dlnActCoeffdlnX_diag_NeutralMolecule_.resize(numNeutralMoleculeSpecies_); dlnActCoeffdlnN_diag_NeutralMolecule_.resize(numNeutralMoleculeSpecies_); } //==================================================================================================================== @@ -1582,7 +1582,7 @@ namespace Cantera { * This function will be called to update the internally storred * temperature derivative of the natural logarithm of the activity coefficients */ - void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnX() const { + void IonsFromNeutralVPSSTP::s_update_dlnActCoeff_dlnX_diag() const { int k, icat, jNeut; doublereal fmij; /* @@ -1590,11 +1590,11 @@ namespace Cantera { */ GibbsExcessVPSSTP *geThermo = dynamic_cast(neutralMoleculePhase_); if (!geThermo) { - fvo_zero_dbl_1(dlnActCoeffdlnX_Scaled_, m_kk); + fvo_zero_dbl_1(dlnActCoeffdlnX_diag_, m_kk); return; } - geThermo->getdlnActCoeffdlnX(DATA_PTR(dlnActCoeffdlnX_NeutralMolecule_)); + geThermo->getdlnActCoeffdlnX_diag(DATA_PTR(dlnActCoeffdlnX_diag_NeutralMolecule_)); switch (ionSolnType_) { case cIonSolnType_PASSTHROUGH: @@ -1607,19 +1607,19 @@ namespace Cantera { icat = cationList_[k]; jNeut = fm_invert_ionForNeutral[icat]; fmij = fm_neutralMolec_ions_[icat + jNeut * m_kk]; - dlnActCoeffdlnX_Scaled_[icat] = dlnActCoeffdlnX_NeutralMolecule_[jNeut]/fmij; + dlnActCoeffdlnX_diag_[icat] = dlnActCoeffdlnX_diag_NeutralMolecule_[jNeut]/fmij; } // Do the anion list icat = anionList_[0]; jNeut = fm_invert_ionForNeutral[icat]; - dlnActCoeffdlnX_Scaled_[icat]= 0.0; + dlnActCoeffdlnX_diag_[icat]= 0.0; // Do the list of neutral molecules for (k = 0; k < numPassThroughSpecies_; k++) { icat = passThroughList_[k]; jNeut = fm_invert_ionForNeutral[icat]; - dlnActCoeffdlnX_Scaled_[icat] = dlnActCoeffdlnX_NeutralMolecule_[jNeut]; + dlnActCoeffdlnX_diag_[icat] = dlnActCoeffdlnX_diag_NeutralMolecule_[jNeut]; } break; diff --git a/Cantera/src/thermo/IonsFromNeutralVPSSTP.h b/Cantera/src/thermo/IonsFromNeutralVPSSTP.h index e590366f0..f73105263 100644 --- a/Cantera/src/thermo/IonsFromNeutralVPSSTP.h +++ b/Cantera/src/thermo/IonsFromNeutralVPSSTP.h @@ -419,25 +419,21 @@ namespace Cantera { doublereal *dlnActCoeffds) const; //! Get the array of log concentration-like derivatives of the - //! log activity coefficients + //! log activity coefficients - diagonal component /*! * This function is a virtual method. For ideal mixtures * (unity activity coefficients), this can return zero. * Implementations should take the derivative of the * logarithm of the activity coefficient with respect to the - * logarithm of the concentration-like variable (i.e. mole fraction) - * that represents the standard state. - * This quantity is to be used in conjunction with derivatives of - * that concentration-like variable when the derivative of the chemical - * potential is taken. + * logarithm of the mole fraction. * * units = dimensionless * - * @param dlnActCoeffdlnX Output vector of log(mole fraction) + * @param dlnActCoeffdlnX_diag Output vector of log(mole fraction) * derivatives of the log Activity Coefficients. * length = m_kk */ - virtual void getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const; + virtual void getdlnActCoeffdlnX_diag(doublereal *dlnActCoeffdlnX_diag) const; //! Get the array of log concentration-like derivatives of the //! log activity coefficients - diagonal components @@ -744,7 +740,7 @@ namespace Cantera { * derivative of the natural logarithm of the activity coefficients * wrt logarithm of the mole fractions. */ - void s_update_dlnActCoeff_dlnX() const; + void s_update_dlnActCoeff_dlnX_diag() const; //! Update the derivative of the log of the activity coefficients //! wrt log(number of moles) - diagonal components @@ -891,7 +887,7 @@ namespace Cantera { mutable std::vector gammaNeutralMolecule_; mutable std::vector dlnActCoeff_NeutralMolecule_; mutable std::vector dlnActCoeffdT_NeutralMolecule_; - mutable std::vector dlnActCoeffdlnX_NeutralMolecule_; + mutable std::vector dlnActCoeffdlnX_diag_NeutralMolecule_; mutable std::vector dlnActCoeffdlnN_diag_NeutralMolecule_; }; diff --git a/Cantera/src/thermo/MargulesVPSSTP.cpp b/Cantera/src/thermo/MargulesVPSSTP.cpp index 065be1023..bb50b31db 100644 --- a/Cantera/src/thermo/MargulesVPSSTP.cpp +++ b/Cantera/src/thermo/MargulesVPSSTP.cpp @@ -989,13 +989,13 @@ namespace Cantera { } } //==================================================================================================================== - void MargulesVPSSTP::s_update_dlnActCoeff_dlnX() const { + void MargulesVPSSTP::s_update_dlnActCoeff_dlnX_diag() const { int iA, iB; doublereal XA, XB, g0 , g1; doublereal T = temperature(); - fvo_zero_dbl_1(dlnActCoeffdlnX_Scaled_, m_kk); + fvo_zero_dbl_1(dlnActCoeffdlnX_diag_, m_kk); doublereal RT = GasConstant * T; @@ -1011,8 +1011,8 @@ namespace Cantera { g0 = (m_HE_b_ij[i] - T * m_SE_b_ij[i]) / RT; g1 = (m_HE_c_ij[i] - T * m_SE_c_ij[i]) / RT; - dlnActCoeffdlnX_Scaled_[iA] += XA*XB*(2*g1*-2*g0-6*g1*XB); - dlnActCoeffdlnX_Scaled_[iB] += XA*XB*(2*g1*-2*g0-6*g1*XB); + dlnActCoeffdlnX_diag_[iA] += XA*XB*(2*g1*-2*g0-6*g1*XB); + dlnActCoeffdlnX_diag_[iB] += XA*XB*(2*g1*-2*g0-6*g1*XB); } } @@ -1024,10 +1024,10 @@ namespace Cantera { } } //==================================================================================================================== - void MargulesVPSSTP::getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const { - s_update_dlnActCoeff_dlnX(); + void MargulesVPSSTP::getdlnActCoeffdlnX_diag(doublereal *dlnActCoeffdlnX_diag) const { + s_update_dlnActCoeff_dlnX_diag(); for (int k = 0; k < m_kk; k++) { - dlnActCoeffdlnX[k] = dlnActCoeffdlnX_Scaled_[k]; + dlnActCoeffdlnX_diag[k] = dlnActCoeffdlnX_diag_[k]; } } //==================================================================================================================== diff --git a/Cantera/src/thermo/MargulesVPSSTP.h b/Cantera/src/thermo/MargulesVPSSTP.h index c607a50e0..8e3f4b198 100644 --- a/Cantera/src/thermo/MargulesVPSSTP.h +++ b/Cantera/src/thermo/MargulesVPSSTP.h @@ -794,25 +794,21 @@ namespace Cantera { virtual void getdlnActCoeffds(const doublereal dTds, const doublereal * const dXds, doublereal *dlnActCoeffds) const; //! Get the array of log concentration-like derivatives of the - //! log activity coefficients + //! log activity coefficients - diagonal component /*! * This function is a virtual method. For ideal mixtures * (unity activity coefficients), this can return zero. * Implementations should take the derivative of the * logarithm of the activity coefficient with respect to the - * logarithm of the concentration-like variable (i.e. mole fraction, - * molality, etc.) that represents the standard state. - * This quantity is to be used in conjunction with derivatives of - * that concentration-like variable when the derivative of the chemical - * potential is taken. + * logarithm of the mole fraction. * * units = dimensionless * - * @param dlnActCoeffdlnX Output vector of log(mole fraction) + * @param dlnActCoeffdlnX_diag Output vector of the diagonal component of the log(mole fraction) * derivatives of the log Activity Coefficients. * length = m_kk */ - virtual void getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const; + virtual void getdlnActCoeffdlnX_diag(doublereal *dlnActCoeffdlnX_diag) const; //! Get the array of derivatives of the log activity coefficients wrt mole numbers - diagonal only /*! @@ -822,13 +818,10 @@ namespace Cantera { * logarithm of the activity coefficient with respect to the * logarithm of the concentration-like variable (i.e. mole fraction, * molality, etc.) that represents the standard state. - * This quantity is to be used in conjunction with derivatives of - * that concentration-like variable when the derivative of the chemical - * potential is taken. * * units = dimensionless * - * @param dlnActCoeffdlnX Output vector of the diagonal entries for the log(mole fraction) + * @param dlnActCoeffdlnN_diag Output vector of the diagonal entries for the log(mole fraction) * derivatives of the log Activity Coefficients. * length = m_kk */ @@ -905,7 +898,7 @@ namespace Cantera { * derivative of the natural logarithm of the activity coefficients * wrt logarithm of the mole fractions. */ - void s_update_dlnActCoeff_dlnX() const; + void s_update_dlnActCoeff_dlnX_diag() const; //! Update the derivative of the log of the activity coefficients //! wrt log(moles) - diagonal only diff --git a/Cantera/src/thermo/ThermoPhase.cpp b/Cantera/src/thermo/ThermoPhase.cpp index c1d1034a5..20e5deff7 100644 --- a/Cantera/src/thermo/ThermoPhase.cpp +++ b/Cantera/src/thermo/ThermoPhase.cpp @@ -59,7 +59,8 @@ namespace Cantera { m_spthermo = 0; } - /** + //==================================================================================================================== + /* * Copy Constructor for the ThermoPhase object. * * Currently, this is implemented, but not tested. If called it will diff --git a/Cantera/src/thermo/ThermoPhase.h b/Cantera/src/thermo/ThermoPhase.h index 649606e78..fc5f868c5 100644 --- a/Cantera/src/thermo/ThermoPhase.h +++ b/Cantera/src/thermo/ThermoPhase.h @@ -2072,7 +2072,7 @@ namespace Cantera { } //! Get the array of log concentration-like derivatives of the - //! log activity coefficients + //! log activity coefficients - diagonal component only /*! * This function is a virtual method. For ideal mixtures * (unity activity coefficients), this can return zero. @@ -2086,11 +2086,11 @@ namespace Cantera { * * units = dimensionless * - * @param dlnActCoeffdlnX Output vector of derivatives of the + * @param dlnActCoeffdln_diag Output vector of derivatives of the * log Activity Coefficients. length = m_kk */ - virtual void getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const { - err("getdlnActCoeffdlnX"); + virtual void getdlnActCoeffdlnX_diag(doublereal *dlnActCoeffdlnX_diag) const { + err("getdlnActCoeffdlnX_diag"); } //! Get the array of log concentration-like derivatives of the diff --git a/Cantera/src/thermo/VPStandardStateTP.h b/Cantera/src/thermo/VPStandardStateTP.h index ea6b0eb0f..4bf25fb97 100644 --- a/Cantera/src/thermo/VPStandardStateTP.h +++ b/Cantera/src/thermo/VPStandardStateTP.h @@ -142,29 +142,7 @@ namespace Cantera { err("getdlnActCoeffdlnN_diag"); } - //! Get the array of log concentration-like derivatives of the - //! log activity coefficients - /*! - * This function is a virtual method. For ideal mixtures - * (unity activity coefficients), this can return zero. - * Implementations should take the derivative of the - * logarithm of the activity coefficient with respect to the - * logarithm of the concentration-like variable (i.e. mole fraction) - * that represents the standard state. - * This quantity is to be used in conjunction with derivatives of - * that concentration-like variable when the derivative of the chemical - * potential is taken. - * - * units = dimensionless - * - * @param dlnActCoeffdlnX Output vector of derivatives of the - * log Activity Coefficients. length = m_kk - */ - virtual void getdlnActCoeffdlnX(doublereal *dlnActCoeffdlnX) const { - err("getdlnActCoeffdlnX"); - } - //@} /// @name Partial Molar Properties of the Solution (VPStandardStateTP) //@{