10 double n[] = {0.0, 5.280760, -8.676580, 0.7501127, 0.7590023, 0.01451899, 4.777189, -3.330988, 3.775673, -2.290919, 0.8888268, -0.6234864, -0.04127263, -0.08455389, -0.1308752, 0.008344962, -1.532005, -0.05883649, 0.02296658};
11 double t[] = {0, 0.669, 1.05, 2.75, 0.956, 1.00, 2.00, 2.75, 2.38, 3.37, 3.47, 2.63, 3.45, 0.72, 4.23, 0.20, 4.5, 29.0, 24.0};
12 double d[] = {0, 1, 1, 1, 2, 4, 1, 1, 2, 2, 3, 4, 5, 1, 5, 1, 2, 3, 5};
13 double l[] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, 3, 3};
14 double m[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.7, 7.0, 6.0};
23 params.molemass = 120.0214;
25 params.accentricfactor = 0.3052;
37 const double a1 = 37.2674, a2 = 8.88404, a3 = -49.8651;
42 double a[] = {0,0,0,0, 2.303, 5.086, 7.3};
43 double b[] = {0,0,0,0, 0.92578, 2.22895, 5.03283};
45 std::vector<double> a_v(a,a+
sizeof(a)/
sizeof(
double));
46 std::vector<double> b_v(b,b+
sizeof(b)/
sizeof(
double));
51 TransportReference.assign(
"Viscosity: Huber IECR 2006\n\n Conductivity: Perkins JCED 2006");
64 const double ti[]={0,1.0,1.5,2.3,4.6};
65 const double Ni[]={0, -7.5295, 1.9026, -2.2966, -3.4480};
66 double summer=0,theta;
71 summer=summer+Ni[i]*pow(theta,ti[i]);
77 const double ti[]={0,1.0/3.0,0.6,2.9};
78 const double Ni[]={0, 1.6684, 0.88415, 0.44383};
85 summer+=Ni[i]*pow(theta,ti[i]);
92 const double ti[]={0,0.38,1.22,3.3,6.9};
93 const double Ni[]={0, -2.8403, -7.2738, -21.890, -58.825};
94 double summer=0,theta;
99 summer=summer+Ni[i]*pow(theta,ti[i]);
105 double b[] = {-19.572881, 219.73999, -1015.3226, 2471.01251, -3375.1717, 2491.6597, -787.26086, 14.085455, -0.34664158};
106 double N_A = 6.0221415e23;
110 double Tstar = T/e_k;
115 double Bstar = b[0]*pow(Tstar,-0.25*0)+b[1]*pow(Tstar,-0.25*1)+b[2]*pow(Tstar,-0.25*2)+b[3]*pow(Tstar,-0.25*3)+b[4]*pow(Tstar,-0.25*4)+b[5]*pow(Tstar,-0.25*5)+b[6]*pow(Tstar,-0.25*6)+b[7]*pow(Tstar,-2.5)+b[8]*pow(Tstar,-5.5);
116 double B = Bstar*N_A*sigma*sigma*sigma/1e27*1000;
119 e[2][1] = 0; e[3][2] = 0;
120 e[2][2] = 5.677448e-3; e[3][1] = -5.096662e-3;
122 double c1 = 1.412564e-1, c2 = 3.033797, c3 = 2.992464e-1;
126 for (
int i = 2; i<=3; i++)
128 for (
int j = 1; j <= 2; j++)
130 sumresid += e[i][j]*pow(delta,i)/pow(tau,j);
133 double delta_0 = c2 + c3*sqrt(T/
crit.
T);
134 double eta_r = (sumresid + c1*(delta/(delta_0-delta)-delta/delta_0))*1000;
136 double rhobar = rho/
params.molemass;
137 return (eta_0*(1+B*rhobar)+eta_r)/1e6;
142 *e_k = 237.077; *sigma = 0.5235;
148 double sumresid = 0, tau = T/
crit.
T;
149 double lambda_0 = (-4.6082e-3 + 1.68688e-2*tau + 4.88345e-3*tau*tau);
151 double B1[] = {0, -7.29410e-3, 4.16339e-2, -3.11487e-2, 1.12682e-2, -1.38322e-3};
152 double B2[] = {0, 1.10497e-2, -2.89236e-2, 2.78399e-2, -1.2110e-2, 2.11196e-3};
153 for (
int i = 1; i <= 5; i++)
157 double lambda_r = sumresid;
161 return lambda_0 + lambda_r + lambda_c;
166 return 0.05252*pow(1-T/
crit.
T, 1.237);
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.
double surface_tension_T(double T)
double conductivity_critical(double T, double rho, double qd=2e9, double GAMMA=0.0496, double zeta0=1.94e-10)
struct CriticalStruct reduce
A pointer to the point that is used to reduce the T and rho for EOS.
virtual double viscosity_dilute(double T, double e_k, double sigma)
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 conductivity_Trho(double T, double rho)
double viscosity_Trho(double T, double rho)
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.
void ECSParams(double *e_k, double *sigma)