Fixed Calculation of dlnActCoeffdlnN

This commit is contained in:
Christopher Lueth 2010-08-11 21:22:20 +00:00
parent e3c4a82dc9
commit 08a84b83a9

View file

@ -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);
}
}
}