www.mooseframework.org
CO2FluidProperties.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 #ifndef CO2FLUIDPROPERTIES_H
9 #define CO2FLUIDPROPERTIES_H
10 
12 
13 class CO2FluidProperties;
14 
15 template <>
16 InputParameters validParams<CO2FluidProperties>();
17 
41 {
42 public:
43  CO2FluidProperties(const InputParameters & parameters);
44  virtual ~CO2FluidProperties();
45 
46  virtual Real rho(Real pressure, Real temperature) const override;
47 
48  virtual void rho_dpT(
49  Real pressure, Real temperature, Real & rho, Real & drho_dp, Real & drho_dT) const override;
50 
51  virtual Real mu(Real pressure, Real temperature) const override;
52 
53  virtual void
54  mu_dpT(Real pressure, Real temperature, Real & mu, Real & dmu_dp, Real & dmu_dT) const override;
55 
56  virtual Real mu_from_rho_T(Real density, Real temperature) const override;
57 
58  virtual void mu_drhoT_from_rho_T(Real density,
59  Real temperature,
60  Real ddensity_dT,
61  Real & mu,
62  Real & dmu_drho,
63  Real & dmu_dT) const override;
64 
65  virtual std::string fluidName() const override;
66 
67  Real molarMass() const override;
68 
73  Real criticalPressure() const;
74 
79  Real criticalTemperature() const;
80 
85  Real criticalDensity() const;
86 
91  Real triplePointPressure() const;
92 
97  Real triplePointTemperature() const;
98 
108  Real meltingPressure(Real temperature) const;
109 
119  Real sublimationPressure(Real temperature) const;
120 
131  Real vaporPressure(Real temperature) const;
132 
143  Real saturatedLiquidDensity(Real temperature) const;
144 
155  Real saturatedVaporDensity(Real temperature) const;
156 
165  Real pressure(Real density, Real temperature) const;
166 
176  Real pressureSW(Real density, Real temperature) const;
177 
186  Real phiSW(Real delta, Real tau) const;
187 
195  Real dphiSW_dd(Real delta, Real tau) const;
196 
204  Real dphiSW_dt(Real delta, Real tau) const;
205 
213  Real d2phiSW_dd2(Real delta, Real tau) const;
214 
222  Real d2phiSW_dt2(Real delta, Real tau) const;
223 
231  Real d2phiSW_ddt(Real delta, Real tau) const;
232 
233  virtual Real henryConstant(Real temperature) const override;
234 
235  virtual void henryConstant_dT(Real temperature, Real & Kh, Real & dKh_dT) const override;
236 
244  Real partialDensity(Real temperature) const;
245 
246  virtual Real e(Real pressure, Real temperature) const override;
247 
248  virtual void
249  e_dpT(Real pressure, Real temperature, Real & e, Real & de_dp, Real & de_dT) const override;
250 
251  virtual void rho_e_dpT(Real pressure,
252  Real temperature,
253  Real & rho,
254  Real & drho_dp,
255  Real & drho_dT,
256  Real & e,
257  Real & de_dp,
258  Real & de_dT) const override;
259 
260  virtual Real c(Real pressure, Real temperature) const override;
261 
262  virtual Real cp(Real pressure, Real temperature) const override;
263 
264  virtual Real cv(Real pressure, Real temperature) const override;
265 
266  virtual Real k(Real pressure, Real temperature) const override;
267 
268  virtual void
269  k_dpT(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const override;
270 
271  virtual Real k_from_rho_T(Real density, Real temperature) const override;
272 
273  virtual Real s(Real pressure, Real temperature) const override;
274 
275  virtual Real h(Real p, Real T) const override;
276 
277  virtual void
278  h_dpT(Real pressure, Real temperature, Real & h, Real & dh_dp, Real & dh_dT) const override;
279 
280  virtual Real beta(Real pressure, Real temperature) const override;
281 
282 protected:
284  const Real _Mco2 = 44.0098e-3;
286  const Real _critical_pressure = 7.3773e6;
288  const Real _critical_temperature = 304.1282;
290  const Real _critical_density = 467.6;
292  const Real _triple_point_pressure = 0.51795e6;
294  const Real _triple_point_temperature = 216.592;
296  const Real _Rco2 = 188.9241;
297 
299  std::vector<Real> _a0{1.99427042, 0.62105248, 0.41195293, 1.04028922, 0.08327678};
300  std::vector<Real> _theta0{3.15163, 6.11190, 6.77708, 11.32384, 27.08792};
301 
303  std::vector<Real> _n1{0.38856823203161,
304  2.9385475942740,
305  -5.5867188534934,
306  -0.76753199592477,
307  0.31729005580416,
308  0.54803315897767,
309  0.12279411220335};
310  std::vector<Real> _d1{1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 3.0};
311  std::vector<Real> _t1{0.0, 0.75, 1.0, 2.0, 0.75, 2.0, 0.75};
312  std::vector<Real> _n2{
313  2.1658961543220, 1.5841735109724, -0.23132705405503, 0.058116916431436,
314  -0.55369137205382, 0.48946615909422, -0.024275739843501, 0.062494790501678,
315  -0.12175860225246, -0.37055685270086, -0.016775879700426, -0.11960736637987,
316  -0.045619362508778, 0.035612789270346, -0.0074427727132052, -0.0017395704902432,
317  -0.021810121289527, 0.024332166559236, -0.037440133423463, 0.14338715756878,
318  -0.13491969083286, -0.023151225053480, 0.012363125492901, 0.0021058321972940,
319  -0.00033958519026368, 0.0055993651771592, -0.00030335118055646};
320  std::vector<Real> _d2{1.0, 2.0, 4.0, 5.0, 5.0, 5.0, 6.0, 6.0, 6.0, 1.0, 1.0, 4.0, 4.0, 4.0,
321  7.0, 8.0, 2.0, 3.0, 3.0, 5.0, 5.0, 6.0, 7.0, 8.0, 10.0, 4.0, 8.0};
322  std::vector<Real> _t2{1.5, 1.5, 2.5, 0.0, 1.5, 2.0, 0.0, 1.0, 2.0, 3.0, 6.0, 3.0, 6.0, 8.0,
323  6.0, 0.0, 7.0, 12.0, 16.0, 22.0, 24.0, 16.0, 24.0, 8.0, 2.0, 28.0, 14.0};
324  std::vector<Real> _c2{1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0,
325  2.0, 2.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 6.0};
326  std::vector<Real> _n3{
327  -213.65488688320, 26641.569149272, -24027.212204557, -283.41603423999, 212.47284400179};
328  std::vector<Real> _d3{2.0, 2.0, 2.0, 3.0, 3.0};
329  std::vector<Real> _t3{1.0, 0.0, 1.0, 3.0, 3.0};
330  std::vector<Real> _alpha3{25.0, 25.0, 25.0, 15.0, 20.0};
331  std::vector<Real> _beta3{325.0, 300.0, 300.0, 275.0, 275.0};
332  std::vector<Real> _gamma3{1.16, 1.19, 1.19, 1.25, 1.25};
333  std::vector<Real> _eps3{1.0, 1.0, 1.0, 1.0, 1.0};
334  std::vector<Real> _n4{-0.66642276540751, 0.72608632349897, 0.055068668612842};
335  std::vector<Real> _a4{3.5, 3.5, 3.5};
336  std::vector<Real> _b4{0.875, 0.925, 0.875};
337  std::vector<Real> _beta4{0.3, 0.3, 0.3};
338  std::vector<Real> _A4{0.7, 0.7, 0.7};
339  std::vector<Real> _B4{0.3, 0.3, 1.0};
340  std::vector<Real> _C4{10.0, 10.0, 12.5};
341  std::vector<Real> _D4{275.0, 275.0, 275.0};
342 };
343 
344 #endif /* CO2FLUIDPROPERTIES_H */
std::vector< Real > _n4
std::vector< Real > _t1
virtual Real beta(Real pressure, Real temperature) const override
Thermal expansion coefficient.
std::vector< Real > _d3
std::vector< Real > _n2
virtual Real k_from_rho_T(Real density, Real temperature) const override
Thermal conductivity as a function of density and temperature.
Real criticalDensity() const
CO2 critical density.
virtual Real cp(Real pressure, Real temperature) const override
Isobaric specific heat capacity.
std::vector< Real > _a4
Real criticalTemperature() const
CO2 critical temperature.
std::vector< Real > _c2
std::vector< Real > _beta4
std::vector< Real > _a0
Coefficients for the ideal gas component of the Helmholtz free energy.
std::vector< Real > _D4
virtual void henryConstant_dT(Real temperature, Real &Kh, Real &dKh_dT) const override
Henry&#39;s law constant for dissolution in water and derivative wrt temperature.
CO2 fluid properties Most thermophysical properties taken from: Span and Wagner, "A New Equation of S...
const Real _critical_density
Critical density (kg/m^3)
Real molarMass() const override
Molar mass.
virtual Real cv(Real pressure, Real temperature) const override
Isochoric specific heat.
const Real _critical_pressure
Critical pressure (Pa)
const std::string density
Definition: NS.h:15
virtual Real mu(Real pressure, Real temperature) const override
virtual void h_dpT(Real pressure, Real temperature, Real &h, Real &dh_dp, Real &dh_dT) const override
Enthalpy and its derivatives wrt pressure and temperature.
virtual Real c(Real pressure, Real temperature) const override
Speed of sound.
InputParameters validParams< CO2FluidProperties >()
std::vector< Real > _gamma3
const std::string temperature
Definition: NS.h:25
std::vector< Real > _t3
std::vector< Real > _n3
virtual Real rho(Real pressure, Real temperature) const override
Density.
Real d2phiSW_dt2(Real delta, Real tau) const
Second derivative of Helmholtz free energy wrt tau.
Real d2phiSW_dd2(Real delta, Real tau) const
Second derivative of Helmholtz free energy wrt delta.
std::vector< Real > _b4
Common class for single phase fluid properties using a pressure and temperature formulation.
virtual void mu_dpT(Real pressure, Real temperature, Real &mu, Real &dmu_dp, Real &dmu_dT) const override
virtual Real mu_from_rho_T(Real density, Real temperature) const override
CO2FluidProperties(const InputParameters &parameters)
virtual std::string fluidName() const override
Fluid name.
std::vector< Real > _theta0
Real phiSW(Real delta, Real tau) const
Helmholtz free energy for CO2 From Span and Wagner (reference above)
std::vector< Real > _A4
virtual Real h(Real p, Real T) const override
Specific enthalpy.
Real criticalPressure() const
CO2 critical pressure.
virtual Real k(Real pressure, Real temperature) const override
Thermal conductivity.
std::vector< Real > _alpha3
Real triplePointTemperature() const
CO2 triple point temperature.
std::vector< Real > _n1
Coefficients for the residual component of the Helmholtz free energy.
Real sublimationPressure(Real temperature) const
Sublimation pressure.
const Real _Rco2
Specific gas constant (J/mol/K)
std::vector< Real > _C4
Real dphiSW_dt(Real delta, Real tau) const
Derivative of Helmholtz free energy wrt tau.
virtual void mu_drhoT_from_rho_T(Real density, Real temperature, Real ddensity_dT, Real &mu, Real &dmu_drho, Real &dmu_dT) const override
Dynamic viscosity and its derivatives wrt density and temperature.
Real dphiSW_dd(Real delta, Real tau) const
Derivative of Helmholtz free energy wrt delta.
std::vector< Real > _d1
Real d2phiSW_ddt(Real delta, Real tau) const
Second derivative of Helmholtz free energy wrt delta and tau.
std::vector< Real > _t2
virtual void rho_dpT(Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT) const override
Density and its derivatives wrt pressure and temperature.
const Real _triple_point_temperature
Triple point temperature (K)
Real saturatedLiquidDensity(Real temperature) const
Saturated liquid density of CO2 Valid for temperatures between the triple point temperature and criti...
Real pressure(Real density, Real temperature) const
Pressure as a function of density and temperature From Span and Wagner (reference above) ...
virtual Real e(Real pressure, Real temperature) const override
Internal energy.
const Real _critical_temperature
Critical temperature (K)
Real pressureSW(Real density, Real temperature) const
Internal function to calculate pressure as a function of density and temperature using the Span and W...
virtual void k_dpT(Real pressure, Real temperature, Real &k, Real &dk_dp, Real &dk_dT) const override
Thermal conductivity and its derivatives wrt pressure and temperature.
Real vaporPressure(Real temperature) const
Vapor pressure.
std::vector< Real > _d2
std::vector< Real > _beta3
Real triplePointPressure() const
CO2 triple point pressure.
virtual Real henryConstant(Real temperature) const override
Henry&#39;s law constant for dissolution in water.
const Real _triple_point_pressure
Triple point pressure (Pa)
virtual void e_dpT(Real pressure, Real temperature, Real &e, Real &de_dp, Real &de_dT) const override
Internal energy and its derivatives wrt pressure and temperature.
Real saturatedVaporDensity(Real temperature) const
Saturated vapor density of CO2 Valid for temperatures between the triple point temperature and critic...
std::vector< Real > _B4
Real meltingPressure(Real temperature) const
Melting pressure.
virtual void rho_e_dpT(Real pressure, Real temperature, Real &rho, Real &drho_dp, Real &drho_dT, Real &e, Real &de_dp, Real &de_dT) const override
Density and internal energy and their derivatives wrt pressure and temperature.
std::vector< Real > _eps3
virtual Real s(Real pressure, Real temperature) const override
Specific entropy.
const Real _Mco2
Molar mass of CO2 (kg/mol)
Real partialDensity(Real temperature) const
Partial density of dissolved CO2 From Garcia, Density of aqueous solutions of CO2, LBNL-49023 (2001)