double HFC134a::ldens() { if ((T < Tmn) || (T > Tc)) { throw TPX_Error("HFC134a::ldens", "Temperature out of range. T = " + fp2str(T)); } double x1 = T/Tc; double x2 = 1.0 - x1; return 518.2 + 884.13*pow(x2,1.0/3.0) + 485.84*pow(x2,2.0/3.0) + 193.29*pow(x2,10.0/3.0); }
double hydrogen::Psat() { double x = (1.0 - Tt/T)/(1.0 - Tt/Tc); double result; if ((T < Tmn) || (T > Tc)) { throw TPX_Error("hydrogen::Psat", "Temperature out of range. T = " + fp2str(T)); } result = Fhydro[0]*x + Fhydro[1]*x*x + Fhydro[2]*x*x*x + Fhydro[3]*x*pow(1-x, alpha); return exp(result)*Pt; }
double oxygen::ldens() { double xx=1-T/Tc, sum=0; if ((T < Tmn) || (T > Tc)) { throw TPX_Error("oxygen::ldens", "Temperature out of range. T = " + fp2str(T)); } for (int i=0; i<=5; i++) { sum+=Doxy[i]*pow(xx,double(i)/3.0); } return sum; }
double HFC134a::Psat() { if ((T < Tmn) || (T > Tc)) { throw TPX_Error("HFC134a::Psat", "Temperature out of range. T = " + fp2str(T)); } double x1 = T/Tc; double x2 = 1.0 - x1; double f = -7.686556*x2 + 2.311791*pow(x2,1.5) - 2.039554*x2*x2 - 3.583758*pow(x2,4); return Pc*exp(f/x1); }
double hydrogen::ldens() { if ((T < Tmn) || (T > Tc)) { throw TPX_Error("hydrogen::ldens", "Temperature out of range. T = " + fp2str(T)); } double x=1-T/Tc; double sum; int i; for (i=1, sum=0; i<=6; i++) { sum+=Dhydro[i]*pow(x, 1+double(i-1)/3.0); } return sum+Roc+Dhydro[0]*pow(x,alpha1); }
double water::ldens() { double sum=0; int i; if ((T < Tmn) || (T >= Tc)) { throw TPX_Error("water::ldens", "Temperature out of range. T = " + fp2str(T)); } for (i=0; i<8; i++) { sum+=D[i]*pow(1.0 - T/Tc, double(i+1)/3.0); } double density = Roc*(1+sum); return density; }
double water::Psat() { double log, sum=0,P; if ((T < Tmn) || (T > Tc)) { throw TPX_Error("water::Psat", "Temperature out of range. T = " + fp2str(T)); } for (int i=1; i<=8; i++) { sum += F[i-1]*pow(aww*(T-Tp),double(i-1)); // DGG mod } log = (Tc/T-1)*sum; P=exp(log)*Pc; return P; }
double methane::ldens() { double result; double sum; double w; if ((T < Tmn) || (T > Tc)) { throw TPX_Error("methane::ldens", "Temperature out of range. T = " + fp2str(T)); } w = (Tc - T)/(Tc - Tt); sum = Dmeth[0]*(1.0 - pow(w, 2.0/3.0)) + Dmeth[1]*(1.0 - pow(w, 4.0/3.0)) + Dmeth[2]*(1.0 - pow(w, 2)); result = pow(w,alpha1)*exp(sum); result *= (Rot-Roc); result += Roc; return result; }
double oxygen::Psat() { double lnp; int i; if ((T < Tmn) || (T > Tc)) { throw TPX_Error("oxygen::Psat", "Temperature out of range. T = " + fp2str(T)); } for (i=0, lnp=0; i<=7; i++) { if (i==3) { lnp+=Foxy[i]*pow(Tc-T, alpha); } else { lnp+=Foxy[i]*pow(T,i-1); } } lnp+=Foxy[8]*log(T); return exp(lnp); }