6 #define _CRT_SECURE_NO_WARNINGS
72 static const double n[]={0,
92 static const double d[]={0,
113 static const double t[]={0.00,
133 static const double c[]={
145 static const double alpha[]={
146 0,0,0,0,0,0,0,0,0,0,0,0,
155 static const double beta[]={
156 0,0,0,0,0,0,0,0,0,0,0,0,
165 static const double GAMMA[]={
166 0,0,0,0,0,0,0,0,0,0,0,0,
175 static const double epsilon[]={
176 0,0,0,0,0,0,0,0,0,0,0,0,
186 static const double a0[]={0.0,
195 static const double b0[]={0.0,
203 std::vector<double> a0_v(a0,a0+
sizeof(a0)/
sizeof(
double));
204 std::vector<double> b0_v(b0,b0+
sizeof(b0)/
sizeof(
double));
227 params.molemass = 44.09562;
229 params.ptriple = 1.71314090116e-07;
230 params.accentricfactor = 0.1521;
239 EOSReference.assign(
"Lemmon, E.W., McLinden, M.O., Wagner, W., "
240 "\"Thermodynamic Properties of Propane. III. A Reference Equation of State"
241 "for Temperatures from the Melting Line to 650 K and Pressures up to 1000 MPa,\""
242 "J. Chem. Eng. Data, 54:3141-3180, 2009");
243 TransportReference.assign(
"Viscosity: E. Vogel, C. Kuchenmeister, and E. Bich, A. Laesecke,"
244 "\"Reference Correlation of the Viscosity of Propane\""
245 "J. Phys. Chem. Ref. Data, Vol. 27, No. 5, 1998\n\n"
246 "Conductivity: Kenneth N. Marsh, Richard A. Perkins, and Maria L. V. Ramires "
247 "\"Measurement and Correlation of the Thermal Conductivity of"
248 "Propane from 86 K to 600 K at Pressures to 70 MPa\","
249 "J. Chem. Eng. Data 2002, 47, 932-940 (Olchowy-Sengers)\n\n"
250 "Surface Tension: A. Mulero and I. Cachadi�a and M. I. Parra"
251 "\"Recommended Correlations for the Surface Tension of Common Fluids\""
252 ", J. Phys. Chem. Ref. Data, Vol. 41, No. 4, 2012");
254 name.assign(
"n-Propane");
259 aliases.push_back(std::string(
"PROPANE"));
260 aliases.push_back(std::string(
"N-PROPANE"));
271 double sum=0, delta, tau;
296 sum+=(B1[i]+B2[i]/tau)*pow(delta,(
double)i);
312 double lambda0,lambdar,lambdac,tau = 369.85/T;
315 double A[]={0.0, -1.24778e-3, 8.16371e-3, 1.99374e-2};
316 lambda0 = A[1]+A[2]/tau+A[3]/(tau*tau);
324 return lambda0+lambdar+lambdac;
329 *e_k = 263.88; *sigma = 0.49748;
333 double eta_star, a[]={0.25104574,-0.47271238,0,0.060836515,0};
334 double e_k = 263.88 , sigma = 0.49748, theta_star, Tstar;
337 theta_star = exp(a[0]*pow(log(Tstar),0)+a[1]*pow(log(Tstar),1)+a[3]*pow(log(Tstar),3));
338 eta_star = 0.141824*sqrt(T)/(pow(sigma,2)*theta_star)/1e6;
343 double e_k = 263.88 , sigma = 0.49748, Tstar, rhobar;
344 double B_eta_star,B_eta,eta_1,sum=0;
346 double b[]={-19.572881,219.73999,-1015.3226,2471.01251,-3375.1717,2491.6597,-787.26086,14.085455,-0.34664158};
347 for (
unsigned int i=0;i<=6;i++){
348 sum += b[i]*pow(Tstar,-0.25*i);
350 B_eta_star = sum+b[7]*pow(Tstar,-2.5)+b[8]*pow(Tstar,-5.5);
351 B_eta = 0.602214129*pow(sigma,3)*B_eta_star;
352 rhobar = rho/
params.molemass;
359 double sum=0,delta_0,DELTA_H_eta,tau,delta,eta_r;
360 double g1 = 2.50053938863, g2 = 0.860516059264,f1 = 1616.88405374;
363 e[2][0] = 35.9873030195; e[2][1] = -180.512188564; e[2][2] = 87.7124888223;
364 e[3][0] = -105.773052525; e[3][1] = 205.319740877; e[3][2] = -129.210932610;
365 e[4][0] = 58.9491587759; e[4][1] = -129.740033100; e[4][2] = 76.6280419971;
366 e[5][0] = -9.59407868475; e[5][1] = 21.0726986598; e[5][2] = -14.3971968187;
369 delta = rho / (44.09562*5);
371 delta_0=g1*(1+g2*sqrt(tau));
373 for (
int i=2;i<=5;i++){
374 for (
int j=0;j<=2;j++){
375 sum+=e[i][j]*pow(delta,i)/pow(tau,j);
378 DELTA_H_eta = sum + f1*(delta/(delta_0-delta)-delta/delta_0);
380 eta_r = DELTA_H_eta/1e6;
402 const double ti[]={0,0.09, 1.0, 2.1666666666666665, 2.5, 3.5, 6.666666666666667};
403 const double Ni[]={0, -0.0036326603098915731, -6.4417163271195328, 4.2879114303836188, -4.3361540375495373, -1.5330938298966583, -0.8380028193117014};
404 double summer=0,theta;
409 summer += Ni[i]*pow(theta,ti[i]);
416 const double ti[]={0, 0.3665, 0.3695, 0.39199999999999996, 0.39749999999999996, 1.5, 3.8333333333333335};
417 const double Ni[]={0, -2544.5789267169393, 3262.5780670317858, -2279.9253725524513, 1564.3230394188856, 0.17057178175644663, 0.1801528182529071};
424 summer += Ni[i]*pow(theta,ti[i]);
431 const double ti[]={0,0.353, 0.374, 1.0, 2.0, 3.6666666666666665, 21.333333333333332};
432 const double Ni[]={0,1.3470928285341803, -3.9397785053443175, -2.9376522081571999, 1.277500738496856, -4.2937206644727439, -2.2870921292077298};
433 double summer=0,theta;
438 summer=summer+Ni[i]*pow(theta,ti[i]);
444 return 0.05334*pow(1-T/
reduce.
T,1.235)-0.01748*pow(1-T/
reduce.
T,4.404);
std::vector< phi_BC * > phirlist
double viscosity_dilute(double T)
void ECSParams(double *e_k, double *sigma)
struct FluidLimits limits
std::string name
A container to hold the cache for residual Helmholtz derivatives.
double viscosity_higher_order(double T, double rho)
std::string TransportReference
A std::string that contains a reference for thermo properties for the fluid.
double conductivity_critical(double T, double rho, double qd=2e9, double GAMMA=0.0496, double zeta0=1.94e-10)
std::vector< std::string > aliases
The REFPROP-compliant name if REFPROP-"name" is not a compatible fluid name. If not included...
struct CriticalStruct reduce
A pointer to the point that is used to reduce the T and rho for EOS.
double conductivity_Trho(double, double)
double surface_tension_T(double T)
std::string EOSReference
The critical qd parameter for the Olchowy-Sengers cross-over term.
std::string REFPROPname
The name of the fluid.
std::string ECS_LENNARD_JONES
std::string SURFACE_TENSION
double viscosity_Trho(double, double)
struct CriticalStruct crit
BibTeXKeysStruct BibTeXKeys
std::vector< phi_BC * > phi0list
A vector of instances of the phi_BC classes for the residual Helmholtz energy contribution.
double viscosity_residual(double T, double rho)
double viscosity_dilute2(double T, double rho)
double conductivity_background(double T, double rho)
double viscosity_background(double T, double rho)