10 double _n[] = {0, 4.367901028E-02, 6.709236199E-01, -1.765577859E+00, 8.582330241E-01, -1.206513052E+00, 5.120467220E-01, -4.000010791E-04, -1.247842423E-02, 3.100269701E-02, 1.754748522E-03, -3.171921605E-06, -2.240346840E-06, 2.947056156E-07, 1.830487909E-01, 1.511883679E-01, -4.289363877E-01, 6.894002446E-02, -1.408313996E-02, -3.063054830E-02, -2.969906708E-02, -1.932040831E-02, -1.105739959E-01, 9.952548995E-02, 8.548437825E-03, -6.150555662E-02, -4.291792423E-02, -1.813207290E-02, 3.445904760E-02, -2.385919450E-03, -1.159094939E-02, 6.641693602E-02, -2.371549590E-02, -3.961624905E-02, -1.387292044E-02, 3.389489599E-02, -2.927378753E-03, 9.324799946E-05, -6.287171518E+00, 1.271069467E+01, -6.423953466E+00};
11 double _d[] = {0, 1, 1, 1, 2, 2, 2, 2, 3, 4, 4, 8, 9, 10, 1, 1, 1, 2, 4, 5, 6, 1, 2, 3, 4, 4, 3, 5, 5, 8, 2, 3, 4, 4, 4, 5, 6, 2, 0, 0, 0};
12 double _t[] = {0, -0.5, 0.5, 1, 0.5, 1, 1.5, 4.5, 0, 1, 3, 1, 3, 3, 0, 1, 2, 0, 0, 2, 2, 5, 5, 5, 2, 4, 12, 8, 10, 10, 10, 14, 12, 18, 22, 18, 14, 2, 0, 1, 2};
13 double _l[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2};
14 double _eta[] = {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, 20, 40, 40, 40};
15 double _epsilon[] = {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, 1, 1, 1, 1};
16 double _beta[] = {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, 200, 250, 250, 250};
17 double _gamma[] = {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, 1.07, 1.11, 1.11, 1.11};
19 std::vector<double> n_v(_n,_n+
sizeof(_n)/
sizeof(
double));
20 std::vector<double> d_v(_d,_d+
sizeof(_d)/
sizeof(
double));
21 std::vector<double> t_v(_t,_t+
sizeof(_t)/
sizeof(
double));
22 std::vector<double> l_v(_l,_l+
sizeof(_l)/
sizeof(
double));
23 std::vector<double> eta_v(_eta,_eta+
sizeof(_eta)/
sizeof(
double));
24 std::vector<double> epsilon_v(_epsilon,_epsilon+
sizeof(_epsilon)/
sizeof(
double));
25 std::vector<double> beta_v(_beta,_beta+
sizeof(_beta)/
sizeof(
double));
26 std::vector<double> gamma_v(_gamma,_gamma+
sizeof(_gamma)/
sizeof(
double));
46 params.accentricfactor = 0.01142;
58 double _theta [] ={0,0,0,0,3.400432401,10.26951575,20.43932747,29.93744884,79.13351945};
59 std::vector<double> theta_v (_theta,_theta+
sizeof(_theta)/
sizeof(
double));
60 double _n0 [] ={0,9.91243972,-6.33270087,3.0016,0.008449,4.6942,3.4865,1.6572,1.4115};
61 std::vector<double> n0_v (_n0,_n0+
sizeof(_n0)/
sizeof(
double));
68 EOSReference.assign(
"Setzmann, U. and Wagner, W., \"A New Equation of State and Tables of Thermodynamic Properties for Methane Covering the Range from the Melting Line to 625 K at Pressures up to 1000 MPa,\" J. Phys. Chem. Ref. Data, 20(6):1061-1151, 1991.");
71 name.assign(
"Methane");
86 RHS = +1.9906389*pow(theta,0.354)
87 -0.78756197*pow(theta,1.0/2.0)
88 +0.0369976723*pow(theta,5.0/2.0);
98 RHS = -1.8802840*pow(theta,0.354)
99 -2.8526531*pow(theta,5.0/6.0)
100 -3.0006480*pow(theta,3.0/2.0)
101 -5.2511690*pow(theta,5.0/2.0)
102 -13.191859*pow(theta,25.0/6.0)
103 -37.553961*pow(theta,47.0/6.0);
113 RHS = -6.036219*pow(theta,1.0)
114 +1.409353*pow(theta,1.5)
115 -0.4945199*pow(theta,2.0)
116 -1.443048*pow(theta,4.5);
122 double C[] = {0, -3.0328138281, 16.918880086, -37.189364917, 41.288861858, -24.615921140, 8.9488430959, -1.8739245042, 0.20966101390, -9.6570437074e-3};
123 double OMEGA_2_2 = 0, e_k, sigma, Tstar;
129 for (
int i = 1; i <= 9; i++){
130 OMEGA_2_2 += C[i]*pow(Tstar,(i-1)/3.0-1);
133 return 10.50*sqrt(Tstar)*OMEGA_2_2/1e6;
137 double r[] = {0,1,1,2,2,2,3,3,4,4,1,1};
138 double s[] = {0,0,1,0,1,1.5,0,2,0,1,0,1};
139 double g[] = {0, 0.41250137, -0.14390912, 0.10366993, 0.40287464, -0.24903524, -0.12953131, 0.06575776, 0.02566628, -0.03716526, -0.38798341, 0.03533815};
141 double sum1 = 0, sum2 = 0, tau = 190.551/T, delta = rho/(10.139*16.043);
143 for (
int i = 1; i<= 9; i++)
145 sum1 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
147 for (
int i = 10; i<= 11; i++)
149 sum2 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
151 return 12.149*sum1/(1+sum2)/1e6;
163 double tau = 190.551/T, Tstar = T/e_k;
164 double fint = 1.458850-0.4377162/Tstar;
169 double delta_sigma_star;
170 double r[] = {0,1,2,3,4,5,5,2};
171 double s[] = {0,0,0,0,1,0,1,0};
173 if (T < 190.551 && rho < 10.139*16.043){
174 delta_sigma_star =
rhosatV(T)/(10.139*16.043);
177 delta_sigma_star = 11;
180 double j[] = {0, 2.4149207, 0.55166331, -0.52837734, 0.073809553, 0.24465507, -0.047613626, 1.5554612};
182 double sum1 = 0, tau = 190.551/T, delta = rho/(10.139*16.043);
184 for (
int i = 1; i <= 6; i++)
186 sum1 += j[i]*pow(delta,r[i])*pow(tau,s[i]);
188 sum1 += j[7]*delta*delta/delta_sigma_star;
189 return 6.29638*sum1/1e3;
213 -0.00023977831007049,
215 0.000019665987803305,
233 -0.00027839186242864,
234 0.000023560274071481,
236 -0.00076488325813618,
239 -0.00061404353331199,
242 -0.00026912472842883,
392 {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,0,0,
401 {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,0,0,
410 {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,0,0,
419 {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,0,0,
428 std::vector<double> n_v(n,n+
sizeof(n)/
sizeof(
double));
429 std::vector<double> d_v(d,d+
sizeof(d)/
sizeof(
double));
430 std::vector<double> t_v(t,t+
sizeof(t)/
sizeof(
double));
431 std::vector<double> l_v(l,l+
sizeof(l)/
sizeof(
double));
432 std::vector<double> eta_v(eta,eta+
sizeof(eta)/
sizeof(
double));
433 std::vector<double> epsilon_v(epsilon,epsilon+
sizeof(epsilon)/
sizeof(
double));
434 std::vector<double> beta_v(beta,beta+
sizeof(beta)/
sizeof(
double));
435 std::vector<double> gamma_v(gamma,gamma+
sizeof(gamma)/
sizeof(
double));
438 crit.
rho = 6.856886685*30.06904;
444 params.molemass = 30.06904;
446 params.ptriple = 0.00114240920349;
447 params.accentricfactor = 0.099;
459 double _theta [] ={0,0,0,0,1.409105233,4.009917071,6.596709834,13.97981027};
460 std::vector<double> theta_v (_theta,_theta+
sizeof(_theta)/
sizeof(
double));
461 double _n0 [] ={0,9.212802589,-4.68224855,3.003039265,1.117433359,3.467773215,6.94194464,5.970850948};
462 std::vector<double> n0_v (_n0,_n0+
sizeof(_n0)/
sizeof(
double));
469 EOSReference.assign(
"Buecker, D. and Wagner, W. \"A Reference Equation of State for the Thermodynamic Properties of Ethane for Temperatures from the Melting Line to 675 K and Pressures up to 900 MPa,\" J. Phys. Chem. Ref. Data, 35(1):205-266, 2006.");
472 name.assign(
"Ethane");
489 RHS = +1.56138026*pow(theta,0.329)
490 -0.381552776*pow(theta,4.0/6.0)
491 +0.0785372040*pow(theta,8.0/6.0)
492 +0.0370315089*pow(theta,19.0/6.0);
499 const double ti[]={0,0.374, 1.0, 1.5, 2.6666666666666665, 3.8333333333333335, 0.38849999999999996};
500 const double Ni[]={0,-1.4796534339188399, -3.1822071897575968, 1.0445932652363741, 0.41065304624296084, -3.5816879898373259, -0.96561226454570503};
501 double summer=0,theta;
506 summer += Ni[i]*pow(theta,ti[i]);
516 RHS = -6.48647577*pow(theta,1.0)
517 +1.47010078*pow(theta,1.5)
518 -1.66261122*pow(theta,2.5)
519 +3.57898378*pow(theta,3.5)
520 -4.79105705*pow(theta,4.0);
528 double C[] = {0, -3.0328138281, 16.918880086, -37.189364917, 41.288861858, -24.615921140, 8.9488430959, -1.8739245042, 0.20966101390, -9.6570437074e-3};
529 double OMEGA_2_2 = 0, e_k, sigma, Tstar;
535 for (
int i = 1; i<= 9; i++)
537 OMEGA_2_2 += C[i]*pow(Tstar,(i-1)/3.0-1);
540 return 12.0085*sqrt(Tstar)*OMEGA_2_2/1e6;
544 double r[] = {0,1,1,2,2,2,3,3,4,4,1,1};
545 double s[] = {0,0,1,0,1,1.5,0,2,0,1,0,1};
546 double g[] = {0, 0.47177003, -0.23950311, 0.39808301, -0.27343335, 0.35192260, -0.21101308, -0.00478579, 0.07378129, -0.030435255, -0.30435286, 0.001215675};
548 double sum1 = 0, sum2 = 0, tau = 305.33/T, delta = rho/(6.87*30.070);
550 for (
int i = 1; i<= 9; i++)
552 sum1 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
554 for (
int i = 10; i<= 11; i++)
556 sum2 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
558 return 15.977*sum1/(1+sum2)/1e6;
570 double tau = 305.33/T, Tstar = T/e_k;
571 double fint = 1.7104147-0.6936482/Tstar;
576 double r[] = {0,1,2,3,4,5,1,3};
577 double s[] = {0,0,0,0,0,0,1.5,1};
578 double j[] = {0,0.96084322,2.7500235,-0.026609289,-0.078146729,0.21881339,2.3849563,-0.75113971};
580 double sum1 = 0, tau = 305.33/T, delta = rho/(6.87*30.070);
582 for (
int i = 1; i<= 7; i++)
584 sum1 += j[i]*pow(delta,r[i])*pow(tau,s[i]);
586 return 4.41786*sum1/1e3;
595 double _n [] = {0, 2.5536998241635E+00, -4.4585951806696E+00, 8.2425886369063E-01, 1.1215007011442E-01, -3.5910933680333E-02, 1.6790508518103E-02, 3.2734072508724E-02, 9.5571232982005E-01, -1.0003385753419E+00, 8.5581548803855E-02, -2.5147918369616E-02, -1.5202958578918E-03, 4.7060682326420E-03, -9.7845414174006E-02, -4.8317904158760E-02, 1.7841271865468E-01, 1.8173836739334E-02, -1.1399068074953E-01, 1.9329896666669E-02, 1.1575877401010E-03, 1.5253808698116E-04, -4.3688558458471E-02, -8.2403190629989E-03, -2.8390056949441E-02, 1.4904666224681E-03};
596 double _l[]= {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0};
597 double _d[]= {0, 1, 1, 1, 2, 3, 4, 4, 1, 1, 2, 7, 8, 8, 1, 2, 3, 3, 4, 5, 5, 10, 2, 6, 1, 2};
598 double _t[]= {0, 0.5, 1, 1.5, 0, 0.5, 0.5, 0.75, 2, 2.5, 2.5, 1.5, 1, 1.5, 4, 7, 3, 7, 3, 1, 6, 0, 6, 13, 2, 0};
599 double _eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10};
600 double _epsilon[] = {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.85, 1};
601 double _beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 200};
602 double _gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.16, 1.13};
603 std::vector<double> n_v(_n,_n+
sizeof(_n)/
sizeof(
double));
604 std::vector<double> d_v(_d,_d+
sizeof(_d)/
sizeof(
double));
605 std::vector<double> t_v(_t,_t+
sizeof(_t)/
sizeof(
double));
606 std::vector<double> l_v(_l,_l+
sizeof(_l)/
sizeof(
double));
607 std::vector<double> eta_v(_eta,_eta+
sizeof(_eta)/
sizeof(
double));
608 std::vector<double> epsilon_v(_epsilon,_epsilon+
sizeof(_epsilon)/
sizeof(
double));
609 std::vector<double> beta_v(_beta,_beta+
sizeof(_beta)/
sizeof(
double));
610 std::vector<double> gamma_v(_gamma,_gamma+
sizeof(_gamma)/
sizeof(
double));
619 params.molemass = 58.12220;
621 params.ptriple = 0.000665785834101;
622 params.accentricfactor = 0.200810094644;
634 double _theta [] ={0,0,0,0,0.774840445,3.340602552,4.970513096,9.975553778};
635 std::vector<double> theta_v (_theta,_theta+
sizeof(_theta)/
sizeof(
double));
636 double _n0 [] ={0, 12.54882924,-5.46976878,3.24680487,5.54913289,11.4648996,7.59987584,9.66033239};
637 std::vector<double> n0_v (_n0,_n0+
sizeof(_n0)/
sizeof(
double));
644 EOSReference.assign(
"Buecker, D. and Wagner, W. \"Reference Equations of State for the Thermodynamic Properties of Fluid Phase n-Butane and Isobutane,\" J. Phys. Chem. Ref. Data, Vol. 35, No. 2, 2006, 929-1019.");
647 name.assign(
"n-Butane");
666 RHS = +1.97874515*pow(theta,0.345)
667 +0.85679951*pow(theta,1.0)
668 -0.341871887*pow(theta,1.5)
669 +0.304337558*pow(theta,3.0);
670 rho = (1.0+ RHS)*rhoc;
676 const double ti[]={0, 0.355, 0.38799999999999996, 0.8333333333333334, 17.166666666666668, 3.5, 4.666666666666667};
677 const double Ni[]={0, -1.0295542341081576, -1.2940836117556569, -2.7620656950014832, 1.8460149445757177, -2.4159729873675766, -1.9343557659300938};
678 double summer=0,theta;
683 summer += Ni[i]*pow(theta,ti[i]);
693 RHS = -7.17616903*pow(theta,1.0)
694 +2.53635336*pow(theta,1.5)
695 -2.07532869*pow(theta,2.0)
696 -2.82241113*pow(theta,4.5);
702 double a[] = {0.17067154, -0.48879666, 0.039038856};
703 double b[] = {-19.572881, 219.73999, -1015.3226, 2471.01251, -3375.1717, 2491.6597, -787.26086, 14.085455, -0.34664158};
707 double Tstar = T/e_k;
708 double Gstar = exp(a[0]+a[1]*log(Tstar)+a[2]*log(Tstar)*log(Tstar));
709 double eta_0 = 0.021357*sqrt(
params.molemass*T)/(sigma*sigma*Gstar);
712 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);
713 double B = Bstar*0.6022137*sigma*sigma*sigma;
716 e[2][0] = -54.7737770846; e[2][1] = 58.0898623034;
717 e[3][0] = 35.2658446259; e[3][1] = -39.6682203832;
718 e[4][0] = -1.83729542151; e[4][1] = 0;
719 e[5][0] = -0.833262985358; e[5][1] = 1.93837020663;
720 double f1 = 188.075903903;
721 double g1 = 2.30873963359, g2 = 0.881017652640;
724 double tau = T/
crit.
T, delta = rho/(3.920*58.1222);
725 for (
int i = 2; i<=5; i++)
727 for (
int j = 0; j< 2; j++)
729 sumresid += e[i][j]*pow(delta,i)/pow(tau,j);
733 double delta_0 = g1*(1+g2*sqrt(tau));
734 double eta_r = sumresid + f1*(delta/(delta_0-delta)-delta/delta_0);
736 double rhobar = rho/
params.molemass;
737 return (eta_0*(1+B*rhobar)+eta_r)/1e6;
741 double lambda_0 = 1.62676e-3+9.75703e-4*(T/
crit.
T) + 2.89887e-2*pow(T/
crit.
T,2);
744 double B1[] = {0, -3.08823e-2, 1.59698e-1, -1.41629e-1, 5.03252e-2, -6.04344e-3};
745 double B2[] = {0, 4.22711e-2, -1.43867e-1, 1.30043e-1, -4.73921e-2, 6.31824e-3};
747 for (
int i = 1; i<= 5; i++){
751 double lambda_r = sumresid;
755 return lambda_0+lambda_r+lambda_c;
760 double _n [] = {0, 2.0686820727966E+00, -3.6400098615204E+00, 5.1968754427244E-01, 1.7745845870123E-01, -1.2361807851599E-01, 4.5145314010528E-02, 3.0476479965980E-02, 7.5508387706302E-01, -8.5885381015629E-01, 3.6324009830684E-02, -1.9548799450550E-02, -4.4452392904960E-03, 4.6410763666460E-03, -7.1444097992825E-02, -8.0765060030713E-02, 1.5560460945053E-01, 2.0318752160332E-03, -1.0624883571689E-01, 3.9807690546305E-02, 1.6371431292386E-02, 5.3212200682628E-04, -7.8681561156387E-03, -3.0981191888963E-03, -4.2276036810382E-02, -5.3001044558079E-03};
761 double _l[]= {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 0, 0};
762 double _d[]= {0, 1, 1, 1, 2, 3, 4, 4, 1, 1, 2, 7, 8, 8, 1, 2, 3, 3, 4, 5, 5, 10, 2, 6, 1, 2};
763 double _t[]= {0, 0.5, 1, 1.5, 0, 0.5, 0.5, 0.75, 2, 2.5, 2.5, 1.5, 1, 1.5, 4, 7, 3, 7, 3, 1, 6, 0, 6, 13, 2, 0};
764 double _eta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10};
765 double _epsilon[] = {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.85, 1};
766 double _beta[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 200};
767 double _gamma[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.16, 1.13};
768 std::vector<double> n_v(_n,_n+
sizeof(_n)/
sizeof(
double));
769 std::vector<double> d_v(_d,_d+
sizeof(_d)/
sizeof(
double));
770 std::vector<double> t_v(_t,_t+
sizeof(_t)/
sizeof(
double));
771 std::vector<double> l_v(_l,_l+
sizeof(_l)/
sizeof(
double));
772 std::vector<double> eta_v(_eta,_eta+
sizeof(_eta)/
sizeof(
double));
773 std::vector<double> epsilon_v(_epsilon,_epsilon+
sizeof(_epsilon)/
sizeof(
double));
774 std::vector<double> beta_v(_beta,_beta+
sizeof(_beta)/
sizeof(
double));
775 std::vector<double> gamma_v(_gamma,_gamma+
sizeof(_gamma)/
sizeof(
double));
784 params.molemass = 58.12220;
786 params.ptriple = 2.28968758984e-05;
787 params.accentricfactor = 0.183531783208;
799 double _theta [] ={0,0,0,0,0.951277902,2.387895885,4.346904269,10.36885864};
800 std::vector<double> theta_v (_theta,_theta+
sizeof(_theta)/
sizeof(
double));
801 double _n0 [] ={0,11.60865546,-5.29450411,3.05956619,4.94641014,4.09475197,15.6632824,9.73918122};
802 std::vector<double> n0_v (_n0,_n0+
sizeof(_n0)/
sizeof(
double));
809 EOSReference.assign(
"Buecker, D. and Wagner, W. \"Reference Equations of State for the Thermodynamic Properties of Fluid Phase n-Butane and Isobutane,\" J. Phys. Chem. Ref. Data, Vol. 35, No. 2, 2006, 929-1019.");
812 name.assign(
"IsoButane");
813 aliases.push_back(
"isobutane");
814 aliases.push_back(
"Isobutane");
815 aliases.push_back(
"ISOBUTANE");
821 params.HSReferenceState =
"IIR";
835 RHS = +2.04025104*pow(theta,0.355)
836 +0.850874089*pow(theta,1.0)
837 -0.479052281*pow(theta,4.0/3.0)
838 +0.348201252*pow(theta,7.0/3.0);
839 rho = (1.0 + RHS)*rhoc;
845 const double ti[]={0,0.38949999999999996, 0.39899999999999997, 0.8333333333333334, 1.5, 2.6666666666666665, 3.5};
846 const double Ni[]={0,-20.080357830155275, 18.457306494924232, -3.7935794935101383, 0.27898485736137468, 1.7770827488706802, -5.6964841742935048};
847 double summer=0,theta;
852 summer += Ni[i]*pow(theta,ti[i]);
860 const double ti[]={0, 16.5, 1.0, 1.3333333333333333, 2.8333333333333335, 4.833333333333333, 7.333333333333333};
861 const double Ni[]={0, -1.5783244561468581, -7.0007865713821147, 1.1998975400416103, -1.2029491215695771, -2.9725455394203251, 1.1271706682355129};
862 double summer=0,theta;
867 summer += Ni[i]*pow(theta,ti[i]);
879 double a[] = {0.53583008, -0.45629630, 0.049911282};
880 double b[] = {-19.572881, 219.73999, -1015.3226, 2471.01251, -3375.1717, 2491.6597, -787.26086, 14.085455, -0.34664158};
884 double Tstar = T/e_k;
885 double Gstar = exp(a[0]+a[1]*log(Tstar)+a[2]*log(Tstar)*log(Tstar));
886 double eta_0 = 0.021357*sqrt(
params.molemass*T)/(sigma*sigma*Gstar);
889 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);
890 double B = Bstar*0.602214129*sigma*sigma*sigma;
893 e[2][0] = 103.511763411; e[2][1] = -312.670896234;
894 e[2][2] = 145.253750239; e[3][0] = -210.649894193;
895 e[3][1] = 386.269696509; e[3][2] = -214.963015527;
896 e[4][0] = 112.580360920; e[4][1] = -223.242033154;
897 e[4][2] = 119.114788598; e[5][0] = -18.1909745900;
898 e[5][1] = 36.0438957232; e[5][2] = -21.3960184050;
899 double f1 = 1940.37606990;
900 double g1 = 2.33859774637, g2 = 1.00596672174;
903 double tau = T/
crit.
T, delta = rho/(3.860*58.1222);
904 for (
int i = 2; i < 6; i++)
906 for (
int j = 0; j < 3; j++)
908 sumresid += e[i][j]*pow(delta,i)/pow(tau,j);
912 double delta_0 = g1*(1+g2*sqrt(tau));
913 double eta_r = sumresid + f1*(delta/(delta_0-delta)-delta/delta_0);
915 double rhobar = rho/
params.molemass;
916 return (eta_0*(1+B*rhobar)+eta_r)/1e6;
920 double lambda_0 = -2.37901e-3+1.06601e-2*(T/
crit.
T) + 2.15811e-2*pow(T/
crit.
T,2);
923 double B1[] = {0, -3.94953e-2, 1.61607e-1, -1.38049e-1, 4.83126e-2, -5.78452e-3};
924 double B2[] = {0, 4.51967e-2, -1.34395e-1, 1.15446e-1, -4.11718e-2, 5.43111e-3};
926 for (
int i = 1; i<= 5; i++){
930 double lambda_r = sumresid;
934 return lambda_0+lambda_r+lambda_c;
double conductivity_residual(double T, double rho)
double viscosity_dilute(double T)
std::vector< phi_BC * > phirlist
virtual double d2phi0_dTau2(double tau, double delta)
double viscosity_Trho(double, double)
double conductivity_Trho(double T, double rho)
struct FluidLimits limits
double viscosity_residual(double T, double rho)
double viscosity_dilute(double T)
std::string name
A container to hold the cache for residual Helmholtz derivatives.
double conductivity_Trho(double, double)
double conductivity_residual(double T, double rho)
std::string TransportReference
A std::string that contains a reference for thermo properties for the fluid.
double conductivity_dilute(double T)
void ECSParams(double *e_k, double *sigma)
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...
double conductivity_Trho(double, double)
struct CriticalStruct reduce
A pointer to the point that is used to reduce the T and rho for EOS.
struct CriticalStruct * preduce
std::string EOSReference
The critical qd parameter for the Olchowy-Sengers cross-over term.
double viscosity_residual(double T, double rho)
std::string REFPROPname
The name of the fluid.
std::string ECS_LENNARD_JONES
double viscosity_Trho(double T, double rho)
double viscosity_Trho(double T, double rho)
void ECSParams(double *e_k, double *sigma)
std::string SURFACE_TENSION
struct CriticalStruct crit
BibTeXKeysStruct BibTeXKeys
double conductivity_Trho(double T, double rho)
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)
void ECSParams(double *e_k, double *sigma)
double viscosity_Trho(double, double)
double conductivity_dilute(double T)