void ApproxMixTransport::updateViscosity_T() { double vratiokj, wratiojk, factor1; if (!m_spvisc_ok) { updateSpeciesViscosities(); } // see Eq. (9-5.15) of Reid, Prausnitz, and Poling for (size_t ij=0; ij<_kMajor.size(); ij++) { size_t j = _kMajor[ij]; for (size_t ik=ij; ik<_kMajor.size(); ik++) { size_t k = _kMajor[ik]; vratiokj = m_visc[k]/m_visc[j]; wratiojk = m_mw[j]/m_mw[k]; // Note that m_wratjk(k,j) holds the square root of // m_wratjk(j,k)! factor1 = 1.0 + (m_sqvisc[k]/m_sqvisc[j]) * m_wratjk(k,j); m_phi(k,j) = factor1*factor1 / (std::sqrt(8.0) * m_wratkj1(j,k)); m_phi(j,k) = m_phi(k,j)/(vratiokj * wratiojk); } } m_viscwt_ok = true; }
/* * Updates the array of pure species viscosities, and the weighting functions in the viscosity mixture rule. * The flag m_visc_ok is set to true. * * The formula for the weighting function is from Poling and Prausnitz. * See Eq. (9-5.14) of Poling, Prausnitz, and O'Connell. The equation for the weighting function * \f$ \phi_{ij} \f$ is reproduced below. * * \f[ * \phi_{ij} = \frac{ \left[ 1 + \left( \mu_i / \mu_j \right)^{1/2} \left( M_j / M_i \right)^{1/4} \right]^2 } * {\left[ 8 \left( 1 + M_i / M_j \right) \right]^{1/2}} * \f] */ void MixTransport::updateViscosity_T() { doublereal vratiokj, wratiojk, factor1; if (!m_spvisc_ok) updateSpeciesViscosities(); // see Eq. (9-5.15) of Reid, Prausnitz, and Poling int j, k; for (j = 0; j < m_nsp; j++) { for (k = j; k < m_nsp; k++) { vratiokj = m_visc[k]/m_visc[j]; wratiojk = m_mw[j]/m_mw[k]; // Note that m_wratjk(k,j) holds the square root of // m_wratjk(j,k)! factor1 = 1.0 + (m_sqvisc[k]/m_sqvisc[j]) * m_wratjk(k,j); m_phi(k,j) = factor1*factor1 / (SqrtEight * m_wratkj1(j,k)); m_phi(j,k) = m_phi(k,j)/(vratiokj * wratiojk); } } m_viscwt_ok = true; }