My Project
H2O_CO2.hpp
Go to the documentation of this file.
1 // -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2 // vi: set et ts=4 sw=4 sts=4:
3 /*
4  This file is part of the Open Porous Media project (OPM).
5 
6  OPM is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 2 of the License, or
9  (at your option) any later version.
10 
11  OPM is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with OPM. If not, see <http://www.gnu.org/licenses/>.
18 
19  Consult the COPYING file in the top-level source directory of this
20  module for the precise wording of the license and the list of
21  copyright holders.
22 */
28 #ifndef OPM_BINARY_COEFF_H2O_CO2_HPP
29 #define OPM_BINARY_COEFF_H2O_CO2_HPP
30 
33 
36 
37 namespace Opm {
38 namespace BinaryCoeff {
39 
44 class H2O_CO2
45 {
46 public:
57  template <class Scalar, class Evaluation = Scalar>
58  static Evaluation henry(const Evaluation& temperature)
59  {
60  const Scalar E = 1672.9376;
61  const Scalar F = 28.1751;
62  const Scalar G = -112.4619;
63  const Scalar H = 85.3807;
64 
65  return henryIAPWS(E, F, G, H, temperature);
66  }
67 
73  template <class Scalar, class Evaluation = Scalar>
74  static Evaluation gasDiffCoeff(const Evaluation& temperature, const Evaluation& pressure)
75  {
76  typedef H2O<Scalar> H2O;
77  typedef SimpleCO2<Scalar> CO2;
78 
79  // atomic diffusion volumes
80  const Scalar SigmaNu[2] = { 13.1 /* H2O */, 26.9 /* CO2 */ };
81  // molar masses [g/mol]
82  const Scalar M[2] = { H2O::molarMass()*1e3, CO2::molarMass()*1e3 };
83 
84  return fullerMethod(M, SigmaNu, temperature, pressure);
85  }
86 
90  template <class Scalar, class Evaluation = Scalar>
91  static Evaluation liquidDiffCoeff(const Evaluation& /*temperature*/, const Evaluation& /*pressure*/)
92  { throw std::runtime_error("Not implemented: Binary liquid diffusion coefficients of CO2 and CH4"); }
93 };
94 
95 } // namespace BinaryCoeff
96 } // namespace Opm
97 
98 #endif
Evaluation fullerMethod(const Scalar *M, const Scalar *SigmaNu, const Evaluation &temperature, const Evaluation &pressure)
Estimate binary diffusion coefficents in gases according to the method by Fuller.
Definition: FullerMethod.hpp:56
Material properties of pure water .
The IAPWS formulation of Henry coefficients in water.
Evaluation henryIAPWS(Scalar E, Scalar F, Scalar G, Scalar H, const Evaluation &temperature)
The Henry constants in liquid water using the IAPWS 2004 formulation.
Definition: HenryIapws.hpp:45
A simplistic class representing the fluid properties.
Binary coefficients for water and CO2.
Definition: H2O_CO2.hpp:45
static Evaluation gasDiffCoeff(const Evaluation &temperature, const Evaluation &pressure)
Binary diffusion coefficent [m^2/s] for molecular water and CO2.
Definition: H2O_CO2.hpp:74
static Evaluation henry(const Evaluation &temperature)
Henry coefficent for molecular CO2 in liquid water.
Definition: H2O_CO2.hpp:58
static Evaluation liquidDiffCoeff(const Evaluation &, const Evaluation &)
Diffusion coefficent [m^2/s] for molecular CO2 in liquid water.
Definition: H2O_CO2.hpp:91
A class for the CO2 fluid properties.
Definition: CO2.hpp:53
static Scalar molarMass()
The mass in [kg] of one mole of CO2.
Definition: CO2.hpp:66
Material properties of pure water .
Definition: H2O.hpp:62
static const Scalar molarMass()
The molar mass in of water.
Definition: H2O.hpp:80
A simplistic class representing the fluid properties.
Definition: SimpleCO2.hpp:51