diff --git a/Cantera/src/thermo/MargulesVPSSTP.cpp b/Cantera/src/thermo/MargulesVPSSTP.cpp index bc2a11b7f..f2923c44d 100644 --- a/Cantera/src/thermo/MargulesVPSSTP.cpp +++ b/Cantera/src/thermo/MargulesVPSSTP.cpp @@ -916,25 +916,25 @@ 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; - // dlnActCoeffdlnN_diag_[iK] += 2*(delBK-XB)*(g0*(delAK-XA)+g1*(2*(delAK-XA)*XB+XA*(delBK-XB))); + dlnActCoeffdlnN_diag_[iK] += 2*(delBK-XB)*(g0*(delAK-XA)+g1*(2*(delAK-XA)*XB+XA*(delBK-XB))); - double gfac = g0 + g1 * XB; - double gggg = (delBK - XB) * g1; +// double gfac = g0 + g1 * XB; +// double gggg = (delBK - XB) * g1; - dlnActCoeffdlnN_diag_[iK] += gfac * delAK * ( - XB + delBK); +// dlnActCoeffdlnN_diag_[iK] += gfac * delAK * ( - XB + delBK); - dlnActCoeffdlnN_diag_[iK] += gfac * delBK * ( - XA + delAK); +// dlnActCoeffdlnN_diag_[iK] += gfac * delBK * ( - XA + delAK); - dlnActCoeffdlnN_diag_[iK] += gfac * (2.0 * XA * XB - delAK * XB - XA * delBK); +// dlnActCoeffdlnN_diag_[iK] += gfac * (2.0 * XA * XB - delAK * XB - XA * delBK); - dlnActCoeffdlnN_diag_[iK] += (delAK * XB + XA * delBK - XA * XB) * g1 * (-XB + delBK); +// dlnActCoeffdlnN_diag_[iK] += (delAK * XB + XA * delBK - XA * XB) * g1 * (-XB + delBK); - dlnActCoeffdlnN_diag_[iK] += gggg * ( - 2.0 * XA * XB + delAK * XB + XA * delBK); +// dlnActCoeffdlnN_diag_[iK] += gggg * ( - 2.0 * XA * XB + delAK * XB + XA * delBK); - dlnActCoeffdlnN_diag_[iK] += - g1 * XA * XB * (- XB + delBK); +// dlnActCoeffdlnN_diag_[iK] += - g1 * XA * XB * (- XB + delBK); } - // dlnActCoeffdlnN_diag_[iK] = XK*dlnActCoeffdlnN_diag_[iK]-XK; + dlnActCoeffdlnN_diag_[iK] = XK*dlnActCoeffdlnN_diag_[iK];//-XK; } } @@ -949,7 +949,7 @@ namespace Cantera { void MargulesVPSSTP::s_update_dlnActCoeff_dlnN() const { int iA, iB; doublereal delAK, delBK; - double XA, XB, g0 , g1; + double XA, XB, g0 , g1, XK,XM; double T = temperature(); double RT = GasConstant*T; @@ -961,8 +961,9 @@ namespace Cantera { * Loop over the activity coefficient gamma_k */ for (int iK = 0; iK < m_kk; iK++) { + XK = moleFractions_[iK]; for (int iM = 0; iM < m_kk; iM++) { - + XM = moleFractions_[iM]; for (int i = 0; i < numBinaryInteractions_; i++) { iA = m_pSpecies_A_ij[i]; @@ -983,22 +984,26 @@ 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; - double gfac = g0 + g1 * XB; - double gggg = (delBK - XB) * g1; + dlnActCoeffdlnN_(iK,iM) += g0*((delAM-XA)*(delBK-XB)+(delAK-XA)*(delBM-XB)); + dlnActCoeffdlnN_(iK,iM) += 2*g1*((delAM-XA)*(delBK-XB)*XB+(delAK-XA)*(delBM-XB)*XB+(delBM-XB)*(delBK-XB)*XA); + +// double gfac = g0 + g1 * XB; +// double gggg = (delBK - XB) * g1; - dlnActCoeffdlnN_(iK, iM) += gfac * delAK * ( - XB + delBM); +// dlnActCoeffdlnN_(iK, iM) += gfac * delAK * ( - XB + delBM); - dlnActCoeffdlnN_(iK, iM) += gfac * delBK * ( - XA + delAM); +// dlnActCoeffdlnN_(iK, iM) += gfac * delBK * ( - XA + delAM); - dlnActCoeffdlnN_(iK, iM) += gfac * (2.0 * XA * XB - delAM * XB - XA * delBM); +// dlnActCoeffdlnN_(iK, iM) += gfac * (2.0 * XA * XB - delAM * XB - XA * delBM); - dlnActCoeffdlnN_(iK, iM) += (delAK * XB + XA * delBK - XA * XB) * g1 * (-XB + delBM); +// dlnActCoeffdlnN_(iK, iM) += (delAK * XB + XA * delBK - XA * XB) * g1 * (-XB + delBM); - dlnActCoeffdlnN_(iK, iM) += gggg * ( - 2.0 * XA * XB + delAM * XB + XA * delBM); +// dlnActCoeffdlnN_(iK, iM) += gggg * ( - 2.0 * XA * XB + delAM * XB + XA * delBM); - dlnActCoeffdlnN_(iK, iM) += - g1 * XA * XB * (- XB + delBM); +// dlnActCoeffdlnN_(iK, iM) += - g1 * XA * XB * (- XB + delBM); } + dlnActCoeffdlnN_(iK,iM) = XM*dlnActCoeffdlnN_(iK,iM); } } }