3 #include "RedlichKwong.h"
12 double RedlichKwong::up()
14 double u = -Pp()/Rho + hresid() + m_energy_offset;
18 double RedlichKwong::hresid()
20 double hh = m_b * (Rho/m_mw);
21 double hresid_mol_RT = z() - 1.0
22 - (1.5*m_a/(m_b*8314.3*T*sqrt(T)))*log(1.0 + hh);
23 return 8314.3*T*hresid_mol_RT/m_mw;
26 double RedlichKwong::sresid()
28 double hh = m_b * (Rho/m_mw);
29 double sresid_mol_R = log(z()*(1.0 - hh))
30 - (0.5*m_a/(m_b*8314.3*T*sqrt(T)))*log(1.0 + hh);
31 double sp = 8314.3*sresid_mol_R/m_mw;
35 double RedlichKwong::sp()
37 const double Pref = 101325.0;
38 double rgas = 8314.3/m_mw;
42 double s = rgas*(log(Pref/p)) + sr + m_entropy_offset;
46 double RedlichKwong::z()
48 return Pp()*m_mw/(Rho*8314.3*T);
52 double RedlichKwong::Pp()
56 double pp = R*T/(V - m_b) - m_a/(sqrt(T)*V*(V+m_b));
60 double RedlichKwong::Psat()
62 double tt = m_tcrit/T;
63 double lpr = -0.8734*tt*tt - 3.4522*tt + 4.2918;
64 return m_pcrit*exp(lpr);
67 double RedlichKwong::ldens()
75 for (i = 0; i < 50; i++) {
77 vnew = (1.0/c)*(v*v*v -
GasConstant*T*v*v/pp - m_a*m_b/(pp*sqt));