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
HFE143m.cpp
Go to the documentation of this file.
1 #include "CoolProp.h"
2 #include <vector>
3 #include "CPExceptions.h"
4 #include "FluidClass.h"
5 #include "HFE143m.h"
6 
8 {
9  double n[] = {0.0, 0.77715884e+01, -0.87042570e+01, -0.28095049e+00, 0.14540153e+00, 0.92291277e-02, -0.21416510e+00, 0.99475155e-01, 0.23247135e-01, -0.12873573e-01, -0.57366549e-01, 0.36504650e+00, -0.25433763e+00, -0.90896436e-01, 0.83503619e-01, 0.15477603e-01, -0.16641941e-01, 0.52410163e-02};
10  double t[] = {0, 0.682, 0.851, 1.84, 1.87, 0.353, 3.92, 1.14, 0.104, 1.19, 6.58, 6.73, 7.99, 7.31, 7.45, 16.5, 24.8, 10.5};
11  double d[] = {0, 1, 1, 1, 2, 5, 1, 3, 5, 7, 1, 2, 2, 3, 4, 2, 3, 5};
12  double l[] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3};
13 
14  //Critical parameters
15  crit.rho = 4.648140744*100.04; //[kg/m^3]
16  crit.p = PressureUnit(3635, UNIT_KPA); //[kPa]
17  crit.T = 377.921; //[K]
18  crit.v = 1/crit.rho;
19 
20  // Other fluid parameters
21  params.molemass = 100.04;
22  params.Ttriple = 240;
23  params.accentricfactor = 0.28887136567003235;
24  params.R_u = 8.314472;
25  params.ptriple = 65.359393007;
26 
27  // Limits of EOS
28  limits.Tmin = 240;
29  limits.Tmax = 500.0;
30  limits.pmax = 100000.0;
31  limits.rhomax = 1000000.0*params.molemass;
32 
33  phirlist.push_back(new phir_power( n,d,t,l,1,17,18));
34 
35  double T0 = 273.15,
36  p0 = 256.64,
37  R_u = 8.314472,
38  R_= R_u/params.molemass,
39  rho0=p0/(R_*T0),
40  m,
41  c,
42  H0 = 40617.6,
43  S0 = 174.758,
44  tau0=crit.T/T0,
45  delta0=rho0/crit.rho;
46 
47  // log(delta)+c+m*tau
48 
50  c=-S0/R_u-1+log(tau0/delta0);/*<< from the leading term*/
51 
53  m=H0/(R_u*crit.T); /*<< from the leading term */
54 
55  double N[] = {20.37, 0.2918, -1.950e-4, 4.650e-8};
56  phi0list.push_back(new phi0_lead(c,m));
57  phi0list.push_back(new phi0_logtau(-1.0));
58  phi0list.push_back(new phi0_cp0_constant(N[0]/R_u,crit.T,T0));
59  phi0list.push_back(new phi0_cp0_poly(N[1]/R_u,1,crit.T,T0));
60  phi0list.push_back(new phi0_cp0_poly(N[2]/R_u,2,crit.T,T0));
61  phi0list.push_back(new phi0_cp0_poly(N[3]/R_u,3,crit.T,T0));
62 
63  EOSReference.assign("Ryo Akasaka and Yohei Kayukawa \" A fundamental equation of state for trifluoromethyl methyl ether (HFE-143m) and its application to refrigeration cycle analysis \" International Journal of Refrigeration 35 (2012) 1003-1013 ");
64  TransportReference.assign("Using ECS in fully predictive mode.");
65 
66  name.assign("HFE143m");
67  aliases.push_back("HFE-143m");
68  aliases.push_back("HFE143M");
69  aliases.push_back("HFE-143M");
70  aliases.push_back("RE143A");
71  aliases.push_back("RE143a");
72  REFPROPname.assign("RE143A");
73 
74  BibTeXKeys.EOS = "Akasaka-IJR-2012";
75 }
76 double HFE143mClass::psat(double T)
77 {
78  const double ti[]={0, 1.0, 1.5, 2.5, 5};
79  const double Ni[]={0, -7.44314, 1.69164, -2.27778, -4.09400};
80  double summer=0,theta;
81  int i;
82  theta=1-T/reduce.T;
83  for (i=1;i<=4;i++)
84  {
85  summer += Ni[i]*pow(theta,ti[i]);
86  }
87  return reduce.p.Pa*exp(reduce.T/T*summer);
88 }
89 double HFE143mClass::rhosatL(double T)
90 {
91  const double ti[]={0, 0.33, 0.5, 1.5, 2.5};
92  const double Ni[]={0, 1.20552, 1.33568, 0.0981486, 0.248917};
93  double summer=0;
94  int i;
95  double theta;
96  theta=1-T/reduce.T;
97  for (i=1;i<=4;i++)
98  {
99  summer += Ni[i]*pow(theta,ti[i]);
100  }
101  return reduce.rho*(1+summer);
102 }
103 double HFE143mClass::rhosatV(double T)
104 {
105  const double ti[]={0, 0.38, 1.24, 3.2, 6.9};
106  const double Ni[]={0, -3.02576, -6.97239, -20.2601, -53.4441};
107  double summer=0,theta;
108  int i;
109  theta=1.0-T/reduce.T;
110  for (i=1;i<=4;i++)
111  {
112  summer += Ni[i]*pow(theta,ti[i]);
113  }
114  return reduce.rho*exp(summer);
115 }
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 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
double rhosatV(double)
Definition: HFE143m.cpp:103
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
double psat(double)
Definition: HFE143m.cpp:76
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
Term in the ideal-gas specific heat equation that is constant.
Definition: Helmholtz.h:792
double rhosatL(double)
Definition: HFE143m.cpp:89
HFE143mClass()
Definition: HFE143m.cpp:7
double Tmin
Definition: FluidClass.h:54
double rhomax
Definition: FluidClass.h:54