Esempio n. 1
0
doublereal WaterPropsIAPWS::coeffThermExp() const
{
    doublereal kappa = isothermalCompressibility();
    doublereal beta = coeffPresExp();
    doublereal dens = delta * Rho_c;
    return kappa * dens * Rgas * beta / M_water;
}
Esempio n. 2
0
int WaterPropsIAPWS::phaseState(bool checkState) const {
    if (checkState) {
        if (tau <= 1.0) {
            iState = WATER_SUPERCRIT;
        } else {
            doublereal T = T_c / tau;
            doublereal rho = delta * Rho_c;
            //doublereal psatTable = psat_est(T);
            doublereal rhoMidAtm = 0.5 * (1.01E5 * M_water / (8314.472 * 373.15) + 1.0E3);
            doublereal rhoMid = Rho_c + (T - T_c) * (Rho_c - rhoMidAtm) / (T_c - 373.15);
            int iStateGuess = WATER_LIQUID;
            if (rho < rhoMid) {
                iStateGuess = WATER_GAS;
            }
            doublereal kappa = isothermalCompressibility();
            if (kappa >= 0.0) {
                iState = iStateGuess;
            } else {
                // When we are here we are between the spinodal curves
                doublereal rhoDel = rho * 1.000001;

                //setState_TR(T, rhoDel);
                doublereal deltaSave = delta;
                doublereal deltaDel = rhoDel / Rho_c;
                delta = deltaDel;
                m_phi->tdpolycalc(tau, deltaDel);

                doublereal kappaDel = isothermalCompressibility();
                doublereal d2rhodp2 = (rhoDel * kappaDel - rho * kappa) / (rhoDel - rho);
                if  (d2rhodp2 > 0.0) {
                    iState = WATER_UNSTABLELIQUID;
                } else {
                    iState = WATER_UNSTABLEGAS;
                }
                //setState_TR(T, rho);
                delta = deltaSave;

                m_phi->tdpolycalc(tau, delta);
            }
        }
    }
    return iState;
}
Esempio n. 3
0
 /*
  * cv_mole():
  *
  *  Molar heat capacity at constant volume of the mixture. 
  *  Units: J/kmol/K. 
  *
  *  For single species, we go directory to the 
  *  general Cp - Cv relation
  *
  *  Cp = Cv + alpha**2 * V * T / beta
  *
  * where 
  *     alpha = volume thermal expansion coefficient
  *     beta  = isothermal compressibility
  */
 doublereal SingleSpeciesTP::cv_mole() const {
   doublereal cvbar = cp_mole();
   doublereal alpha = thermalExpansionCoeff();
   doublereal beta = isothermalCompressibility();
   doublereal molecW = molecularWeight(0);
   doublereal V = molecW/density();
   doublereal T = temperature();
   if (beta != 0.0) {
     cvbar -= alpha * alpha * V * T / beta;
   }
   return cvbar;
 }
Esempio n. 4
0
doublereal SingleSpeciesTP::cv_mole() const
{
    /*
     *  For single species, we go directory to the general Cp - Cv relation
     *
     *  Cp = Cv + alpha**2 * V * T / beta
     *
     * where
     *     alpha = volume thermal expansion coefficient
     *     beta  = isothermal compressibility
     */
    doublereal cvbar = cp_mole();
    doublereal alpha = thermalExpansionCoeff();
    doublereal beta = isothermalCompressibility();
    doublereal V = molecularWeight(0)/density();
    doublereal T = temperature();
    if (beta != 0.0) {
        cvbar -= alpha * alpha * V * T / beta;
    }
    return cvbar;
}