/* * ------------ Partial Molar Properties of the Solution ------------ */ void GibbsExcessVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { /* * Get the standard state values in m^3 kmol-1 */ getStandardVolumes(vbar); }
void MixedSolventElectrolyte::getPartialMolarVolumes(doublereal* vbar) const { int delAK, delBK; double XA, XB, g0 , g1; double T = temperature(); /* * Get the standard state values in m^3 kmol-1 */ getStandardVolumes(vbar); for (size_t iK = 0; iK < m_kk; iK++) { delAK = 0; delBK = 0; for (size_t i = 0; i < numBinaryInteractions_; i++) { size_t iA = m_pSpecies_A_ij[i]; size_t iB = m_pSpecies_B_ij[i]; if (iA==iK) { delAK = 1; } else if (iB==iK) { delBK = 1; } XA = moleFractions_[iA]; XB = moleFractions_[iB]; g0 = (m_VHE_b_ij[i] - T * m_VSE_b_ij[i]); g1 = (m_VHE_c_ij[i] - T * m_VSE_c_ij[i]); vbar[iK] += XA*XB*(g0+g1*XB)+((delAK-XA)*XB+XA*(delBK-XB))*(g0+g1*XB)+XA*XB*(delBK-XB)*g1; } } }
void MolarityIonicVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { // 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; } }
void RedlichKisterVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { /* * 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; } }
void MaskellSolidSolnPhase::calcDensity() { const vector_fp& vbar = getStandardVolumes(); vector_fp moleFracs(m_kk); Phase::getMoleFractions(&moleFracs[0]); doublereal vtotal = 0.0; for (size_t i = 0; i < m_kk; i++) { vtotal += vbar[i] * moleFracs[i]; } Phase::setDensity(meanMolecularWeight() / vtotal); }
void MargulesVPSSTP::getPartialMolarVolumes(doublereal* vbar) const { double T = temperature(); // Get the standard state values in m^3 kmol-1 getStandardVolumes(vbar); for (size_t i = 0; i < numBinaryInteractions_; i++) { size_t iA = m_pSpecies_A_ij[i]; size_t iB = m_pSpecies_B_ij[i]; double XA = moleFractions_[iA]; double XB = moleFractions_[iB]; double g0 = (m_VHE_b_ij[i] - T * m_VSE_b_ij[i]); double g1 = (m_VHE_c_ij[i] - T * m_VSE_c_ij[i]); const doublereal temp1 = g0 + g1 * XB; const doublereal all = -1.0*XA*XB*temp1 - XA*XB*XB*g1; for (size_t iK = 0; iK < m_kk; iK++) { vbar[iK] += all; } vbar[iA] += XB * temp1; vbar[iB] += XA * temp1 + XA*XB*g1; } }
void MaskellSolidSolnPhase::getPartialMolarVolumes(doublereal* vbar) const { getStandardVolumes(vbar); }
void LatticePhase::getPartialMolarVolumes(doublereal* vbar) const { getStandardVolumes(vbar); }
void IdealMolalSoln::getPartialMolarVolumes(doublereal* vbar) const { getStandardVolumes(vbar); }
const vector_fp& GibbsExcessVPSSTP::getPartialMolarVolumesVector() const { return getStandardVolumes(); }
void VPSSMgr::getStandardVolumes_ref(doublereal* vol) const { getStandardVolumes(vol); //err("getStandardVolumes_ref"); }