Cantera  2.2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RedlichKwong.h
Go to the documentation of this file.
1 //! @file RedlichKwong.h
2 #ifndef TPX_RK_H
3 #define TPX_RK_H
4 
5 #include "cantera/tpx/Sub.h"
6 #include <math.h>
7 
8 namespace tpx
9 {
10 const double GasConstant = 8314.3;
11 
12 class RedlichKwong : public Substance
13 {
14 
15 public:
16 
17  RedlichKwong() {
18  setParameters(1.0, 1.0, 1.0);
19  m_name = "Redlich-Kwong";
20  m_formula = "-";
21  }
22 
23  void setParameters(double Tc, double Pc, double MolWt) {
24  m_tcrit = Tc;
25  m_pcrit = Pc;
26  m_mw = MolWt;
27 
28  // compute the a and b parameters
29  m_a = 0.42748*GasConstant*GasConstant*m_tcrit*m_tcrit*sqrt(m_tcrit)/m_pcrit;
30  m_b = 0.08664*GasConstant*m_tcrit/m_pcrit;
31  }
32 
33  double a() {
34  return m_a;
35  }
36  double b() {
37  return m_b;
38  }
39 
40  double MolWt() {
41  return m_mw;
42  }
43  double Tcrit() {
44  return m_tcrit;
45  }
46  double Pcrit() {
47  return m_pcrit;
48  }
49  double Vcrit() {
50  return 0.3592725*GasConstant*T/(m_mw*m_pcrit);
51  }
52  double Tmin() {
53  return 0.0;
54  }
55  double Tmax() {
56  return 1.0e10;
57  }
58 
59  double Pp();
60  double up();
61  double sp();
62  double Psat();
63  double dPsatdT();
64 
65  // compressibility
66  double z();
67 
68  // enthalpy departure
69  double hresid();
70 
71  // entropy departure
72  double sresid();
73 
74  double ldens();
75 
76 protected:
77 
78  double m_tcrit, m_pcrit, m_mw, m_a, m_b;
79  //double m_tmin, m_tmax;
80  //string m_name, m_formula;
81 
82 private:
83 
84 };
85 }
86 
87 #endif // ! TPX_RK_H