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
R143A.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 "R143A.h"
7 
9 {
10  double n [] = {0, 7.7736443, -8.7018500, -0.27779799, 0.14609220, 0.0089581616, -0.20552116, 0.10653258, 0.023270816, -0.013247542, -0.042793870, 0.36221685, -0.25671899, -0.092326113, 0.083774837, 0.017128445, -0.017256110, 0.0049080492};
11  double d [] = {0, 1, 1, 1, 2, 5, 1, 3, 5, 7, 1, 2, 2, 3, 4, 2, 3, 5};
12  double t [] = {0, 0.67, 0.833, 1.7, 1.82, 0.35, 3.9, 0.95, 0.0, 1.19, 7.2, 5.9, 7.65, 7.5, 7.45, 15.5, 22.0, 19.0};
13  double l [] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3};
14 
15  //Critical parameters
16  crit.rho = 5.12845*84.041; //[kg/m^3]
17  crit.p = PressureUnit(3761, UNIT_KPA); //[kPa]
18  crit.T = 345.857; //[K]
19  crit.v = 1/crit.rho;
20 
21  // Other fluid parameters
22  params.molemass = 84.041;
23  params.Ttriple = 161.34;
24  params.ptriple = 1.077;
25  params.accentricfactor = 0.261489646224;
26  params.R_u = 8.314472;
27 
28  // Limits of EOS
29  limits.Tmin = params.Ttriple;
30  limits.Tmax = 500.0;
31  limits.pmax = 100000.0;
32  limits.rhomax = 1000000.0*params.molemass;
33 
34  phirlist.push_back(new phir_power( n,d,t,l,1,17,18));
35 
36  // lead term: log(delta)+c+m*tau
37  phi0list.push_back(new phi0_lead(5.903087, 7.307253));
38  phi0list.push_back(new phi0_logtau(-1));
39  phi0list.push_back(new phi0_cp0_poly(1.0578,0.33,crit.T,273.15));
40  phi0list.push_back(new phi0_Planck_Einstein(4.4402, 1791/crit.T));
41  phi0list.push_back(new phi0_Planck_Einstein(3.7515, 823/crit.T));
42 
43  EOSReference.assign("Eric W. Lemmon and Richard T. Jacobsen, \"An International Standard Formulation for the Thermodynamic Properties of 1,1,1-Trifluoroethane (HFC-143a) for Temperatures From 161 to 450 K and Pressures to 50 MPa,\" J. Phys. Chem. Ref. Data, Vol. 29, No. 4, 2000");
44  TransportReference.assign("Using ECS in fully predictive mode");
45 
46  name.assign("R143a");
47  aliases.push_back("R143A");
48  REFPROPname.assign("R143A");
49 
50  BibTeXKeys.EOS = "LemmonJacobsen-JPCRD-2000";
51  BibTeXKeys.ECS_LENNARD_JONES = "McLinden-IJR-2000";
52  BibTeXKeys.SURFACE_TENSION = "Mulero-JPCRD-2012";
53 }
54 double R143AClass::psat(double T)
55 {
56  const double ti[]={0,1.0,1.5,2.0,3.5,5.5};
57  const double Ni[]={0,-7.3526, 1.9162,-1.2203,-2.0532,-1.7354};
58  double summer=0,theta;
59  int i;
60  theta=1-T/reduce.T;
61  for (i=1;i<=5;i++)
62  {
63  summer=summer+Ni[i]*pow(theta,ti[i]);
64  }
65  return reduce.p.Pa*exp(crit.T/T*summer);
66 }
67 double R143AClass::rhosatL(double T)
68 {
69  const double ti[]={0,1.0/3.0,2.0/3.0,8.0/3.0};
70  const double Ni[]={0,1.795,0.8709,0.3116};
71  double summer=0;
72  int i;
73  double theta;
74  theta=1-T/reduce.T;
75  for (i=1;i<=3;i++)
76  {
77  summer+=Ni[i]*pow(theta,ti[i]);
78  }
79  return crit.rho*(summer+1);
80 }
81 double R143AClass::rhosatV(double T)
82 {
83  const double ti[]={0,0.39,4.0/3.0,11.0/3.0,23.0/3.0};
84  const double Ni[]={0,-3.072,-8.061,-23.74,-61.37};
85  double summer=0,theta;
86  int i;
87  theta=1.0-T/reduce.T;
88  for (i=1;i<=4;i++)
89  {
90  summer += Ni[i]*pow(theta,ti[i]);
91  }
92  return reduce.rho*exp(summer);
93 }
std::vector< phi_BC * > phirlist
Definition: FluidClass.h:178
struct FluidLimits limits
Definition: FluidClass.h:219
std::string EOS
Definition: FluidClass.h:120
double rhosatV(double)
Definition: R143A.cpp:81
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
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 ECS_LENNARD_JONES
Definition: FluidClass.h:124
std::string SURFACE_TENSION
Definition: FluidClass.h:126
double rhosatL(double)
Definition: R143A.cpp:67
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
R143AClass()
Definition: R143A.cpp:8
double psat(double)
Definition: R143A.cpp:54
double Tmin
Definition: FluidClass.h:54
double rhomax
Definition: FluidClass.h:54