void MixedSolventElectrolyte::getPartialMolarEnthalpies(doublereal* hbar) const { /* * Get the nondimensional standard state enthalpies */ getEnthalpy_RT(hbar); /* * dimensionalize it. */ double T = temperature(); double RT = GasConstant * T; for (size_t k = 0; k < m_kk; k++) { hbar[k] *= RT; } /* * Update the activity coefficients, This also update the * internally stored molalities. */ s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); double RTT = RT * T; for (size_t k = 0; k < m_kk; k++) { hbar[k] -= RTT * dlnActCoeffdT_Scaled_[k]; } }
void RedlichKisterVPSSTP::getPartialMolarEntropies(doublereal* sbar) const { /* * Get the nondimensional standard state entropies */ getEntropy_R(sbar); double T = temperature(); /* * Update the activity coefficients, This also update the * internally stored molalities. */ s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { double xx = std::max(moleFractions_[k], SmallNumber); sbar[k] += - lnActCoeff_Scaled_[k] -log(xx) - T * dlnActCoeffdT_Scaled_[k]; } /* * dimensionalize it. */ for (size_t k = 0; k < m_kk; k++) { sbar[k] *= GasConstant; } }
void RedlichKisterVPSSTP::getLnActivityCoefficients(doublereal* lnac) const { // Update the activity coefficients s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { lnac[k] = lnActCoeff_Scaled_[k]; } }
void MolarityIonicVPSSTP::getLnActivityCoefficients(doublereal* lnac) const { // Update the activity coefficients s_update_lnActCoeff(); // take the exp of the internally stored coefficients. for (size_t k = 0; k < m_kk; k++) { lnac[k] = lnActCoeff_Scaled_[k]; } }
void MolarityIonicVPSSTP::getChemPotentials(doublereal* mu) const { // First get the standard chemical potentials in molar form. This requires // updates of standard state as a function of T and P getStandardChemPotentials(mu); // Update the activity coefficients s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { double xx = std::max(moleFractions_[k], SmallNumber); mu[k] += RT() * (log(xx) + lnActCoeff_Scaled_[k]); } }
/* * @param ac Output vector of activity coefficients. Length: m_kk. */ void MargulesVPSSTP::getActivityCoefficients(doublereal* ac) const { /* * Update the activity coefficients */ s_update_lnActCoeff(); /* * take the exp of the internally storred coefficients. */ for (int k = 0; k < m_kk; k++) { ac[k] = exp(lnActCoeff_Scaled_[k]); } }
void RedlichKisterVPSSTP::getLnActivityCoefficients(doublereal* lnac) const { /* * Update the activity coefficients */ s_update_lnActCoeff(); /* * take the exp of the internally stored coefficients. */ for (size_t k = 0; k < m_kk; k++) { lnac[k] = lnActCoeff_Scaled_[k]; } }
void MixedSolventElectrolyte::getActivityCoefficients(doublereal* ac) const { /* * Update the activity coefficients */ s_update_lnActCoeff(); /* * take the exp of the internally stored coefficients. */ for (size_t k = 0; k < m_kk; k++) { ac[k] = exp(lnActCoeff_Scaled_[k]); } }
void MargulesVPSSTP::getPartialMolarEnthalpies(doublereal* hbar) const { // Get the nondimensional standard state enthalpies getEnthalpy_RT(hbar); // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { hbar[k] *= RT(); } // Update the activity coefficients, This also update the internally stored // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { hbar[k] -= RT() * temperature() * dlnActCoeffdT_Scaled_[k]; } }
void RedlichKisterVPSSTP::getPartialMolarCp(doublereal* cpbar) const { getCp_R(cpbar); double T = temperature(); // Update the activity coefficients, This also update the internally stored // molalities. s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { cpbar[k] -= 2 * T * dlnActCoeffdT_Scaled_[k] + T * T * d2lnActCoeffdT2_Scaled_[k]; } // dimensionalize it. for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } }
void RedlichKisterVPSSTP::getChemPotentials(doublereal* mu) const { /* * First get the standard chemical potentials in * molar form. * -> this requires updates of standard state as a function * of T and P */ getStandardChemPotentials(mu); /* * Update the activity coefficients */ s_update_lnActCoeff(); for (size_t k = 0; k < m_kk; k++) { double xx = std::max(moleFractions_[k], SmallNumber); mu[k] += RT() * (log(xx) + lnActCoeff_Scaled_[k]); } }
void MixedSolventElectrolyte::getChemPotentials(doublereal* mu) const { /* * First get the standard chemical potentials in * molar form. * -> this requires updates of standard state as a function * of T and P */ getStandardChemPotentials(mu); /* * Update the activity coefficients */ s_update_lnActCoeff(); doublereal RT = GasConstant * temperature(); for (size_t k = 0; k < m_kk; k++) { double xx = std::max(moleFractions_[k], SmallNumber); mu[k] += RT * (log(xx) + lnActCoeff_Scaled_[k]); } }
void MargulesVPSSTP::getChemPotentials(doublereal* mu) const { doublereal xx; /* * First get the standard chemical potentials in * molar form. * -> this requires updates of standard state as a function * of T and P */ getStandardChemPotentials(mu); /* * Update the activity coefficients */ s_update_lnActCoeff(); /* * */ doublereal RT = GasConstant * temperature(); for (int k = 0; k < m_kk; k++) { xx = fmaxx(moleFractions_[k], xxSmall); mu[k] += RT * (log(xx) + lnActCoeff_Scaled_[k]); } }
void RedlichKisterVPSSTP::getPartialMolarCp(doublereal* cpbar) const { /* * Get the nondimensional standard state entropies */ getCp_R(cpbar); double T = temperature(); /* * Update the activity coefficients, This also update the * internally stored molalities. */ s_update_lnActCoeff(); s_update_dlnActCoeff_dT(); for (size_t k = 0; k < m_kk; k++) { cpbar[k] -= 2 * T * dlnActCoeffdT_Scaled_[k] + T * T * d2lnActCoeffdT2_Scaled_[k]; } /* * dimensionalize it. */ for (size_t k = 0; k < m_kk; k++) { cpbar[k] *= GasConstant; } }