opm-common
Toggle main menu visibility
Loading...
Searching...
No Matches
H2O_Mesitylene.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
*/
27
#ifndef OPM_BINARY_COEFF_H2O_MESITYLENE_HPP
28
#define OPM_BINARY_COEFF_H2O_MESITYLENE_HPP
29
30
#include <
opm/material/components/H2O.hpp
>
31
#include <
opm/material/components/Mesitylene.hpp
>
32
33
namespace
Opm
34
{
35
namespace
BinaryCoeff
36
{
37
41
class
H2O_Mesitylene
42
{
43
public
:
51
template
<
class
Evaluation>
52
static
Evaluation
henry
(
const
Evaluation&
/*temperature*/
)
53
{
54
// after Sanders
55
double
sanderH = 1.7e-1;
// [M/atm]
56
//conversion to our Henry definition
57
double
opmH = sanderH / 101.325;
// has now [(mol/m^3)/Pa]
58
opmH *= 18.02e-6;
// multiplied by molar volume of reference phase = water
59
return
1.0/opmH;
// [Pa]
60
}
61
66
template
<
class
Evaluation>
67
static
Evaluation
gasDiffCoeff
(Evaluation temperature, Evaluation pressure)
68
{
69
typedef
H2O<double>
H2O
;
70
typedef
Mesitylene<double>
Mesitylene
;
71
72
temperature = max(temperature, 1e-9);
// regularization
73
temperature = min(temperature, 500.0);
// regularization
74
pressure = max(pressure, 0.0);
// regularization
75
pressure = min(pressure, 1e8);
// regularization
76
77
const
double
M_m = 1e3*
Mesitylene::molarMass
();
// [g/mol] molecular weight of mesitylene
78
const
double
M_w = 1e3*
H2O::molarMass
();
// [g/mol] molecular weight of water
79
const
double
Tb_m = 437.9;
// [K] boiling temperature of mesitylen
80
const
double
Tb_w = 373.15;
// [K] boiling temperature of water (at p_atm)
81
const
double
V_B_w = 18.0;
// [cm^3/mol] LeBas molal volume of water
82
const
double
sigma_w = 1.18*std::pow(V_B_w, 0.333);
// charact. length of air
83
const
double
T_scal_w = 1.15*Tb_w;
// [K] (molec. energy of attraction/Boltzmann constant)
84
const
double
V_B_m = 162.6;
// [cm^3/mol] LeBas molal volume of mesitylen
85
const
double
sigma_m = 1.18*std::pow(V_B_m, 0.333);
// charact. length of mesitylen
86
const
double
sigma_wm = 0.5*(sigma_w + sigma_m);
87
const
double
T_scal_m = 1.15*Tb_m;
88
const
double
T_scal_wm = std::sqrt(T_scal_w*T_scal_m);
89
90
const
Evaluation T_star = max(temperature/T_scal_wm, 1e-5);
91
92
const
Evaluation& Omega = 1.06036/pow(T_star,0.1561) + 0.193/exp(T_star*0.47635)
93
+ 1.03587/exp(T_star*1.52996) + 1.76474/exp(T_star*3.89411);
94
const
double
B_ = 0.00217 - 0.0005*std::sqrt(1.0/M_w + 1.0/M_m);
95
const
double
Mr = (M_w + M_m)/(M_w*M_m);
96
const
Evaluation D_wm = (B_*pow(temperature,1.6)*std::sqrt(Mr))
97
/(1e-5*pressure*std::pow(sigma_wm, 2.0)*Omega);
// [cm^2/s]
98
99
return
D_wm*1e-4;
// [m^2/s]
100
}
101
105
template
<
class
Evaluation>
106
static
Evaluation
liquidDiffCoeff
(
const
Evaluation&
/*temperature*/
,
const
Evaluation&
/*pressure*/
)
107
{
108
// This is just an order of magnitude estimate. Please improve!
109
return
1e-9;
110
}
111
};
112
113
}
// namespace BinaryCoeff
114
}
// namespace Opm
115
116
#endif
H2O.hpp
Material properties of pure water .
Mesitylene.hpp
Component for Mesitylene.
Opm::BinaryCoeff::H2O_Mesitylene
Binary coefficients for water and mesitylene.
Definition
H2O_Mesitylene.hpp:42
Opm::BinaryCoeff::H2O_Mesitylene::henry
static Evaluation henry(const Evaluation &)
Henry coefficent for mesitylene in liquid water.
Definition
H2O_Mesitylene.hpp:52
Opm::BinaryCoeff::H2O_Mesitylene::gasDiffCoeff
static Evaluation gasDiffCoeff(Evaluation temperature, Evaluation pressure)
Binary diffusion coefficent [m^2/s] for molecular water and mesitylene.
Definition
H2O_Mesitylene.hpp:67
Opm::BinaryCoeff::H2O_Mesitylene::liquidDiffCoeff
static Evaluation liquidDiffCoeff(const Evaluation &, const Evaluation &)
Diffusion coefficent [m^2/s] for mesitylene in liquid water.
Definition
H2O_Mesitylene.hpp:106
Opm::H2O
Material properties of pure water .
Definition
H2O.hpp:65
Opm::H2O::molarMass
static const Scalar molarMass()
The molar mass in of water.
Definition
H2O.hpp:85
Opm::Mesitylene
Component for Mesitylene.
Definition
Mesitylene.hpp:47
Opm::Mesitylene::molarMass
static Scalar molarMass()
The molar mass in of mesitylene.
Definition
Mesitylene.hpp:60
Opm
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition
Exceptions.hpp:30
opm
material
binarycoefficients
H2O_Mesitylene.hpp
Generated by
1.17.0