CoolProp  4.2.5
An open-source fluid property and humid air property database
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Alkanes.cpp
Go to the documentation of this file.
1 
2 #include "CoolProp.h"
3 #include <vector>
4 #include "CPExceptions.h"
5 #include "FluidClass.h"
6 #include "Alkanes.h"
7 
9 {
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};
18 
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));
27 
28  //Critical parameters
29  crit.rho = 10.139128*16.0428; //[kg/m^3]
30  crit.p = PressureUnit(4599.2,UNIT_KPA); //[kPa]
31  crit.T = 190.564; //[K]
32  crit.v = 1/crit.rho;
33 
34  // Reducing parameters used in EOS
35  reduce.p = PressureUnit(4599.2, UNIT_KPA);
36  reduce.T = 190.564; //[K]
37  reduce.rho = 10.139128*16.0428; //[kg/m^3]
38  reduce.v = 1.0/reduce.rho;
39 
40  preduce = &reduce;
41 
42  // Other fluid parameters
43  params.molemass = 16.0428;
44  params.Ttriple = 90.6941;
45  params.ptriple = 11.696;
46  params.accentricfactor = 0.01142;
47  params.R_u = 8.31451;
48 
49  // Limits of EOS
50  limits.Tmin = params.Ttriple;
51  limits.Tmax = 500.0;
52  limits.pmax = 100000.0;
53  limits.rhomax = 1000000.0*params.molemass;
54 
55  phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,36));
56  phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,37,40));
57 
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));
62 
63  // lead term: log(delta)+c+m*tau
64  phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
65  phi0list.push_back(new phi0_logtau(n0_v[3]));
66  phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,8));
67 
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.");
69  TransportReference.assign("Using ECS in fully predictive mode");
70 
71  name.assign("Methane");
72  aliases.push_back("CH4");
73  aliases.push_back("methane");
74  aliases.push_back("METHANE");
75  REFPROPname.assign("METHANE");
76 
77  BibTeXKeys.EOS = "Setzmann-JPCRD-1991";
78  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
79 }
80 double MethaneClass::rhosatL(double T)
81 {
82  double rhoc = reduce.rho;
83  double theta = 1-T/reduce.T;
84  double RHS,rho;
85 
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);
89  rho = exp(RHS)*rhoc;
90  return rho;
91 }
92 double MethaneClass::rhosatV(double T)
93 {
94  double rhoc = reduce.rho;
95  double theta = 1-T/reduce.T;
96  double RHS,rho;
97 
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);
104  rho = exp(RHS)*rhoc;
105  return rho;
106 }
107 double MethaneClass::psat(double T)
108 {
109  double pc = reduce.p.Pa;
110  double theta = 1-T/reduce.T;
111  double RHS,p;
112 
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);
117  p = exp(reduce.T/T*RHS)*pc;
118  return p;
119 }
121 {
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;
124 
125  // Get the L-J parameters
126  this->ECSParams(&e_k,&sigma);
127 
128  Tstar = T/e_k;
129  for (int i = 1; i <= 9; i++){
130  OMEGA_2_2 += C[i]*pow(Tstar,(i-1)/3.0-1);
131  }
132 
133  return 10.50*sqrt(Tstar)*OMEGA_2_2/1e6; //[Pa-s]
134 }
135 double MethaneClass::viscosity_residual(double T, double rho)
136 {
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};
140 
141  double sum1 = 0, sum2 = 0, tau = 190.551/T, delta = rho/(10.139*16.043);
142 
143  for (int i = 1; i<= 9; i++)
144  {
145  sum1 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
146  }
147  for (int i = 10; i<= 11; i++)
148  {
149  sum2 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
150  }
151  return 12.149*sum1/(1+sum2)/1e6;
152 }
153 double MethaneClass::viscosity_Trho(double T, double rho)
154 {
155  return this->viscosity_dilute(T) + this->viscosity_residual(T,rho);
156 }
158 {
159  double e_k, sigma;
160  // Get the L-J parameters
161  this->ECSParams(&e_k,&sigma);
162 
163  double tau = 190.551/T, Tstar = T/e_k;
164  double fint = 1.458850-0.4377162/Tstar;
165  return 0.51826*(this->viscosity_dilute(T)*1e6)*(3.75-fint*(tau*tau*this->d2phi0_dTau2(tau,0)+1.5))/1e3; //[W/m/K]
166 }
167 double MethaneClass::conductivity_residual(double T, double rho)
168 {
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};
172 
173  if (T < 190.551 && rho < 10.139*16.043){
174  delta_sigma_star = rhosatV(T)/(10.139*16.043);
175  }
176  else{
177  delta_sigma_star = 11;
178  }
179 
180  double j[] = {0, 2.4149207, 0.55166331, -0.52837734, 0.073809553, 0.24465507, -0.047613626, 1.5554612};
181 
182  double sum1 = 0, tau = 190.551/T, delta = rho/(10.139*16.043);
183 
184  for (int i = 1; i <= 6; i++)
185  {
186  sum1 += j[i]*pow(delta,r[i])*pow(tau,s[i]);
187  }
188  sum1 += j[7]*delta*delta/delta_sigma_star;
189  return 6.29638*sum1/1e3; //[W/m/K]
190 }
191 double MethaneClass::conductivity_Trho(double T, double rho)
192 {
193  return this->conductivity_dilute(T) + this->conductivity_residual(T,rho) + this->conductivity_critical(T,rho,1/(0.545e-9),0.0563,0.19e-9);
194 }
195 
197 {
198 
199 double n[] =
200 {0.0,
201 0.83440745735241, //[1]
202 -1.4287360607171, //[2]
203 0.34430242210927, //[3]
204 -0.42096677920265, //[4]
205 0.012094500886549, //[5]
206 -0.57976201597341, //[6]
207 -0.033127037870838, //[7]
208 -0.1175165489413, //[8]
209 -0.11160957833067, //[9]
210 0.062181592654406, //[10]
211 0.098481795434443, //[11]
212 -0.098268582682358, //[12]
213 -0.00023977831007049, //[13]
214 0.00069885663328821, //[14]
215 0.000019665987803305, //[15]
216 -0.014586152207928, //[16]
217 0.046354100536781, //[17]
218 0.0060764622180645, //[18]
219 -0.0026447330147828, //[19]
220 -0.042931872689904, //[20]
221 0.0029987786517263, //[21]
222 0.005291933517501, //[22]
223 -0.0010383897798198, //[23]
224 -0.054260348214694, //[24]
225 -0.21959362918493, //[25]
226 0.35362456650354, //[26]
227 -0.12477390173714, //[27]
228 0.18425693591517, //[28]
229 -0.16192256436754, //[29]
230 -0.082770876149064, //[30]
231 0.050160758096437, //[31]
232 0.0093614326336655, //[32]
233 -0.00027839186242864, //[33]
234 0.000023560274071481, //[34]
235 0.0039238329738527, //[35]
236 -0.00076488325813618, //[36]
237 -0.004994430444073, //[37]
238 0.0018593386407186, //[38]
239 -0.00061404353331199, //[39]
240 -0.0023312179367924, //[40]
241 0.002930104790876, //[41]
242 -0.00026912472842883, //[42]
243 184.13834111814, //[43]
244 -10.397127984854, //[44]
245 };
246 
247 double d[] =
248 {0,
249 1, //[1]
250 1, //[2]
251 2, //[3]
252 2, //[4]
253 4, //[5]
254 1, //[6]
255 1, //[7]
256 2, //[8]
257 2, //[9]
258 3, //[10]
259 6, //[11]
260 6, //[12]
261 7, //[13]
262 9, //[14]
263 10, //[15]
264 2, //[16]
265 4, //[17]
266 4, //[18]
267 5, //[19]
268 5, //[20]
269 6, //[21]
270 8, //[22]
271 9, //[23]
272 2, //[24]
273 3, //[25]
274 3, //[26]
275 3, //[27]
276 4, //[28]
277 4, //[29]
278 5, //[30]
279 5, //[31]
280 6, //[32]
281 11, //[33]
282 14, //[34]
283 3, //[35]
284 3, //[36]
285 4, //[37]
286 8, //[38]
287 10, //[39]
288 1, //[40]
289 1, //[41]
290 3, //[42]
291 3, //[43]
292 2 //[44]
293 };
294 
295 double t[] =
296 {0,
297 0.25, //[1]
298 1, //[2]
299 0.25, //[3]
300 0.75, //[4]
301 0.75, //[5]
302 2, //[6]
303 4.25, //[7]
304 0.75, //[8]
305 2.25, //[9]
306 3, //[10]
307 1, //[11]
308 1.25, //[12]
309 2.75, //[13]
310 1, //[14]
311 2, //[15]
312 2.5, //[16]
313 5.5, //[17]
314 7, //[18]
315 0.5, //[19]
316 5.5, //[20]
317 2.5, //[21]
318 4, //[22]
319 2, //[23]
320 10, //[24]
321 16, //[25]
322 18, //[26]
323 20, //[27]
324 14, //[28]
325 18, //[29]
326 12, //[30]
327 19, //[31]
328 7, //[32]
329 15, //[33]
330 9, //[34]
331 26, //[35]
332 28, //[36]
333 28, //[37]
334 22, //[38]
335 13, //[39]
336 0, //[40]
337 3, //[41]
338 3, //[42]
339 0, //[43]
340 3, //[44]
341 };
342 
343 double l[] =
344 {0,
345 0, //[1]
346 0, //[2]
347 0, //[3]
348 0, //[4]
349 0, //[5]
350 1, //[6]
351 1, //[7]
352 1, //[8]
353 1, //[9]
354 1, //[10]
355 1, //[11]
356 1, //[12]
357 1, //[13]
358 1, //[14]
359 1, //[15]
360 2, //[16]
361 2, //[17]
362 2, //[18]
363 2, //[19]
364 2, //[20]
365 2, //[21]
366 2, //[22]
367 2, //[23]
368 3, //[24]
369 3, //[25]
370 3, //[26]
371 3, //[27]
372 3, //[28]
373 3, //[29]
374 3, //[30]
375 3, //[31]
376 3, //[32]
377 3, //[33]
378 3, //[34]
379 4, //[35]
380 4, //[36]
381 4, //[37]
382 4, //[38]
383 4, //[39]
384 0, //[40]
385 0, //[41]
386 0, //[42]
387 0, //[43]
388 0, //[44]
389 };
390 
391 double eta [] =
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, //[indices 0-39]
393 15, //[40]
394 15, //[41]
395 15, //[42]
396 20, //[43]
397 20, //[44]
398 };
399 
400 double epsilon [] =
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, //[indices 0-39]
402 1, //[40]
403 1, //[41]
404 1, //[42]
405 1, //[43]
406 1, //[44]
407 };
408 
409 double beta [] =
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, //[indices 0-39]
411 150, //[40]
412 150, //[41]
413 150, //[42]
414 275, //[43]
415 400, //[44]
416 };
417 
418 double gamma [] =
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, //[indices 0-39]
420 1.05, //[40]
421 1.05, //[41]
422 1.05, //[42]
423 1.22, //[43]
424 1.16, //[44]
425 };
426 
427 
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));
436 
437  //Critical parameters
438  crit.rho = 6.856886685*30.06904;// 206.18; //[kg/m^3]
439  crit.p = PressureUnit(4872.2,UNIT_KPA); //[kPa]
440  crit.T = 305.322; //[K]
441  crit.v = 1/crit.rho;
442 
443  // Other fluid parameters
444  params.molemass = 30.06904;
445  params.Ttriple = 90.368;
446  params.ptriple = 0.00114240920349;
447  params.accentricfactor = 0.099;
448  params.R_u = 8.314472;
449 
450  // Limits of EOS
451  limits.Tmin = params.Ttriple;
452  limits.Tmax = 500.0;
453  limits.pmax = 100000.0;
454  limits.rhomax = 1000000.0*params.molemass;
455 
456  phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,39));
457  phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,40,44));
458 
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));
463 
464  // lead term: log(delta)+c+m*tau
465  phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
466  phi0list.push_back(new phi0_logtau(n0_v[3]));
467  phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,7));
468 
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.");
470  TransportReference.assign("Using ECS in fully predictive mode");
471 
472  name.assign("Ethane");
473  aliases.push_back("ethane");
474  aliases.push_back("ETHANE");
475  REFPROPname.assign("ETHANE");
476 
477  BibTeXKeys.EOS = "Buecker-JPCRD-2006";
478  BibTeXKeys.VISCOSITY = "Friend-JPCRD-1991";
479  BibTeXKeys.CONDUCTIVITY = "Friend-JPCRD-1991";
480  BibTeXKeys.ECS_LENNARD_JONES = "Friend-JPCRD-1991";
481  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
482 }
483 double EthaneClass::rhosatL(double T)
484 {
485  double rhoc = reduce.rho;
486  double theta = 1-T/reduce.T;
487  double RHS,rho;
488 
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);
493  rho = exp(RHS)*rhoc;
494  return rho;
495 }
496 double EthaneClass::rhosatV(double T)
497 {
498  // Maximum absolute error is 0.270124 % between 178.000001 K and 591.749999 K
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;
502  int i;
503  theta=1.0-T/reduce.T;
504  for (i=1;i<=6;i++)
505  {
506  summer += Ni[i]*pow(theta,ti[i]);
507  }
508  return reduce.rho*exp(reduce.T/T*summer);
509 }
510 double EthaneClass::psat(double T)
511 {
512  double pc = reduce.p.Pa;
513  double theta = 1-T/reduce.T;
514  double RHS,p;
515 
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);
521  p = exp(reduce.T/T*RHS)*pc;
522  return p;
523 }
524 
525 
527 {
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;
530 
531  // Get the L-J parameters
532  this->ECSParams(&e_k,&sigma);
533 
534  Tstar = T/e_k;
535  for (int i = 1; i<= 9; i++)
536  {
537  OMEGA_2_2 += C[i]*pow(Tstar,(i-1)/3.0-1);
538  }
539 
540  return 12.0085*sqrt(Tstar)*OMEGA_2_2/1e6; //[Pa-s]
541 }
542 double EthaneClass::viscosity_residual(double T, double rho)
543 {
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};
547 
548  double sum1 = 0, sum2 = 0, tau = 305.33/T, delta = rho/(6.87*30.070);
549 
550  for (int i = 1; i<= 9; i++)
551  {
552  sum1 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
553  }
554  for (int i = 10; i<= 11; i++)
555  {
556  sum2 += g[i]*pow(delta,r[i])*pow(tau,s[i]);
557  }
558  return 15.977*sum1/(1+sum2)/1e6;
559 }
560 double EthaneClass::viscosity_Trho(double T, double rho)
561 {
562  return this->viscosity_dilute(T) + this->viscosity_residual(T,rho);
563 }
565 {
566  double e_k, sigma;
567  // Get the L-J parameters
568  this->ECSParams(&e_k,&sigma);
569 
570  double tau = 305.33/T, Tstar = T/e_k;
571  double fint = 1.7104147-0.6936482/Tstar;
572  return 0.276505*(this->viscosity_dilute(T)*1e6)*(3.75-fint*(tau*tau*this->d2phi0_dTau2(tau,0)+1.5))/1e3; //[W/m/K]
573 }
574 double EthaneClass::conductivity_residual(double T, double rho)
575 {
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};
579 
580  double sum1 = 0, tau = 305.33/T, delta = rho/(6.87*30.070);
581 
582  for (int i = 1; i<= 7; i++)
583  {
584  sum1 += j[i]*pow(delta,r[i])*pow(tau,s[i]);
585  }
586  return 4.41786*sum1/1e3; //[W/m/K]
587 }
588 double EthaneClass::conductivity_Trho(double T, double rho)
589 {
590  return this->conductivity_dilute(T) + this->conductivity_residual(T,rho) + this->conductivity_critical(T,rho,1/(0.545e-9),0.0563,0.19e-9);
591 }
592 
594 {
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));
611 
612  //Critical parameters
613  crit.rho = 228; //[kg/m^3]
614  crit.p = PressureUnit(3796,UNIT_KPA); //[kPa]
615  crit.T = 425.125; //[K]
616  crit.v = 1/crit.rho;
617 
618  // Other fluid parameters
619  params.molemass = 58.12220;
620  params.Ttriple = 134.895;
621  params.ptriple = 0.000665785834101;
622  params.accentricfactor = 0.200810094644;
623  params.R_u = 8.314472;
624 
625  // Limits of EOS
626  limits.Tmin = params.Ttriple;
627  limits.Tmax = 500.0;
628  limits.pmax = 100000.0;
629  limits.rhomax = 1000000.0*params.molemass;
630 
631  phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,23));
632  phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,24,25));
633 
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));
638 
639  // lead term: log(delta)+c+m*tau
640  phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
641  phi0list.push_back(new phi0_logtau(n0_v[3]));
642  phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,7));
643 
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.");
645  TransportReference.assign("Using ECS in fully predictive mode");
646 
647  name.assign("n-Butane");
648  aliases.push_back("nButane");
649  aliases.push_back("butane");
650  aliases.push_back("BUTANE");
651  aliases.push_back("N-BUTANE");
652  REFPROPname.assign("BUTANE");
653 
654  BibTeXKeys.EOS = "Buecker-JPCRD-2006B";
655  BibTeXKeys.VISCOSITY = "Vogel-HTHP-1999";
656  BibTeXKeys.CONDUCTIVITY = "Perkins-JCED-2002A";
657  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
658  BibTeXKeys.ECS_LENNARD_JONES = "Vogel-HTHP-1999";
659 }
660 double nButaneClass::rhosatL(double T)
661 {
662  double rhoc = reduce.rho;
663  double theta = 1-T/reduce.T;
664  double RHS,rho;
665 
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;
671  return rho;
672 }
673 double nButaneClass::rhosatV(double T)
674 {
675  // Max error is 0.121857408131 % between 134.895 and 425.124999 K
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;
679  int i;
680  theta=1.0-T/reduce.T;
681  for (i=1;i<=6;i++)
682  {
683  summer += Ni[i]*pow(theta,ti[i]);
684  }
685  return reduce.rho*exp(reduce.T/T*summer);
686 }
687 double nButaneClass::psat(double T)
688 {
689  double pc = reduce.p.Pa;
690  double theta = 1-T/reduce.T;
691  double RHS,p;
692 
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);
697  p = exp(reduce.T/T*RHS)*pc;
698  return p;
699 }
700 double nButaneClass::viscosity_Trho(double T, double rho)
701 {
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};
704 
705  double e_k, sigma;
706  this->ECSParams(&e_k,&sigma);
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); // uPa-s
710 
711  //Rainwater-Friend initial density term
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; // [L/mol]
714 
715  double e[6][2]; // init with zeros
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;
722 
723  double sumresid = 0;
724  double tau = T/crit.T, delta = rho/(3.920*58.1222);
725  for (int i = 2; i<=5; i++)
726  {
727  for (int j = 0; j< 2; j++)
728  {
729  sumresid += e[i][j]*pow(delta,i)/pow(tau,j);
730  }
731  }
732 
733  double delta_0 = g1*(1+g2*sqrt(tau));
734  double eta_r = sumresid + f1*(delta/(delta_0-delta)-delta/delta_0); // uPa-s
735 
736  double rhobar = rho/params.molemass; //mol/L
737  return (eta_0*(1+B*rhobar)+eta_r)/1e6;
738 }
739 double nButaneClass::conductivity_Trho(double T, double rho)
740 {
741  double lambda_0 = 1.62676e-3+9.75703e-4*(T/crit.T) + 2.89887e-2*pow(T/crit.T,2); // W/m/K
742 
743  double sumresid = 0;
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};
746 
747  for (int i = 1; i<= 5; i++){
748  sumresid += (B1[i]+B2[i]*(T/reduce.T))*pow(rho/reduce.rho,i);
749  }
750 
751  double lambda_r = sumresid; // [W/m/K]
752 
753  double lambda_c = this->conductivity_critical(T,rho,1.0/(6.12930e-10)); // [W/m/K]
754 
755  return lambda_0+lambda_r+lambda_c;
756 }
757 
759 {
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));
776 
777  //Critical parameters
778  crit.rho = 225.5; //[kg/m^3]
779  crit.p = PressureUnit(3629,UNIT_KPA); //[kPa]
780  crit.T = 407.817; //[K]
781  crit.v = 1/crit.rho;
782 
783  // Other fluid parameters
784  params.molemass = 58.12220;
785  params.Ttriple = 113.73;
786  params.ptriple = 2.28968758984e-05;
787  params.accentricfactor = 0.183531783208;
788  params.R_u = 8.314472;
789 
790  // Limits of EOS
791  limits.Tmin = params.Ttriple;
792  limits.Tmax = 500.0;
793  limits.pmax = 100000.0;
794  limits.rhomax = 1000000.0*params.molemass;
795 
796  phirlist.push_back(new phir_power( n_v,d_v,t_v,l_v,1,23));
797  phirlist.push_back(new phir_gaussian( n_v,d_v,t_v,eta_v,epsilon_v,beta_v,gamma_v,24,25));
798 
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));
803 
804  // lead term: log(delta)+c+m*tau
805  phi0list.push_back(new phi0_lead(n0_v[1], n0_v[2]));
806  phi0list.push_back(new phi0_logtau(n0_v[3]));
807  phi0list.push_back(new phi0_Planck_Einstein(n0_v,theta_v,4,7));
808 
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.");
810  TransportReference.assign("Using ECS in fully predictive mode");
811 
812  name.assign("IsoButane");
813  aliases.push_back("isobutane");
814  aliases.push_back("Isobutane");
815  aliases.push_back("ISOBUTANE");
816  aliases.push_back("R600A");
817  aliases.push_back("R600a");
818  REFPROPname.assign("ISOBUTAN");
819 
820  // Adjust to the IIR reference state (h=200 kJ/kg, s = 1 kJ/kg for sat. liq at 0C)
821  params.HSReferenceState = "IIR";
822 
823  BibTeXKeys.EOS = "Buecker-JPCRD-2006B";
824  BibTeXKeys.VISCOSITY = "Vogel-IJT-2000";
825  BibTeXKeys.ECS_LENNARD_JONES = "Vogel-IJT-2000";
826  BibTeXKeys.CONDUCTIVITY = "Perkins-JCED-2002B";
827  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
828 }
829 double IsoButaneClass::rhosatL(double T)
830 {
831  double rhoc = reduce.rho;
832  double theta = 1-T/reduce.T;
833  double RHS,rho;
834 
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;
840  return rho;
841 }
842 double IsoButaneClass::rhosatV(double T)
843 {
844  // Maximum absolute error is 0.270124 % between 178.000001 K and 591.749999 K
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;
848  int i;
849  theta=1.0-T/reduce.T;
850  for (i=1;i<=6;i++)
851  {
852  summer += Ni[i]*pow(theta,ti[i]);
853  }
854  return reduce.rho*exp(reduce.T/T*summer);
855 }
856 double IsoButaneClass::psat(double T)
857 {
858  // Max error is 0.0153125011953 % between 113.73 and 407.816999 K
859 
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;
863  int i;
864  theta=1.0-T/reduce.T;
865  for (i=1;i<=6;i++)
866  {
867  summer += Ni[i]*pow(theta,ti[i]);
868  }
869  return reduce.p.Pa*exp(reduce.T/T*summer);
870 }
871 void IsoButaneClass::ECSParams(double *e_k, double *sigma)
872 {
873  // Vogel, 2000
874  *e_k = 307.55;
875  *sigma = 0.46445;
876 }
877 double IsoButaneClass::viscosity_Trho(double T, double rho)
878 {
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};
881 
882  double e_k, sigma;
883  this->ECSParams(&e_k,&sigma);
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); // uPa-s
887 
888  //Rainwater-Friend
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; // [L/mol]
891 
892  double e[6][3]; // init with zeros
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;
901 
902  double sumresid = 0;
903  double tau = T/crit.T, delta = rho/(3.860*58.1222);
904  for (int i = 2; i < 6; i++)
905  {
906  for (int j = 0; j < 3; j++)
907  {
908  sumresid += e[i][j]*pow(delta,i)/pow(tau,j);
909  }
910  }
911 
912  double delta_0 = g1*(1+g2*sqrt(tau));
913  double eta_r = sumresid + f1*(delta/(delta_0-delta)-delta/delta_0); // uPa-s
914 
915  double rhobar = rho/params.molemass;
916  return (eta_0*(1+B*rhobar)+eta_r)/1e6;
917 }
918 double IsoButaneClass::conductivity_Trho(double T, double rho)
919 {
920  double lambda_0 = -2.37901e-3+1.06601e-2*(T/crit.T) + 2.15811e-2*pow(T/crit.T,2); // W/m/K
921 
922  double sumresid = 0;
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};
925 
926  for (int i = 1; i<= 5; i++){
927  sumresid += (B1[i]+B2[i]*(T/reduce.T))*pow(rho/reduce.rho,i);
928  }
929 
930  double lambda_r = sumresid; // [W/m/K]
931 
932  double lambda_c = this->conductivity_critical(T,rho,1.0/(5.37809e-10)); // [W/m/K]
933 
934  return lambda_0+lambda_r+lambda_c;
935 }
double psat(double)
Definition: Alkanes.cpp:687
double conductivity_residual(double T, double rho)
Definition: Alkanes.cpp:574
double viscosity_dilute(double T)
Definition: Alkanes.cpp:120
std::vector< phi_BC * > phirlist
Definition: FluidClass.h:178
virtual double d2phi0_dTau2(double tau, double delta)
Definition: FluidClass.cpp:411
double rhosatV(double)
Definition: Alkanes.cpp:842
double viscosity_Trho(double, double)
Definition: Alkanes.cpp:700
double conductivity_Trho(double T, double rho)
Definition: Alkanes.cpp:588
struct FluidLimits limits
Definition: FluidClass.h:219
std::string EOS
Definition: FluidClass.h:120
std::string VISCOSITY
Definition: FluidClass.h:122
double viscosity_residual(double T, double rho)
Definition: Alkanes.cpp:135
double viscosity_dilute(double T)
Definition: Alkanes.cpp:526
PressureUnit p
Definition: FluidClass.h:50
std::string name
A container to hold the cache for residual Helmholtz derivatives.
Definition: FluidClass.h:151
double conductivity_Trho(double, double)
Definition: Alkanes.cpp:918
double conductivity_residual(double T, double rho)
Definition: Alkanes.cpp:167
std::string TransportReference
A std::string that contains a reference for thermo properties for the fluid.
Definition: FluidClass.h:158
double rhosatL(double)
Definition: Alkanes.cpp:660
double Pa
Definition: Units.h:22
double conductivity_dilute(double T)
Definition: Alkanes.cpp:564
void ECSParams(double *e_k, double *sigma)
Definition: Alkanes.cpp:871
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...
Definition: FluidClass.h:153
double conductivity_Trho(double, double)
Definition: Alkanes.cpp:739
struct CriticalStruct reduce
A pointer to the point that is used to reduce the T and rho for EOS.
Definition: FluidClass.h:222
double rhosatL(double)
Definition: Alkanes.cpp:829
double Tmax
Definition: FluidClass.h:54
double psat(double)
Definition: Alkanes.cpp:107
double psat(double)
Definition: Alkanes.cpp:510
struct CriticalStruct * preduce
Definition: FluidClass.h:221
std::string EOSReference
The critical qd parameter for the Olchowy-Sengers cross-over term.
Definition: FluidClass.h:157
double viscosity_residual(double T, double rho)
Definition: Alkanes.cpp:542
std::string REFPROPname
The name of the fluid.
Definition: FluidClass.h:152
std::string ECS_LENNARD_JONES
Definition: FluidClass.h:124
double viscosity_Trho(double T, double rho)
Definition: Alkanes.cpp:153
double viscosity_Trho(double T, double rho)
Definition: Alkanes.cpp:560
void ECSParams(double *e_k, double *sigma)
Definition: Alkanes.h:44
std::string SURFACE_TENSION
Definition: FluidClass.h:126
double pmax
Definition: FluidClass.h:54
double psat(double)
Definition: Alkanes.cpp:856
params
struct CriticalStruct crit
Definition: FluidClass.h:218
BibTeXKeysStruct BibTeXKeys
Definition: FluidClass.h:175
double rhosatL(double)
Definition: Alkanes.cpp:80
MethaneClass()
Definition: Alkanes.cpp:8
double rhosatV(double)
Definition: Alkanes.cpp:496
double conductivity_Trho(double T, double rho)
Definition: Alkanes.cpp:191
double rhosatV(double)
Definition: Alkanes.cpp:673
std::vector< phi_BC * > phi0list
A vector of instances of the phi_BC classes for the residual Helmholtz energy contribution.
Definition: FluidClass.h:179
double rhosatV(double)
Definition: Alkanes.cpp:92
void ECSParams(double *e_k, double *sigma)
Definition: Alkanes.h:64
void ECSParams(double *e_k, double *sigma)
Definition: Alkanes.h:18
double viscosity_Trho(double, double)
Definition: Alkanes.cpp:877
double conductivity_dilute(double T)
Definition: Alkanes.cpp:157
double Tmin
Definition: FluidClass.h:54
double rhosatL(double)
Definition: Alkanes.cpp:483
double rhomax
Definition: FluidClass.h:54
std::string CONDUCTIVITY
Definition: FluidClass.h:123