24 #define _CRTDBG_MAP_ALLOC
25 #define _CRT_SECURE_NO_WARNINGS
47 static const double n[]={0,
67 -0.000082659729025197,
91 static const double d[]={0,
135 static const double t[]={0.00,
179 static const double c[]={
180 0,0,0,0,0,0,0,0,0,0,0,0,0,
210 static const double alpha[]={
211 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
218 static const double beta[]={
219 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
226 static const double GAMMA[]={
227 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
234 static const double epsilon[]={
235 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
243 static double a0[]={0.0,
263 params.ptriple = 68.9004210852;
264 params.accentricfactor = -0.00219;
273 EOSReference.assign(
"\"A New Equation of State for Argon Covering the Fluid Region"
274 " for Temperatures From the Melting Line to 700 K"
275 " at Pressures up to 1000 MPa\""
276 " Ch. Tegeler, R. Span, and W. Wagner,"
277 " J. Phys. Chem. Ref. Data, Vol. 28, No. 3, 1999");
278 TransportReference.assign(
"\"Viscosity and Thermal Conductivity Equations for Nitrogen, Oxygen, Argon, and Air\" E. W. Lemmon and R. T Jacobsen International Journal of Thermophysics, Vol. 25, No. 1, January 2004 \nNote: Critical enhancement included");
280 name.assign(
"Argon");
289 double ArgonClass::X_tilde(
double T,
double tau,
double delta)
293 double drho_dp,R_Argon;
306 double eta0,OMEGA,delta,tau,Tstar,lambda0,lambdar,num,
307 cp,cv,OMEGA_tilde,OMEGA_tilde0,zeta,nu,gamma,R0,lambdac,k,
309 double b[]={0.431,-0.4623,0.08406,0.005341,-0.00331};
311 double N[]={0,0.8158,-0.4320,0.0,13.73,10.07,0.7375,-33.96,20.47,-2.274,-3.973};
312 double t[]={0,0,-0.77,-1.0,0.0,0.0,0.0,0.8,1.2,0.8,0.5};
313 double d[]={0,0,0,0,1,2,4,5,6,9,1};
314 double l[]={0,0,0,0,0,0,0,2,2,2,4};
315 double g[]={0,0,0,0,0,0,0,1,1,1,1};
321 OMEGA=exp(b[0]*
powInt(log(Tstar),0)
322 +b[1]*
powInt(log(Tstar),1)
323 +b[2]*
powInt(log(Tstar),2)
324 +b[3]*
powInt(log(Tstar),3)
325 +b[4]*
powInt(log(Tstar),4));
327 eta0=0.0266958*sqrt(
params.molemass*T)/(sigma*sigma*OMEGA);
328 lambda0=N[1]*eta0+N[2]*pow(tau,t[2])+N[3]*pow(tau,t[3]);
330 lambdar=N[4]*pow(tau,t[4])*pow(delta,d[4])*exp(-g[4]*pow(delta,l[4]))
331 +N[5]*pow(tau,t[5])*pow(delta,d[5])*exp(-g[5]*pow(delta,l[5]))
332 +N[6]*pow(tau,t[6])*pow(delta,d[6])*exp(-g[6]*pow(delta,l[6]))
333 +N[7]*pow(tau,t[7])*pow(delta,d[7])*exp(-g[7]*pow(delta,l[7]))
334 +N[8]*pow(tau,t[8])*pow(delta,d[8])*exp(-g[8]*pow(delta,l[8]))
335 +N[9]*pow(tau,t[9])*pow(delta,d[9])*exp(-g[9]*pow(delta,l[9]))
336 +N[10]*pow(tau,t[10])*pow(delta,d[10])*exp(-g[10]*pow(delta,l[10]));
343 num=X_tilde(T,
reduce.
T/T,delta)-X_tilde(Tref,
reduce.
T/Tref,delta)*Tref/T;
347 return (lambda0+lambdar)/1e3;
353 zeta=zeta0*pow(num/LAMBDA,nu/gamma);
354 OMEGA_tilde=2.0/pi*((cp-cv)/cp*atan(zeta/q_D)+cv/cp*(zeta/q_D));
355 OMEGA_tilde0=2.0/pi*(1.-exp(-1./(q_D/zeta+1.0/3.0*(zeta/q_D)*(zeta/q_D)/delta/delta)));
356 lambdac=rho*cp*k*R0*T/(6*pi*zeta*mu)*(OMEGA_tilde-OMEGA_tilde0)*1e18;
358 return (lambda0+lambdar+lambdac)/1e3;
364 double eta0,etar,OMEGA,delta,tau,Tstar;
365 double b[]={0.431,-0.4623,0.08406,0.005341,-0.00331};
367 double N[]={0,12.19,13.99,0.005027,-18.93,-6.698,-3.827};
368 double t[]={0,0.42,0.0,0.95,0.5,0.9,0.8};
369 double d[]={0,1,2,10,5,1,2};
370 double l[]={0,0,0,0,2,4,4};
371 double g[]={0,0,0,0,1,1,1};
376 OMEGA=exp(b[0]*
powInt(log(Tstar),0)
377 +b[1]*
powInt(log(Tstar),1)
378 +b[2]*
powInt(log(Tstar),2)
379 +b[3]*
powInt(log(Tstar),3)
380 +b[4]*
powInt(log(Tstar),4));
382 eta0=0.0266958*sqrt(
params.molemass*T)/(sigma*sigma*OMEGA);
383 etar=N[1]*pow(tau,t[1])*pow(delta,d[1])*exp(-g[1]*pow(delta,l[1]))
384 +N[2]*pow(tau,t[2])*pow(delta,d[2])*exp(-g[2]*pow(delta,l[2]))
385 +N[3]*pow(tau,t[3])*pow(delta,d[3])*exp(-g[3]*pow(delta,l[3]))
386 +N[4]*pow(tau,t[4])*pow(delta,d[4])*exp(-g[4]*pow(delta,l[4]))
387 +N[5]*pow(tau,t[5])*pow(delta,d[5])*exp(-g[5]*pow(delta,l[5]))
388 +N[6]*pow(tau,t[6])*pow(delta,d[6])*exp(-g[6]*pow(delta,l[6]));
390 return (eta0+etar)/1e6;
394 const double ti[]={0,1.0,1.5,2.0,4.5};
395 const double ai[]={0,-5.9409785,1.3553888,-0.46497607,-1.5399043};
400 summer=summer+ai[i]*pow(1-T/
reduce.
T,ti[i]);
406 const double ti[]={0,0.334,2.0/3.0,7.0/3.0,4.0};
407 const double ai[]={0,1.5004262,-0.31381290,0.086461622,-0.041477525};
412 summer=summer+ai[i]*pow(1.0-T/
reduce.
T,ti[i]);
418 const double ti[]={0,0.345,5.0/6.0,1.0,13.0/3.0};
419 const double ai[]={0,-1.70695656,-4.02739448,1.55177558,-2.30683228};
424 summer=summer+ai[i]*pow(1.0-T/
reduce.
T,ti[i]);
431 return 0.037*pow(1-T/
reduce.
T,1.25);
virtual double viscosity_Trho(double, double)
std::vector< phi_BC * > phirlist
struct FluidLimits limits
std::string name
A container to hold the cache for residual Helmholtz derivatives.
std::string TransportReference
A std::string that contains a reference for thermo properties for the fluid.
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.
virtual double conductivity_Trho(double, double)
std::string EOSReference
The critical qd parameter for the Olchowy-Sengers cross-over term.
std::string SURFACE_TENSION
double specific_heat_v_Trho(double T, double rho)
virtual double d2phir_dDelta2(double tau, double delta)
struct CriticalStruct crit
BibTeXKeysStruct BibTeXKeys
double surface_tension_T(double T)
std::vector< phi_BC * > phi0list
A vector of instances of the phi_BC classes for the residual Helmholtz energy contribution.
double specific_heat_p_Trho(double T, double rho)
virtual double dphir_dDelta(double tau, double delta)