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
Siloxanes.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 "Siloxanes.h"
7 
8 //MDM
10 {
11  const double d[] =
12  {
13  0,
14  1.0, //[1]
15  1.0, //[2]
16  1.0, //[3]
17  2.0, //[4]
18  3.0, //[5]
19  7.0, //[6]
20  2.0, //[7]
21  5.0, //[8]
22  1.0, //[9]
23  4.0, //[10]
24  3.0, //[11]
25  4.0, //[12]
26  };
27 
28  const double t[] =
29  {
30  0,
31  0.25, //[1]
32  1.125, //[2]
33  1.5, //[3]
34  1.375, //[4]
35  0.25, //[5]
36  0.875, //[6]
37  0.625, //[7]
38  1.75, //[8]
39  3.625, //[9]
40  3.625, //[10]
41  14.5, //[11]
42  12.0, //[12]
43  };
44 
45  const double l[] =
46  {
47  0,
48  0.0, //[1]
49  0.0, //[2]
50  0.0, //[3]
51  0.0, //[4]
52  0.0, //[5]
53  0.0, //[6]
54  1.0, //[7]
55  1.0, //[8]
56  2.0, //[9]
57  2.0, //[10]
58  3.0, //[11]
59  3.0, //[12]
60  };
61  const double n[]={0.0,1.19735372,-2.40380622,0.3256564,-0.19971259,0.11206277,0.00015893999,0.51234323,-0.020660361,-0.38978114,-0.1186931,-0.037203537,0.018359984};
62  const double u0[]={0.0,275.1,612.9,1829.6,413.0,802.6};
63 
64  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
65 
66  // Critical parameters
67  crit.rho = 256.739908797209;
68  crit.p = PressureUnit(1415, UNIT_KPA);
69  crit.T = 564.09;
70  crit.v = 1.0/crit.rho;
71 
72  // Other fluid parameters
73  params.molemass = 236.53146;
74  params.Ttriple = 187.2;
75  params.accentricfactor = 0.5297;
76  params.R_u = 8.314472;
77  params.ptriple = 7.9911106087e-07;
78 
79  // Limits of EOS
80  limits.Tmin = params.Ttriple;
81  limits.Tmax = 500.0;
82  limits.pmax = 100000.0;
83  limits.rhomax = 1000000.0*params.molemass;
84 
85  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
86 
87  double T0 = 425.676967,
88  R_ = 8.314472/params.molemass,
89  rho0 = 675.2187471,
90  m,
91  c,
92  H0 = 156.46565194801141,
93  S0 = 0.20329670191815147,
94  tau0=crit.T/T0,
95  delta0=rho0/crit.rho;
96 
97  // log(delta)+c+m*tau
98 
100  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
101 
103  m=H0/(R_*crit.T); /*<< from the leading term */
104 
105  phi_BC * phi0_lead_ = new phi0_lead(c,m);
106  phi0list.push_back(phi0_lead_);
107 
108  phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
109  phi0list.push_back(phi0_logtau_);
110 
111  phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
112  phi0list.push_back(phi0_cp0_AlyLee_);
113 
114  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
115  TransportReference.assign("Using ECS in fully predictive mode");
116 
117  name.assign("MDM");
118  aliases.push_back(std::string("Octamethyltrisiloxane"));
119  aliases.push_back(std::string("OCTAMETHYLTRISILOXANE"));
120  REFPROPname.assign("MDM");
121 
122  ECSReferenceFluid = "Nitrogen";
123 
124  BibTeXKeys.EOS = "Colonna-FPE-2008";
125  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
126 }
128 {
129  double theta = 1-T/reduce.T;
130  double RHS,rho;
131 
132  // Max error is 0.302445 %
133  RHS = +0.078367*pow(theta,0.000000)+1.349838*pow(theta,0.296634)-0.005638*pow(theta,3.479858)-0.183289*pow(theta,4.132701)+0.118136*pow(theta,5.130423)+0.416073*pow(theta,6.155667);
134  rho = exp(RHS)*reduce.rho;
135  return rho;
136 }
138 {
139  // Max error is 0.455581363816 % between 187.2 and 564.089999 K
140  const double ti[]={0, 0.14700000000000002, 0.3515, 0.39699999999999996, 1.5, 3.8333333333333335, 16.166666666666668};
141  const double Ni[]={0, -1.2376429620882381, 18.16254939596832, -21.7298671811246, -2.318395979212784, -9.020806554399309, -10.84321486627527};
142  double summer=0,theta;
143  int i;
144  theta=1.0-T/reduce.T;
145  for (i=1;i<=6;i++)
146  {
147  summer += Ni[i]*pow(theta,ti[i]);
148  }
149  return reduce.rho*exp(crit.T/T*summer);
150 }
152 {
153  double theta = 1-T/reduce.T;
154  double RHS,p;
155 
156  // Max error is 1.053362 %
157  RHS = -7.765160*pow(theta,0.984389)-5.002622*pow(theta,3.506411)-2.478207*pow(theta,4.186938)-1.023016*pow(theta,4.808272)-0.201986*pow(theta,5.513089);
158  p = exp(RHS*reduce.T/T)*reduce.p.Pa;
159  return p;
160 }
161 
162 //MD2M
164 {
165  const double d[] =
166  {
167  0,
168  1.0, //[1]
169  1.0, //[2]
170  1.0, //[3]
171  2.0, //[4]
172  3.0, //[5]
173  7.0, //[6]
174  2.0, //[7]
175  5.0, //[8]
176  1.0, //[9]
177  4.0, //[10]
178  3.0, //[11]
179  4.0, //[12]
180  };
181 
182  const double t[] =
183  {
184  0,
185  0.25, //[1]
186  1.125, //[2]
187  1.5, //[3]
188  1.375, //[4]
189  0.25, //[5]
190  0.875, //[6]
191  0.625, //[7]
192  1.75, //[8]
193  3.625, //[9]
194  3.625, //[10]
195  14.5, //[11]
196  12.0, //[12]
197  };
198 
199  const double l[] =
200  {
201  0,
202  0.0, //[1]
203  0.0, //[2]
204  0.0, //[3]
205  0.0, //[4]
206  0.0, //[5]
207  0.0, //[6]
208  1.0, //[7]
209  1.0, //[8]
210  2.0, //[9]
211  2.0, //[10]
212  3.0, //[11]
213  3.0, //[12]
214  };
215  const double n[]={0.0,1.33840331,-2.62939393,0.4398383,-0.53496715,0.1818844,0.00040774609,1.13444506,0.05774631,-0.5917498,-0.11020225,-0.034942635,0.007646298};
216  const double u0[]={0.0,331.9,777.1,1813.8,521.4,795.1};
217 
218  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
219 
220  // Critical parameters
221  crit.rho=284.171639662027;
222  crit.p= PressureUnit(1227, UNIT_KPA);
223  crit.T=599.4;
224  crit.v = 1.0/crit.rho;
225 
226  // Other fluid parameters
227  params.molemass=310.685;
228  params.Ttriple=205.2;
229  params.accentricfactor=0.668;
230  params.R_u = 8.314472;
231  params.ptriple = 4.79509942923e-07;
232 
233  // Limits of EOS
234  limits.Tmin = params.Ttriple;
235  limits.Tmax = 500.0;
236  limits.pmax = 100000.0;
237  limits.rhomax = 1000000.0*params.molemass;
238 
239  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
240 
241  double T0 = 467.506025761878,
242  rho0 = 666.100681528704,
243  R_ = params.R_u/params.molemass,
244  m,
245  c,
246  H0 = 133.21777124359349,
247  S0 = 0.16466470350893656,
248  tau0=crit.T/T0,
249  delta0=rho0/crit.rho;
250 
251  // log(delta)+c+m*tau
252 
254  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
255 
257  m=H0/(R_*crit.T); /*<< from the leading term */
258 
259  phi_BC * phi0_lead_ = new phi0_lead(c,m);
260  phi0list.push_back(phi0_lead_);
261 
262  phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
263  phi0list.push_back(phi0_logtau_);
264 
265  phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
266  phi0list.push_back(phi0_cp0_AlyLee_);
267 
268  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
269  TransportReference.assign("Using ECS in fully predictive mode");
270 
271  name.assign("MD2M");
272  aliases.push_back(std::string("Decamethyltetrasiloxane"));
273  aliases.push_back(std::string("DECAMETHYLTETRASILOXANE"));
274  REFPROPname.assign("MD2M");
275 
276  ECSReferenceFluid = "Nitrogen";
277 
278  BibTeXKeys.EOS = "Colonna-FPE-2008";
279  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
280 }
282 {
283  double theta = 1-T/reduce.T;
284  double RHS,rho;
285 
286  // Max error is 0.222790 %
287  RHS = +1.308255*pow(theta,0.286019)+0.298564*pow(theta,2.774999)-0.249494*pow(theta,3.604257)-0.208559*pow(theta,4.311892)+0.062389*pow(theta,5.214777)+0.366547*pow(theta,6.192231);
288  rho = exp(RHS)*reduce.rho;
289  return rho;
290 }
292 {
293  // Max error is 0.169267097925 % between 205.2 and 599.399999 K
294  const double ti[]={0, 0.39199999999999996, 0.39349999999999996, 0.39399999999999996, 1.5, 3.3333333333333335, 18.0};
295  const double Ni[]={0, -52837.662064867334, 213259.90052518147, -160428.17073987963, -0.66311675635221967, -9.8035152206617866, -34.641954872452423};
296  double summer=0,theta;
297  int i;
298  theta=1.0-T/reduce.T;
299  for (i=1;i<=6;i++)
300  {
301  summer += Ni[i]*pow(theta,ti[i]);
302  }
303  return reduce.rho*exp(crit.T/T*summer);
304 }
306 {
307  double theta = 1-T/reduce.T;
308  double RHS,p;
309 
310  // Max error is 0.653417 %
311  RHS = -10.255244*pow(theta,1.003893)-14.680968*pow(theta,8.315832)-8.013482*pow(theta,2.914286)+3.386436*pow(theta,1.418176)+14.914376*pow(theta,9.632505);
312  p = exp(RHS*reduce.T/T)*reduce.p.Pa;
313  return p;
314 }
315 
316 //MD3M
318 {
319  const double d[] =
320  {
321  0,
322  1.0, //[1]
323  1.0, //[2]
324  1.0, //[3]
325  2.0, //[4]
326  3.0, //[5]
327  7.0, //[6]
328  2.0, //[7]
329  5.0, //[8]
330  1.0, //[9]
331  4.0, //[10]
332  3.0, //[11]
333  4.0, //[12]
334  };
335 
336  const double t[] =
337  {
338  0,
339  0.25, //[1]
340  1.125, //[2]
341  1.5, //[3]
342  1.375, //[4]
343  0.25, //[5]
344  0.875, //[6]
345  0.625, //[7]
346  1.75, //[8]
347  3.625, //[9]
348  3.625, //[10]
349  14.5, //[11]
350  12.0, //[12]
351  };
352 
353  const double l[] =
354  {
355  0,
356  0.0, //[1]
357  0.0, //[2]
358  0.0, //[3]
359  0.0, //[4]
360  0.0, //[5]
361  0.0, //[6]
362  1.0, //[7]
363  1.0, //[8]
364  2.0, //[9]
365  2.0, //[10]
366  3.0, //[11]
367  3.0, //[12]
368  };
369  const double n[]={0.0,1.20540386,-2.42914797,0.69016432,-0.69268041,0.18506046,0.00031161436,0.99862519,0.074229034,-0.80259136,-0.20865337,-0.036461791,0.019174051};
370  const double u0[]={0.0,463.2,957.2,2117.1,738.3,908.5};
371 
372  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
373 
374  // Critical parameters
375  crit.rho=263.921879135305;
376  crit.p= PressureUnit(945, UNIT_KPA);
377  crit.T=628.36;
378  crit.v = 1.0/crit.rho;
379 
380  // Other fluid parameters
381  params.molemass=384.839;
382  params.Ttriple=192;
383  params.accentricfactor=0.722;
384  params.R_u = 8.314472;
385  params.ptriple = 2.05774764356e-10;
386 
387  // Limits of EOS
388  limits.Tmin = params.Ttriple;
389  limits.Tmax = 500.0;
390  limits.pmax = 100000.0;
391  limits.rhomax = 1000000.0*params.molemass;
392 
393  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
394 
395  double T0 = 503.022623775204,
396  rho0 = 653.620754664036,
397  R_ = params.R_u/params.molemass,
398  m,
399  c,
400  H0 = 113.59777719014585,
401  S0 = 0.13288817176242626,
402  tau0=crit.T/T0,
403  delta0=rho0/crit.rho;
404 
405  // log(delta)+c+m*tau
406 
408  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
409 
411  m=H0/(R_*crit.T); /*<< from the leading term */
412 
413  phi_BC * phi0_lead_ = new phi0_lead(c,m);
414  phi0list.push_back(phi0_lead_);
415 
416  phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
417  phi0list.push_back(phi0_logtau_);
418 
419  phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
420  phi0list.push_back(phi0_cp0_AlyLee_);
421 
422  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
423  TransportReference.assign("Using ECS in fully predictive mode");
424 
425  name.assign("MD3M");
426  aliases.push_back(std::string("Dodecamethylpentasiloxane"));
427  aliases.push_back(std::string("DODECAMETHYLPENTASILOXANE"));
428  REFPROPname.assign("MD3M");
429 
430  ECSReferenceFluid = "Nitrogen";
431 
432  BibTeXKeys.EOS = "Colonna-FPE-2008";
433  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
434 }
436 {
437  // Max error is 0.0600093438283 % between 192.0 and 628.359999 K
438  const double t[]={0, 1.5, 1.0, 1.8333333333333333, 3.1666666666666665, 6.666666666666667, 16.166666666666668};
439  const double N[]={0, 1.3506034234657476, -9.2126060941992307, -0.28939038151557195, -9.0673717965357667, -2.9245800043788388, -10.66550052981526};
440  double summer=0,theta;
441  theta=1-T/reduce.T;
442  for (int i=1; i<=6; i++)
443  {
444  summer += N[i]*pow(theta,t[i]);
445  }
446  return reduce.p.Pa*exp(reduce.T/T*summer);
447 }
448 
450 {
451  // Maximum absolute error is 0.288378 % between 192.000000 K and 628.360000 K
452  const double t[] = {0, 0.3333333333333333, 0.5, 0.6666666666666666, 0.8333333333333334, 1.0, 1.1666666666666667, 1.3333333333333333, 1.5, 1.6666666666666667, 1.8333333333333333};
453  const double N[] = {0, -2.8756454677232282, 58.702098949984546, -312.49817605073389, 1216.0740391388877, -3953.7402984826108, 9489.6576229693947, -14861.937754088141, 14106.261719203909, -7352.4250932407413, 1616.4437867458232};
454  double summer=0,theta;
455  theta=1-T/reduce.T;
456 
457  for (int i=1; i<=10; i++)
458  {
459  summer += N[i]*pow(theta,t[i]);
460  }
461  return reduce.rho*(summer+1);
462 }
463 
465 {
466  // Maximum absolute error is 0.165855 % between 192.000000 K and 628.360000 K
467  const double t[] = {0, 0.3333333333333333, 0.5, 0.6666666666666666, 0.8333333333333334, 1.0, 1.1666666666666667, 1.3333333333333333, 1.5, 1.6666666666666667, 1.8333333333333333, 2.0, 2.3333333333333335, 2.6666666666666665, 3.0, 3.3333333333333335};
468  const double N[] = {0, -8.1412243969392986, 465.78213307742897, -10070.395070453211, 113934.3138003942, -797658.75904416665, 3713183.847053702, -11886054.42914509, 26400426.037794076, -40022635.392553486, 38973041.838086836, -19997978.986398581, 4823720.3256814424, -1716855.6651460216, 473036.175360589, -66568.844348660248};
469  double summer=0,theta;
470  theta=1-T/reduce.T;
471  for (int i=1; i<=15; i++)
472  {
473  summer += N[i]*pow(theta,t[i]);
474  }
475  return reduce.rho*exp(reduce.T/T*summer);
476 }
477 
478 //D6
480 {
481  const double d[] =
482  {
483  0,
484  1.0, //[1]
485  1.0, //[2]
486  1.0, //[3]
487  2.0, //[4]
488  3.0, //[5]
489  7.0, //[6]
490  2.0, //[7]
491  5.0, //[8]
492  1.0, //[9]
493  4.0, //[10]
494  3.0, //[11]
495  4.0, //[12]
496  };
497 
498  const double t[] =
499  {
500  0,
501  0.25, //[1]
502  1.125, //[2]
503  1.5, //[3]
504  1.375, //[4]
505  0.25, //[5]
506  0.875, //[6]
507  0.625, //[7]
508  1.75, //[8]
509  3.625, //[9]
510  3.625, //[10]
511  14.5, //[11]
512  12.0, //[12]
513  };
514 
515  const double l[] =
516  {
517  0,
518  0.0, //[1]
519  0.0, //[2]
520  0.0, //[3]
521  0.0, //[4]
522  0.0, //[5]
523  0.0, //[6]
524  1.0, //[7]
525  1.0, //[8]
526  2.0, //[9]
527  2.0, //[10]
528  3.0, //[11]
529  3.0, //[12]
530  };
531  const double n[]={0.0,1.69156186,-3.37962568,0.38609039,0.064598995,0.10589012,0.000045456825,0.74169279,-0.088102648,-0.17373336,-0.10951368,-0.062695695,0.037459986};
532  const double u0[]={0.0,468.7,981.2,1792.1,686.7,786.8};
533 
534  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
535 
536 
537  // Critical parameters
538  crit.rho=279.095729841367;
539  crit.p= PressureUnit(961, UNIT_KPA);
540  crit.T=645.78;
541  crit.v = 1.0/crit.rho;
542 
543  // Other fluid parameters
544  params.molemass=444.924;
545  params.Ttriple=270.2;
546  params.accentricfactor=0.736;
547  params.R_u = 8.314472;
548  params.ptriple = 0.000159753038201;
549 
550  // Limits of EOS
551  limits.Tmin = params.Ttriple;
552  limits.Tmax = 500.0;
553  limits.pmax = 100000.0;
554  limits.rhomax = 1000000.0*params.molemass;
555 
556  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
557 
558  double T0 = 518.109977174843,
559  rho0 = 704.948896461078,
560  R_ = params.R_u/params.molemass,
561  m,
562  c,
563  H0 = 102.00241183448354,
564  S0 = 0.11646477379595818,
565  tau0=crit.T/T0,
566  delta0=rho0/crit.rho;
567 
568  // log(delta)+c+m*tau
569 
571  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
572 
574  m=H0/(R_*crit.T); /*<< from the leading term */
575 
576  phi_BC * phi0_lead_ = new phi0_lead(c,m);
577  phi0list.push_back(phi0_lead_);
578 
579  phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
580  phi0list.push_back(phi0_logtau_);
581 
582  phi_BC * phi0_cp0_AlyLee_ = new phi0_cp0_AlyLee(u0_v,crit.T,T0,params.R_u);
583  phi0list.push_back(phi0_cp0_AlyLee_);
584 
585  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, \"Multiparameter equations of state for siloxanes: [(CH3)3-Si-O1/2]2-[O-Si-(CH3)2]i=1,...,3, and [O-Si-(CH3)2]6,\", Fluid Phase Equilibria 263 (2008) 115-130.");
586  TransportReference.assign("Using ECS in fully predictive mode");
587 
588  name.assign("D6");
589  aliases.push_back(std::string("Dodecamethylcyclohexasiloxane"));
590  aliases.push_back(std::string("DODECAMETHYLCYCLOHEXASILOXANE"));
591  REFPROPname.assign("D6");
592 
593  ECSReferenceFluid = "Nitrogen";
594 
595  BibTeXKeys.EOS = "Colonna-FPE-2008";
596  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
597 }
599 {
600  double theta = 1-T/reduce.T;
601  double RHS,rho;
602 
603  // Max error is 0.390948 %
604  RHS = +1.508669*pow(theta,0.299083)-0.367377*pow(theta,2.751619)+0.197308*pow(theta,3.522398)+0.393542*pow(theta,4.060807)+0.115383*pow(theta,4.768416)-0.125626*pow(theta,5.916593);
605  rho = exp(RHS)*reduce.rho;
606  return rho;
607 }
609 {
610  double theta = 1-T/reduce.T;
611  double RHS,rho;
612 
613  // Max error is 0.463858 %
614  RHS = -2.334877*pow(theta,0.354340)-84.316983*pow(theta,8.854211)-36.472358*pow(theta,6.602777)-9.706856*pow(theta,1.066697)-29.464799*pow(theta,3.643699)-17.991230*pow(theta,3.468228)-10.449427*pow(theta,9.287216);
615  rho = exp(RHS)*reduce.rho;
616  return rho;
617 }
619 {
620  double theta = 1-T/reduce.T;
621  double RHS,p;
622 
623  // Max error is 1.754539 %
624  RHS = -10.075325*pow(theta,1.012056)-134.690578*pow(theta,9.074796)-43.425090*pow(theta,5.030680)-32.551643*pow(theta,11.673831)-27.321344*pow(theta,2.821284);
625  p = exp(RHS)*reduce.p.Pa;
626  return p;
627 }
628 
629 //MM
631 {
632  const double d[] =
633  {
634  0,
635  1.0, //[1]
636  1.0, //[2]
637  1.0, //[3]
638  2.0, //[4]
639  3.0, //[5]
640  7.0, //[6]
641  2.0, //[7]
642  5.0, //[8]
643  1.0, //[9]
644  4.0, //[10]
645  3.0, //[11]
646  4.0, //[12]
647  };
648 
649  const double t[] =
650  {
651  0,
652  0.25, //[1]
653  1.125, //[2]
654  1.5, //[3]
655  1.375, //[4]
656  0.25, //[5]
657  0.875, //[6]
658  0.625, //[7]
659  1.75, //[8]
660  3.625, //[9]
661  3.625, //[10]
662  14.5, //[11]
663  12.0, //[12]
664  };
665 
666  const double l[] =
667  {
668  0,
669  0.0, //[1]
670  0.0, //[2]
671  0.0, //[3]
672  0.0, //[4]
673  0.0, //[5]
674  0.0, //[6]
675  1.0, //[7]
676  1.0, //[8]
677  2.0, //[9]
678  2.0, //[10]
679  3.0, //[11]
680  3.0, //[12]
681  };
682  const double n[]={0.0,1.01686012,-2.19713029,0.75443188,-0.68003426,0.19082162,0.0010530133,0.6284595,0.030903042,-0.83948727,-0.20262381,-0.035131597,0.025902341};
683  // divided by R_u to give cp0/R_u terms like in Lemmon 2000
684  const double u0[]={0.0,6.24140654992885,0.0891626070783569,-5.00332432414229E-05,8.41905535312405E-09};
685  const double n0[]={0.0,0,1,2,3};
686 
687  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
688  std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));
689 
690  // Critical parameters
691  crit.rho = 258.151840734;
692  crit.p = PressureUnit(1939.0, UNIT_KPA);
693  crit.T = 518.75;
694  crit.v = 1.0/crit.rho;
695 
696  // Load up a new structure with reducing parameters
697  reduce.rho = 1.87467076*162.37752;
698  reduce.p = PressureUnit(1939.39, UNIT_KPA);
699  reduce.T = 518.69997204;
700  reduce.v = 1.0/reduce.rho;
701 
702  preduce = &reduce;
703 
704  // Other fluid parameters
705  params.molemass = 162.37752;
706  params.Ttriple = 204.93;
707  params.accentricfactor = 0.418;
708  params.R_u = 8.314472;
709  params.ptriple = 1.3169852229396559;
710 
711  // Limits of EOS
712  limits.Tmin = 273;
713  limits.Tmax = 500.0;
714  limits.pmax = 100000.0;
715  limits.rhomax = 1000000.0*params.molemass;
716 
717  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
718 
719  double T0 = 373.400735665744,
720  rho0 = 681.39621296599,
721  R_ = params.R_u/params.molemass,
722  m,
723  c,
724  H0 = -162.96488124949261,
725  S0 = -0.52817673665136178,
726  tau0=crit.T/T0,
727  delta0=rho0/crit.rho;
728 
729  // log(delta)+c+m*tau
730 
732  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
733 
735  m=H0/(R_*reduce.T); /*<< from the leading term */
736 
737  phi_BC * phi0_lead_ = new phi0_lead(c,m);
738  phi0list.push_back(phi0_lead_);
739 
740  phi0list.push_back(new phi0_logtau(-1.0));
741 
742  phi0list.push_back(new phi0_cp0_constant(u0[1],reduce.T,T0));
743 
744  phi0list.push_back(new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4));
745 
746  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
747  TransportReference.assign("Using ECS in fully predictive mode");
748 
749  name.assign("MM");
750  aliases.push_back(std::string("Hexamethyldisiloxane"));
751  aliases.push_back(std::string("HEXAMETHYLDISILOXANE"));
752  REFPROPname.assign("MM");
753 
754  ECSReferenceFluid = "Nitrogen";
755 
756  BibTeXKeys.EOS = "Colonna-FPE-2006";
757  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
758 }
760 {
761  double theta = 1-T/reduce.T;
762  double RHS,rho;
763 
764  if (theta < 0) theta = 1e-6;
765  // Max error is 0.177687 %
766  RHS = +4.701517*pow(theta,0.429578)-3.554857*pow(theta,0.485308)+0.461167*pow(theta,4.050387)-0.438751*pow(theta,4.407893)-0.107601*pow(theta,5.383350)+0.294769*pow(theta,6.326992);
767  rho = exp(RHS)*reduce.rho;
768  return rho;
769 }
771 {
772  double theta = 1-T/reduce.T;
773  double RHS,rho;
774 
775  if (theta < 0) theta = 1e-6;
776  // Max error is 0.625617 %
777  RHS = -3.349640*pow(theta,0.363375)-3.919482*pow(theta,1.308131)-5.046495*pow(theta,5.251634)-3.395130*pow(theta,4.732761)-1.880353*pow(theta,5.885600)-0.727824*pow(theta,6.806098);
778  rho = exp(RHS*reduce.T/T)*reduce.rho;
779  return rho;
780 }
782 {
783  double theta = 1-T/reduce.T;
784  double RHS,p;
785 
786  if (theta < 0) theta = 1e-6;
787  // Max error is 0.636597 %
788  RHS = -6.993179*pow(theta,0.968165)-3.963479*pow(theta,3.066906)-1.333772*pow(theta,4.415999)-0.096273*pow(theta,4.801166)+0.499673*pow(theta,5.391500);
789  p = exp(RHS*reduce.T/T)*reduce.p.Pa;
790  return p;
791 }
792 
793 //MD4M
795 {
796  const double d[] =
797  {
798  0,
799  1.0, //[1]
800  1.0, //[2]
801  1.0, //[3]
802  2.0, //[4]
803  3.0, //[5]
804  7.0, //[6]
805  2.0, //[7]
806  5.0, //[8]
807  1.0, //[9]
808  4.0, //[10]
809  3.0, //[11]
810  4.0, //[12]
811  };
812 
813  const double t[] =
814  {
815  0,
816  0.25, //[1]
817  1.125, //[2]
818  1.5, //[3]
819  1.375, //[4]
820  0.25, //[5]
821  0.875, //[6]
822  0.625, //[7]
823  1.75, //[8]
824  3.625, //[9]
825  3.625, //[10]
826  14.5, //[11]
827  12.0, //[12]
828  };
829 
830  const double l[] =
831  {
832  0,
833  0.0, //[1]
834  0.0, //[2]
835  0.0, //[3]
836  0.0, //[4]
837  0.0, //[5]
838  0.0, //[6]
839  1.0, //[7]
840  1.0, //[8]
841  2.0, //[9]
842  2.0, //[10]
843  3.0, //[11]
844  3.0, //[12]
845  };
846  const double n[]={0.0,1.18492421,-1.87465636,-0.06571351,-0.61812689,0.19535804,0.0005067874,1.23544082,0.049462708,-0.73685283,-0.19991438,-0.055118673,0.028325885};
847  // divided by R_u to give cp0/R_u terms like in Lemmon 2000
848  const double u0[]={0.0,-2.41398371417933,0.268026640777671,-0.000157724988429812,3.44219091723443E-08};
849  const double n0[]={0.0,0,1,2,3};
850 
851  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
852  std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));
853 
854  // Critical parameters
855  crit.rho = 278.177742672768;
856  crit.p = PressureUnit(877.0, UNIT_KPA);
857  crit.T =653.2;
858  crit.v = 1.0/crit.rho;
859 
860  // Load up a new structure with reducing parameters
861  reduce.rho = 285.657653221363;
862  reduce.p = PressureUnit(877.47, UNIT_KPA);
863  reduce.T = 653.2;
864  reduce.v = 1.0/reduce.rho;
865 
866  preduce = &reduce;
867 
868  // Other fluid parameters
869  params.molemass=458.99328;
870  params.Ttriple=214.15;
871  params.accentricfactor=0.82464714726429245;
872  params.R_u = 8.314472;
873  // Caution calculated at Tmin
874  params.ptriple = 0.00109337696739;
875 
876 
877  // Limits of EOS
878  limits.Tmin = 300;
879  limits.Tmax = 500.0;
880  limits.pmax = 100000.0;
881  limits.rhomax = 1000000.0*params.molemass;
882 
883  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
884 
885  double T0 = 532.723355998617,
886  rho0 = 651.644500503887,
887  R_ = params.R_u/params.molemass,
888  m,
889  c,
890  H0 = 103.76393935240931,
891  S0 = 0.11760337078430246,
892  tau0=crit.T/T0,
893  delta0=rho0/crit.rho;
894 
895  // log(delta)+c+m*tau
896 
898  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
899 
901  m=H0/(R_*reduce.T); /*<< from the leading term */
902 
903  phi_BC * phi0_lead_ = new phi0_lead(c,m);
904  phi0list.push_back(phi0_lead_);
905 
906  phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
907  phi0list.push_back(phi0_logtau_);
908 
909  phi0list.push_back(new phi0_cp0_constant(u0_v[1],reduce.T,T0));
910 
911  phi_BC * phi0_cp0_poly_ = new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4);
912  phi0list.push_back(phi0_cp0_poly_);
913 
914  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
915  TransportReference.assign("Using ECS in fully predictive mode");
916 
917  name.assign("MD4M");
918  aliases.push_back(std::string("Tetradecamethylhexasiloxane"));
919  aliases.push_back(std::string("TETRADECAMETHYLHEXASILOXANE"));
920  REFPROPname.assign("MD4M");
921 
922  ECSReferenceFluid = "Nitrogen";
923 
924  BibTeXKeys.EOS = "Colonna-FPE-2006";
925  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
926 }
928 {
929  double theta = 1-T/reduce.T;
930  double RHS,rho;
931 
932  // Max error is 0.736426 %
933  RHS = +1.323853*pow(theta,0.281503)+0.147420*pow(theta,3.828555)+0.246462*pow(theta,3.896665)-0.346926*pow(theta,4.315933)-0.173105*pow(theta,5.291410)+0.187277*pow(theta,6.286236);
934  rho = exp(RHS)*reduce.rho;
935  return rho;
936 }
938 {
939  double theta = 1-T/reduce.T;
940  double RHS,rho;
941 
942  // Max error is 0.158764 %
943  RHS = -0.411516*pow(theta,0.123844)-6.464782*pow(theta,0.633729)-11.135283*pow(theta,17.959104)-10.395902*pow(theta,3.308400)-2.873559*pow(theta,3.275238)-1.178585*pow(theta,9.838501);
944  rho = exp(RHS*reduce.T/T)*reduce.rho;
945  return rho;
946 }
948 {
949  double theta = 1-T/reduce.T;
950  double RHS,p;
951 
952  // Max error is 0.104803 %
953  RHS = -9.945866*pow(theta,0.993284)-113.010891*pow(theta,7.297341)-38.114082*pow(theta,24.782767)-33.140158*pow(theta,4.160418)-21.201196*pow(theta,2.574117);
954  p = exp(RHS)*reduce.p.Pa;
955  return p;
956 }
957 
958 //D4
960 {
961  const double d[] =
962  {
963  0,
964  1.0, //[1]
965  1.0, //[2]
966  1.0, //[3]
967  2.0, //[4]
968  3.0, //[5]
969  7.0, //[6]
970  2.0, //[7]
971  5.0, //[8]
972  1.0, //[9]
973  4.0, //[10]
974  3.0, //[11]
975  4.0, //[12]
976  };
977 
978  const double t[] =
979  {
980  0,
981  0.25, //[1]
982  1.125, //[2]
983  1.5, //[3]
984  1.375, //[4]
985  0.25, //[5]
986  0.875, //[6]
987  0.625, //[7]
988  1.75, //[8]
989  3.625, //[9]
990  3.625, //[10]
991  14.5, //[11]
992  12.0, //[12]
993  };
994 
995  const double l[] =
996  {
997  0,
998  0.0, //[1]
999  0.0, //[2]
1000  0.0, //[3]
1001  0.0, //[4]
1002  0.0, //[5]
1003  0.0, //[6]
1004  1.0, //[7]
1005  1.0, //[8]
1006  2.0, //[9]
1007  2.0, //[10]
1008  3.0, //[11]
1009  3.0, //[12]
1010  };
1011  const double n[]={0.0,1.05392408,-2.22981918,0.77573923,-0.6937405,0.18721557,0.0004219333,0.70301835,0.047851888,-0.8025348,-0.18968872,-0.022211781,0.0060103354};
1012  // divided by R_u to give cp0/R_u terms like in Lemmon 2000
1013  const double u0[]={0.0,-2.19568963609475,0.171652511428266,-0.000119093551580906,3.60816657991031E-08};
1014  const double n0[]={0.0,0,1,2,3};
1015 
1016  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
1017  std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));
1018 
1019  // Critical parameters
1020  crit.rho = 305.78949222528007;
1021  crit.p = PressureUnit(1332.0, UNIT_KPA);
1022  crit.T = 586.5;
1023  crit.v = 1.0/crit.rho;
1024 
1025  // Load up a new structure with reducing parameters
1026  reduce.rho = 307.033590673606;
1027  reduce.p = PressureUnit(1332, UNIT_KPA);
1028  reduce.T = 586.49127187;
1029  reduce.v = 1.0/reduce.rho;
1030 
1031  preduce = &reduce;
1032 
1033  // Other fluid parameters
1034  params.molemass=296.61576;
1035  params.Ttriple=290.25;
1036  params.accentricfactor=0.592;
1037  params.R_u = 8.314472;
1038  // Caution calculated at Tmin
1039  params.ptriple = 0.069609237623675213;
1040 
1041  // Limits of EOS
1042  limits.Tmin = params.Ttriple;
1043  limits.Tmax = 500.0;
1044  limits.pmax = 100000.0;
1045  limits.rhomax = 1000000.0*params.molemass;
1046 
1047  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
1048 
1049  double T0 = 448.503917912145,
1050  rho0 = 764.965030584005,
1051  R_ = params.R_u/params.molemass,
1052  m,
1053  c,
1054  H0 = -230.50524687772113,
1055  S0 = -0.86432336859980707,
1056  tau0=crit.T/T0,
1057  delta0=rho0/crit.rho;
1058 
1059  // log(delta)+c+m*tau
1060 
1062  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
1063 
1065  m=H0/(R_*reduce.T); /*<< from the leading term */
1066 
1067  phi_BC * phi0_lead_ = new phi0_lead(c,m);
1068  phi0list.push_back(phi0_lead_);
1069 
1070  phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
1071  phi0list.push_back(phi0_logtau_);
1072 
1073  phi0list.push_back(new phi0_cp0_constant(u0_v[1],reduce.T,T0));
1074 
1075  phi_BC * phi0_cp0_poly_ = new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4);
1076  phi0list.push_back(phi0_cp0_poly_);
1077 
1078  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
1079  TransportReference.assign("Using ECS in fully predictive mode");
1080 
1081  name.assign("D4");
1082  aliases.push_back(std::string("Octamethylcyclotetrasiloxane"));
1083  aliases.push_back(std::string("OCTAMETHYLCYCLOTETRASILOXANE"));
1084  REFPROPname.assign("D4");
1085 
1086  ECSReferenceFluid = "Nitrogen";
1087 
1088  BibTeXKeys.EOS = "Colonna-FPE-2006";
1089  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
1090 }
1092 {
1093  double theta = 1-T/reduce.T;
1094  double RHS,rho;
1095 
1096  // Max error is 0.063302 %
1097  RHS = +0.104571*pow(theta,0.045868)+1.250508*pow(theta,0.294117)+4.015272*pow(theta,4.002063)-2.091843*pow(theta,3.489495)-2.218802*pow(theta,5.461110)-1.211494*pow(theta,6.781263);
1098  rho = exp(RHS)*reduce.rho;
1099  return rho;
1100 }
1102 {
1103  double theta = 1-T/reduce.T;
1104  double RHS,rho;
1105 
1106  // Max error is 0.539080 %
1107  RHS = -0.836967*pow(theta,0.246119)-4.887839*pow(theta,0.626148)-5.741624*pow(theta,2.543434)-3.669516*pow(theta,4.023274)-2.021077*pow(theta,5.824788)-0.819746*pow(theta,6.842893);
1108  rho = exp(RHS*reduce.T/T)*reduce.rho;
1109  return rho;
1110 }
1112 {
1113  // Max error is 0.0796509289458 % between 290.25 and 586.499999 K
1114  const double ti[]={0, 0.352, 0.3745, 1.0, 3.5, 4.333333333333333, 5.5};
1115  const double Ni[]={0, 0.80415183721176908, -0.93068397535046898, -7.8477917073533066, -13.625622539026633, 13.019220440087111, -10.876350518822491};
1116  double summer=0,theta;
1117  int i;
1118  theta=1.0-T/reduce.T;
1119  for (i=1;i<=6;i++)
1120  {
1121  summer += Ni[i]*pow(theta,ti[i]);
1122  }
1123  return reduce.p.Pa*exp(crit.T/T*summer);
1124 }
1125 
1126 //D5
1128 {
1129  const double d[] =
1130  {
1131  0,
1132  1.0, //[1]
1133  1.0, //[2]
1134  1.0, //[3]
1135  2.0, //[4]
1136  3.0, //[5]
1137  7.0, //[6]
1138  2.0, //[7]
1139  5.0, //[8]
1140  1.0, //[9]
1141  4.0, //[10]
1142  3.0, //[11]
1143  4.0, //[12]
1144  };
1145 
1146  const double t[] =
1147  {
1148  0,
1149  0.25, //[1]
1150  1.125, //[2]
1151  1.5, //[3]
1152  1.375, //[4]
1153  0.25, //[5]
1154  0.875, //[6]
1155  0.625, //[7]
1156  1.75, //[8]
1157  3.625, //[9]
1158  3.625, //[10]
1159  14.5, //[11]
1160  12.0, //[12]
1161  };
1162 
1163  const double l[] =
1164  {
1165  0,
1166  0.0, //[1]
1167  0.0, //[2]
1168  0.0, //[3]
1169  0.0, //[4]
1170  0.0, //[5]
1171  0.0, //[6]
1172  1.0, //[7]
1173  1.0, //[8]
1174  2.0, //[9]
1175  2.0, //[10]
1176  3.0, //[11]
1177  3.0, //[12]
1178  };
1179  const double n[]={0.0,1.40844725,-2.29248044,0.42851607,-0.73506382,0.16103808,0.00029643278,0.82412481,0.15214274,-0.6849589,-0.055703624,0.013055391,-0.031853761};
1180  // divided by R_u to give cp0/R_u terms like in Lemmon 2000
1181  const double u0[]={0.0,-4.19725991019033,0.223886736283434,-0.000168790032608204,6.01361096651718E-08};
1182  const double n0[]={0.0,0,1,2,3};
1183  std::vector<double> n_v(n,n+sizeof(n)/sizeof(double));
1184  std::vector<double> u0_v(u0,u0+sizeof(u0)/sizeof(double));
1185  std::vector<double> n0_v(n0,n0+sizeof(n0)/sizeof(double));
1186  std::vector<double> d_v(d,d+sizeof(d)/sizeof(double));
1187  std::vector<double> t_v(t,t+sizeof(t)/sizeof(double));
1188  std::vector<double> l_v(l,l+sizeof(l)/sizeof(double));
1189 
1190  // Critical parameters
1191  crit.rho = 304.90928495748;
1192  crit.p = PressureUnit(1160, UNIT_KPA);
1193  crit.T = 619.15;
1194  crit.v = 1.0/crit.rho;
1195 
1196  // Load up a new structure with reducing parameters
1197  reduce.rho = 292.570762680819;
1198  reduce.p = PressureUnit(1161.46, UNIT_KPA);
1199  reduce.T = 619.23462341;
1200  reduce.v = 1.0/reduce.rho;
1201 
1202  preduce = &reduce;
1203 
1204  // Other fluid parameters
1205  params.molemass=370.7697;
1206  params.Ttriple=226;
1207  params.accentricfactor=0.658;
1208  params.R_u = 8.314472;
1209 
1210  // Calculated at Tmin
1211  params.ptriple = 0.0275116653286;
1212 
1213  // Limits of EOS
1214  limits.Tmin = 300;
1215  limits.Tmax = 500.0;
1216  limits.pmax = 100000.0;
1217  limits.rhomax = 1000000.0*params.molemass;
1218 
1219  phirlist.push_back(new phir_power(n,d,t,l,1,12,13));
1220 
1221  double T0 = 484.050286854327,
1222  rho0 = 727.981991948461,
1223  R_ = params.R_u/params.molemass,
1224  m,
1225  c,
1226  H0 = 115.63073039269375,
1227  S0 = 0.14017795179966980,
1228  tau0=crit.T/T0,
1229  delta0=rho0/crit.rho;
1230 
1231  // log(delta)+c+m*tau
1232 
1234  c=-S0/R_-1+log(tau0/delta0);/*<< from the leading term*/
1235 
1237  m=H0/(R_*reduce.T); /*<< from the leading term */
1238 
1239  phi_BC * phi0_lead_ = new phi0_lead(c,m);
1240  phi0list.push_back(phi0_lead_);
1241 
1242  phi_BC * phi0_logtau_ = new phi0_logtau(-1.0);
1243  phi0list.push_back(phi0_logtau_);
1244 
1245  phi0list.push_back(new phi0_cp0_constant(u0_v[1],reduce.T,T0));
1246 
1247  phi_BC * phi0_cp0_poly_ = new phi0_cp0_poly(u0_v,n0_v,reduce.T,T0,2,4);
1248  phi0list.push_back(phi0_cp0_poly_);
1249 
1250  EOSReference.assign("Colonna, P., N.R. Nannan, A. Guardone, E.W. Lemmon, \"Multiparameter equations of state for selected siloxanes\", Fluid Phase Equilibria 244 (2006) 193-211.");
1251  TransportReference.assign("Using ECS in fully predictive mode");
1252 
1253  name.assign("D5");
1254  aliases.push_back(std::string("Decamethylcyclopentasiloxane"));
1255  aliases.push_back(std::string("DECAMETHYLCYCLOPENTASILOXANE"));
1256  REFPROPname.assign("D5");
1257 
1258  ECSReferenceFluid = "Nitrogen";
1259 
1260  BibTeXKeys.EOS = "Colonna-FPE-2006";
1261  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
1262 }
1264 {
1265  double theta = 1-T/reduce.T;
1266  double RHS,rho;
1267 
1268  // Max error is 0.260518 %
1269  RHS = +1.080094*pow(theta,0.198987)+0.585719*pow(theta,1.050756)-0.605915*pow(theta,3.284144)-0.279332*pow(theta,3.681234)+0.797515*pow(theta,5.186809)+1.061822*pow(theta,6.108004);
1270  rho = exp(RHS)*reduce.rho;
1271  return rho;
1272 }
1274 {
1275  double theta = 1-T/reduce.T;
1276  double RHS,rho;
1277 
1278  // Max error is 0.660365 %
1279  RHS = -0.752767*pow(theta,0.311678)-5.032494*pow(theta,0.603043)-8.781241*pow(theta,9.277681)-7.681111*pow(theta,2.635003)-4.604776*pow(theta,6.635875)-2.743916*pow(theta,7.810733);
1280  rho = exp(RHS*reduce.T/T)*reduce.rho;
1281  return rho;
1282 }
1284 {
1285  double theta = 1-T/reduce.T;
1286  double RHS,p;
1287 
1288  // Max error is 1.040101 %
1289  RHS = -9.243668*pow(theta,0.996513)-98.611662*pow(theta,6.934223)-32.083059*pow(theta,2.871414)-18.793106*pow(theta,8.376677)-12.211323*pow(theta,9.708690)-6.644894*pow(theta,10.070804);
1290  p = exp(RHS)*reduce.p.Pa;
1291  return p;
1292 }
std::vector< phi_BC * > phirlist
Definition: FluidClass.h:178
struct FluidLimits limits
Definition: FluidClass.h:219
std::string EOS
Definition: FluidClass.h:120
PressureUnit p
Definition: FluidClass.h:50
std::string ECSReferenceFluid
A list of aliases of names for the Fluid, each element is a std::string instance. ...
Definition: FluidClass.h:154
std::string name
A container to hold the cache for residual Helmholtz derivatives.
Definition: FluidClass.h:151
std::string TransportReference
A std::string that contains a reference for thermo properties for the fluid.
Definition: FluidClass.h:158
double Pa
Definition: Units.h:22
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
struct CriticalStruct reduce
A pointer to the point that is used to reduce the T and rho for EOS.
Definition: FluidClass.h:222
double Tmax
Definition: FluidClass.h:54
struct CriticalStruct * preduce
Definition: FluidClass.h:221
double rhosatV(double)
Definition: Siloxanes.cpp:770
std::string EOSReference
The critical qd parameter for the Olchowy-Sengers cross-over term.
Definition: FluidClass.h:157
std::string REFPROPname
The name of the fluid.
Definition: FluidClass.h:152
std::string SURFACE_TENSION
Definition: FluidClass.h:126
double pmax
Definition: FluidClass.h:54
params
struct CriticalStruct crit
Definition: FluidClass.h:218
BibTeXKeysStruct BibTeXKeys
Definition: FluidClass.h:175
Term in the ideal-gas specific heat equation that is polynomial term.
Definition: Helmholtz.h:881
std::vector< phi_BC * > phi0list
A vector of instances of the phi_BC classes for the residual Helmholtz energy contribution.
Definition: FluidClass.h:179
This is the abstract base class upon which each residual Helmholtz energy class is built...
Definition: Helmholtz.h:24
Term in the ideal-gas specific heat equation that is constant.
Definition: Helmholtz.h:792
double Tmin
Definition: FluidClass.h:54
double rhosatL(double)
Definition: Siloxanes.cpp:759
double rhomax
Definition: FluidClass.h:54