Cantera  2.1.2
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() : Substance() {
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  char* name() {
59  return (char*) m_name.c_str() ;
60  }
61  char* formula() {
62  return (char*) m_formula.c_str() ;
63  }
64 
65  double Pp();
66  double up();
67  double sp();
68  double Psat();
69  double dPsatdT();
70 
71  // compressibility
72  double z();
73 
74  // enthalpy departure
75  double hresid();
76 
77  // entropy departure
78  double sresid();
79 
80  double ldens();
81 
82 protected:
83 
84  double m_tcrit, m_pcrit, m_mw, m_a, m_b;
85  //double m_tmin, m_tmax;
86  //string m_name, m_formula;
87 
88 private:
89 
90 };
91 }
92 
93 #endif // ! TPX_RK_H