www.mooseframework.org
CO2FluidProperties.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 #include <array>
14 
15 class CO2FluidProperties;
16 
17 template <>
18 InputParameters validParams<CO2FluidProperties>();
19 
20 #pragma GCC diagnostic push
21 #pragma GCC diagnostic ignored "-Woverloaded-virtual"
22 
46 {
47 public:
48  CO2FluidProperties(const InputParameters & parameters);
49  virtual ~CO2FluidProperties();
50 
51  virtual Real rho_from_p_T(Real pressure, Real temperature) const override;
52 
53  virtual void rho_from_p_T(
54  Real pressure, Real temperature, Real & rho, Real & drho_dp, Real & drho_dT) const override;
55 
56  virtual Real mu_from_p_T(Real pressure, Real temperature) const override;
57 
58  virtual void mu_from_p_T(
59  Real pressure, Real temperature, Real & mu, Real & dmu_dp, Real & dmu_dT) const override;
60 
61  virtual Real mu_from_rho_T(Real density, Real temperature) const override;
62 
63  void mu_from_rho_T(Real density,
64  Real temperature,
65  Real ddensity_dT,
66  Real & mu,
67  Real & dmu_drho,
68  Real & dmu_dT) const;
69 
70  virtual void
71  rho_mu_from_p_T(Real pressure, Real temperature, Real & rho, Real & mu) const override;
72 
73  virtual void rho_mu_from_p_T(Real pressure,
74  Real temperature,
75  Real & rho,
76  Real & drho_dp,
77  Real & drho_dT,
78  Real & mu,
79  Real & dmu_dp,
80  Real & dmu_dT) const override;
81 
82  virtual std::string fluidName() const override;
83 
84  virtual Real molarMass() const override;
85 
86  virtual Real criticalPressure() const override;
87 
88  virtual Real criticalTemperature() const override;
89 
90  virtual Real criticalDensity() const override;
91 
92  virtual Real triplePointPressure() const override;
93 
94  virtual Real triplePointTemperature() const override;
95 
105  Real meltingPressure(Real temperature) const;
106 
116  Real sublimationPressure(Real temperature) const;
117 
118  virtual Real vaporPressure(Real temperature) const override;
119 
120  virtual void vaporPressure(Real temperature, Real & psat, Real & dpsat_dT) const override;
121 
132  Real saturatedLiquidDensity(Real temperature) const;
133 
144  Real saturatedVaporDensity(Real temperature) const;
145 
146  virtual Real p_from_rho_T(Real density, Real temperature) const override;
147 
148  virtual std::vector<Real> henryCoefficients() const override;
149 
157  Real partialDensity(Real temperature) const;
158 
159  virtual Real k_from_p_T(Real pressure, Real temperature) const override;
160 
161  virtual void
162  k_from_p_T(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const override;
163 
164  virtual Real k_from_rho_T(Real density, Real temperature) const override;
165 
166 protected:
167  virtual Real alpha(Real delta, Real tau) const override;
168 
169  virtual Real dalpha_ddelta(Real delta, Real tau) const override;
170 
171  virtual Real dalpha_dtau(Real delta, Real tau) const override;
172 
173  virtual Real d2alpha_ddelta2(Real delta, Real tau) const override;
174 
175  virtual Real d2alpha_dtau2(Real delta, Real tau) const override;
176 
177  virtual Real d2alpha_ddeltatau(Real delta, Real tau) const override;
178 
180  const Real _Mco2 = 44.0098e-3;
182  const Real _critical_pressure = 7.3773e6;
184  const Real _critical_temperature = 304.1282;
186  const Real _critical_density = 467.6;
188  const Real _triple_point_pressure = 0.51795e6;
190  const Real _triple_point_temperature = 216.592;
192  const Real _Rco2 = 188.9241;
193 
195  const std::array<Real, 5> _a0{{1.99427042, 0.62105248, 0.41195293, 1.04028922, 0.08327678}};
196  const std::array<Real, 5> _theta0{{3.15163, 6.11190, 6.77708, 11.32384, 27.08792}};
197 
199  const std::array<Real, 7> _n1{{0.38856823203161,
200  2.9385475942740,
201  -5.5867188534934,
202  -0.76753199592477,
203  0.31729005580416,
204  0.54803315897767,
205  0.12279411220335}};
206  const std::array<unsigned int, 7> _d1{{1, 1, 1, 1, 2, 2, 3}};
207  const std::array<Real, 7> _t1{{0.0, 0.75, 1.0, 2.0, 0.75, 2.0, 0.75}};
208  const std::array<Real, 27> _n2{
209  {2.1658961543220, 1.5841735109724, -0.23132705405503, 0.058116916431436,
210  -0.55369137205382, 0.48946615909422, -0.024275739843501, 0.062494790501678,
211  -0.12175860225246, -0.37055685270086, -0.016775879700426, -0.11960736637987,
212  -0.045619362508778, 0.035612789270346, -0.0074427727132052, -0.0017395704902432,
213  -0.021810121289527, 0.024332166559236, -0.037440133423463, 0.14338715756878,
214  -0.13491969083286, -0.023151225053480, 0.012363125492901, 0.0021058321972940,
215  -0.00033958519026368, 0.0055993651771592, -0.00030335118055646}};
216  const std::array<unsigned int, 27> _d2{
217  {1, 2, 4, 5, 5, 5, 6, 6, 6, 1, 1, 4, 4, 4, 7, 8, 2, 3, 3, 5, 5, 6, 7, 8, 10, 4, 8}};
218  const std::array<Real, 27> _t2{{1.5, 1.5, 2.5, 0.0, 1.5, 2.0, 0.0, 1.0, 2.0,
219  3.0, 6.0, 3.0, 6.0, 8.0, 6.0, 0.0, 7.0, 12.0,
220  16.0, 22.0, 24.0, 16.0, 24.0, 8.0, 2.0, 28.0, 14.0}};
221  const std::array<unsigned int, 27> _c2{
222  {1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 6}};
223  const std::array<Real, 5> _n3{
224  {-213.65488688320, 26641.569149272, -24027.212204557, -283.41603423999, 212.47284400179}};
225  const std::array<unsigned int, 5> _d3{{2, 2, 2, 3, 3}};
226  const std::array<unsigned int, 5> _t3{{1, 0, 1, 3, 3}};
227  const std::array<Real, 5> _alpha3{{25.0, 25.0, 25.0, 15.0, 20.0}};
228  const std::array<Real, 5> _beta3{{325.0, 300.0, 300.0, 275.0, 275.0}};
229  const std::array<Real, 5> _gamma3{{1.16, 1.19, 1.19, 1.25, 1.25}};
230  const std::array<Real, 5> _eps3{{1.0, 1.0, 1.0, 1.0, 1.0}};
231  const std::array<Real, 3> _n4{{-0.66642276540751, 0.72608632349897, 0.055068668612842}};
232  const std::array<Real, 3> _a4{{3.5, 3.5, 3.5}};
233  const std::array<Real, 3> _b4{{0.875, 0.925, 0.875}};
234  const std::array<Real, 3> _beta4{{0.3, 0.3, 0.3}};
235  const std::array<Real, 3> _A4{{0.7, 0.7, 0.7}};
236  const std::array<Real, 3> _B4{{0.3, 0.3, 1.0}};
237  const std::array<Real, 3> _C4{{10.0, 10.0, 12.5}};
238  const std::array<Real, 3> _D4{{275.0, 275.0, 275.0}};
239 
241  const std::array<Real, 5> _mu_a{{0.235156, -0.491266, 5.211155e-2, 5.347906e-2, -1.537102e-2}};
242  const std::array<Real, 5> _mu_d{
243  {0.4071119e-2, 0.7198037e-4, 0.2411697e-16, 0.2971072e-22, -0.1627888e-22}};
244 
246  const std::array<Real, 3> _k_g1{{0.0, 0.0, 1.5}};
247  const std::array<Real, 7> _k_g2{{0.0, 1.0, 1.5, 1.5, 1.5, 3.5, 5.5}};
248  const std::array<unsigned int, 3> _k_h1{{1, 5, 1}};
249  const std::array<unsigned int, 7> _k_h2{{1, 2, 0, 5, 9, 0, 0}};
250  const std::array<Real, 3> _k_n1{{7.69857587, 0.159885811, 1.56918621}};
251  const std::array<Real, 7> _k_n2{
252  {-6.73400790, 16.3890156, 3.69415242, 22.3205514, 66.1420950, -0.171779133, 0.00433043347}};
253  const std::array<Real, 12> _k_a{
254  {3.0, 6.70697, 0.94604, 0.3, 0.3, 0.39751, 0.33791, 0.77963, 0.79857, 0.9, 0.02, 0.2}};
255 };
256 
257 #pragma GCC diagnostic pop
258 
CO2FluidProperties::_D4
const std::array< Real, 3 > _D4
Definition: CO2FluidProperties.h:238
CO2FluidProperties::henryCoefficients
virtual std::vector< Real > henryCoefficients() const override
Henry's law coefficients for dissolution in water.
Definition: CO2FluidProperties.C:637
CO2FluidProperties::_B4
const std::array< Real, 3 > _B4
Definition: CO2FluidProperties.h:236
CO2FluidProperties::_k_n1
const std::array< Real, 3 > _k_n1
Definition: CO2FluidProperties.h:250
CO2FluidProperties::molarMass
virtual Real molarMass() const override
Fluid name.
Definition: CO2FluidProperties.C:42
CO2FluidProperties::_n3
const std::array< Real, 5 > _n3
Definition: CO2FluidProperties.h:223
CO2FluidProperties::rho_from_p_T
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
Definition: CO2FluidProperties.C:472
CO2FluidProperties::dalpha_ddelta
virtual Real dalpha_ddelta(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt delta.
Definition: CO2FluidProperties.C:199
CO2FluidProperties::_Rco2
const Real _Rco2
Specific gas constant (J/mol/K)
Definition: CO2FluidProperties.h:192
CO2FluidProperties::_n1
const std::array< Real, 7 > _n1
Coefficients for the residual component of the Helmholtz free energy.
Definition: CO2FluidProperties.h:199
CO2FluidProperties::_C4
const std::array< Real, 3 > _C4
Definition: CO2FluidProperties.h:237
CO2FluidProperties::_k_g2
const std::array< Real, 7 > _k_g2
Definition: CO2FluidProperties.h:247
CO2FluidProperties::_n4
const std::array< Real, 3 > _n4
Definition: CO2FluidProperties.h:231
CO2FluidProperties::~CO2FluidProperties
virtual ~CO2FluidProperties()
Definition: CO2FluidProperties.C:33
CO2FluidProperties::fluidName
virtual std::string fluidName() const override
Definition: CO2FluidProperties.C:36
CO2FluidProperties::_gamma3
const std::array< Real, 5 > _gamma3
Definition: CO2FluidProperties.h:229
CO2FluidProperties::_k_a
const std::array< Real, 12 > _k_a
Definition: CO2FluidProperties.h:253
CO2FluidProperties::_mu_d
const std::array< Real, 5 > _mu_d
Definition: CO2FluidProperties.h:242
CO2FluidProperties::criticalPressure
virtual Real criticalPressure() const override
Critical pressure.
Definition: CO2FluidProperties.C:48
CO2FluidProperties::_beta4
const std::array< Real, 3 > _beta4
Definition: CO2FluidProperties.h:234
CO2FluidProperties::dalpha_dtau
virtual Real dalpha_dtau(Real delta, Real tau) const override
Derivative of Helmholtz free energy wrt tau.
Definition: CO2FluidProperties.C:242
CO2FluidProperties::_critical_temperature
const Real _critical_temperature
Critical temperature (K)
Definition: CO2FluidProperties.h:184
CO2FluidProperties::_theta0
const std::array< Real, 5 > _theta0
Definition: CO2FluidProperties.h:196
CO2FluidProperties::criticalDensity
virtual Real criticalDensity() const override
Critical density.
Definition: CO2FluidProperties.C:60
CO2FluidProperties::mu_from_p_T
virtual Real mu_from_p_T(Real pressure, Real temperature) const override
Definition: CO2FluidProperties.C:509
CO2FluidProperties::_k_n2
const std::array< Real, 7 > _k_n2
Definition: CO2FluidProperties.h:251
CO2FluidProperties::_alpha3
const std::array< Real, 5 > _alpha3
Definition: CO2FluidProperties.h:227
CO2FluidProperties::partialDensity
Real partialDensity(Real temperature) const
Partial density of dissolved CO2 From Garcia, Density of aqueous solutions of CO2,...
Definition: CO2FluidProperties.C:626
CO2FluidProperties::rho_mu_from_p_T
virtual void rho_mu_from_p_T(Real pressure, Real temperature, Real &rho, Real &mu) const override
Combined methods.
Definition: CO2FluidProperties.C:603
CO2FluidProperties::_k_g1
const std::array< Real, 3 > _k_g1
Coefficients for the thermal conductivity.
Definition: CO2FluidProperties.h:246
CO2FluidProperties::saturatedVaporDensity
Real saturatedVaporDensity(Real temperature) const
Saturated vapor density of CO2 Valid for temperatures between the triple point temperature and critic...
Definition: CO2FluidProperties.C:146
CO2FluidProperties::d2alpha_dtau2
virtual Real d2alpha_dtau2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt tau.
Definition: CO2FluidProperties.C:349
CO2FluidProperties::_a0
const std::array< Real, 5 > _a0
Coefficients for the ideal gas component of the Helmholtz free energy.
Definition: CO2FluidProperties.h:195
CO2FluidProperties
CO2 fluid properties Most thermophysical properties taken from: Span and Wagner, "A New Equation of S...
Definition: CO2FluidProperties.h:45
CO2FluidProperties::_b4
const std::array< Real, 3 > _b4
Definition: CO2FluidProperties.h:233
CO2FluidProperties::_Mco2
const Real _Mco2
Molar mass of CO2 (kg/mol)
Definition: CO2FluidProperties.h:180
CO2FluidProperties::criticalTemperature
virtual Real criticalTemperature() const override
Critical temperature.
Definition: CO2FluidProperties.C:54
CO2FluidProperties::_d1
const std::array< unsigned int, 7 > _d1
Definition: CO2FluidProperties.h:206
CO2FluidProperties::d2alpha_ddelta2
virtual Real d2alpha_ddelta2(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta.
Definition: CO2FluidProperties.C:283
CO2FluidProperties::triplePointPressure
virtual Real triplePointPressure() const override
Triple point pressure.
Definition: CO2FluidProperties.C:66
CO2FluidProperties::_A4
const std::array< Real, 3 > _A4
Definition: CO2FluidProperties.h:235
CO2FluidProperties::_a4
const std::array< Real, 3 > _a4
Definition: CO2FluidProperties.h:232
CO2FluidProperties::_c2
const std::array< unsigned int, 27 > _c2
Definition: CO2FluidProperties.h:221
NS::density
const std::string density
Definition: NS.h:16
CO2FluidProperties::_d3
const std::array< unsigned int, 5 > _d3
Definition: CO2FluidProperties.h:225
validParams< CO2FluidProperties >
InputParameters validParams< CO2FluidProperties >()
Definition: CO2FluidProperties.C:20
CO2FluidProperties::_triple_point_temperature
const Real _triple_point_temperature
Triple point temperature (K)
Definition: CO2FluidProperties.h:190
CO2FluidProperties::d2alpha_ddeltatau
virtual Real d2alpha_ddeltatau(Real delta, Real tau) const override
Second derivative of Helmholtz free energy wrt delta and tau.
Definition: CO2FluidProperties.C:398
CO2FluidProperties::vaporPressure
virtual Real vaporPressure(Real temperature) const override
Vapor pressure.
Definition: CO2FluidProperties.C:108
CO2FluidProperties::sublimationPressure
Real sublimationPressure(Real temperature) const
Sublimation pressure.
Definition: CO2FluidProperties.C:91
SinglePhaseFluidProperties::rho
e e e e p h T rho
Definition: SinglePhaseFluidProperties.h:169
CO2FluidProperties::_beta3
const std::array< Real, 5 > _beta3
Definition: CO2FluidProperties.h:228
CO2FluidProperties::meltingPressure
Real meltingPressure(Real temperature) const
Melting pressure.
Definition: CO2FluidProperties.C:78
CO2FluidProperties::k_from_rho_T
virtual Real k_from_rho_T(Real density, Real temperature) const override
Definition: CO2FluidProperties.C:666
CO2FluidProperties::_critical_pressure
const Real _critical_pressure
Critical pressure (Pa)
Definition: CO2FluidProperties.h:182
HelmholtzFluidProperties
Base class equation of state for fluids that use a Helmholtz free energy alpha(delta,...
Definition: HelmholtzFluidProperties.h:34
CO2FluidProperties::mu_from_rho_T
virtual Real mu_from_rho_T(Real density, Real temperature) const override
Definition: CO2FluidProperties.C:528
CO2FluidProperties::_critical_density
const Real _critical_density
Critical density (kg/m^3)
Definition: CO2FluidProperties.h:186
CO2FluidProperties::_triple_point_pressure
const Real _triple_point_pressure
Triple point pressure (Pa)
Definition: CO2FluidProperties.h:188
CO2FluidProperties::_d2
const std::array< unsigned int, 27 > _d2
Definition: CO2FluidProperties.h:216
CO2FluidProperties::_n2
const std::array< Real, 27 > _n2
Definition: CO2FluidProperties.h:208
NS::temperature
const std::string temperature
Definition: NS.h:26
CO2FluidProperties::alpha
virtual Real alpha(Real delta, Real tau) const override
Helmholtz free energy.
Definition: CO2FluidProperties.C:162
CO2FluidProperties::_eps3
const std::array< Real, 5 > _eps3
Definition: CO2FluidProperties.h:230
CO2FluidProperties::_mu_a
const std::array< Real, 5 > _mu_a
Coefficients for viscosity.
Definition: CO2FluidProperties.h:241
CO2FluidProperties::_t1
const std::array< Real, 7 > _t1
Definition: CO2FluidProperties.h:207
CO2FluidProperties::k_from_p_T
virtual Real k_from_p_T(Real pressure, Real temperature) const override
Definition: CO2FluidProperties.C:643
CO2FluidProperties::triplePointTemperature
virtual Real triplePointTemperature() const override
Triple point temperature.
Definition: CO2FluidProperties.C:72
CO2FluidProperties::_k_h2
const std::array< unsigned int, 7 > _k_h2
Definition: CO2FluidProperties.h:249
HelmholtzFluidProperties.h
CO2FluidProperties::saturatedLiquidDensity
Real saturatedLiquidDensity(Real temperature) const
Saturated liquid density of CO2 Valid for temperatures between the triple point temperature and criti...
Definition: CO2FluidProperties.C:130
CO2FluidProperties::_t3
const std::array< unsigned int, 5 > _t3
Definition: CO2FluidProperties.h:226
CO2FluidProperties::_k_h1
const std::array< unsigned int, 3 > _k_h1
Definition: CO2FluidProperties.h:248
CO2FluidProperties::CO2FluidProperties
CO2FluidProperties(const InputParameters &parameters)
Definition: CO2FluidProperties.C:28
CO2FluidProperties::_t2
const std::array< Real, 27 > _t2
Definition: CO2FluidProperties.h:218
CO2FluidProperties::p_from_rho_T
virtual Real p_from_rho_T(Real density, Real temperature) const override
Pressure as a function of density and temperature.
Definition: CO2FluidProperties.C:447
NS::pressure
const std::string pressure
Definition: NS.h:25