Dnapl.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_DNAPL_HPP
28#define OPM_DNAPL_HPP
29
30#include "Component.hpp"
31
34
35namespace Opm {
46template <class Scalar>
47class DNAPL : public Component<Scalar, DNAPL<Scalar> >
48{
49public:
53 static const char* name()
54 { return "DNAPL"; }
55
59 static bool gasIsIdeal()
60 { return true; }
61
65 static bool gasIsCompressible()
66 { return true; }
67
72 { return false; }
73
78 {
79 return 131.39e-3; // [kg/mol]
80 }
81
88 template <class Evaluation>
89 static Evaluation vaporPressure(const Evaluation& /*T*/)
90 {
91 return 3900; // [Pa] (at 20C)
92 }
93
100 template <class Evaluation>
101 static Evaluation gasDensity(const Evaluation& temperature, const Evaluation& pressure)
102 {
103 return IdealGas<Scalar>::density(Evaluation(molarMass()),
104 temperature,
105 pressure);
106 }
107
114 template <class Evaluation>
115 static Evaluation liquidDensity(const Evaluation& /*temperature*/, const Evaluation& /*pressure*/)
116 {
117 return 1460.0; // [kg/m^3]
118 }
119
126 template <class Evaluation>
127 static Evaluation liquidViscosity(const Evaluation& /*temperature*/, const Evaluation& /*pressure*/)
128 {
129 return 5.7e-4; // [Pa s]
130 }
131
138 template <class Evaluation>
139 static Evaluation liquidEnthalpy(const Evaluation& temperature, const Evaluation& /*pressure*/)
140 {
141 return 120.0/molarMass() * temperature; // [J/kg]
142 }
143
151 template <class Evaluation>
152 static Evaluation liquidHeatCapacity(const Evaluation&,
153 const Evaluation&)
154 {
155 return 120.0/molarMass();
156 }
157
166 template <class Evaluation>
167 static Evaluation liquidThermalConductivity(const Evaluation& /*temperature*/, const Evaluation& /*pressure*/)
168 {
169 return 0.3;
170 }
171};
172
173} // namespace Opm
174
175#endif
A traits class which provides basic mathematical functions for arbitrary scalar floating point values...
Abstract base class of a pure chemical species.
Definition: Component.hpp:42
Scalar Scalar
Definition: Component.hpp:44
A simple implementation of a dense non-aqueous phase liquid (DNAPL).
Definition: Dnapl.hpp:48
static bool liquidIsCompressible()
Returns true iff the liquid phase is assumed to be compressible.
Definition: Dnapl.hpp:71
static Evaluation liquidEnthalpy(const Evaluation &temperature, const Evaluation &)
The enthalpy of pure TCE at a given pressure and temperature .
Definition: Dnapl.hpp:139
static Evaluation liquidViscosity(const Evaluation &, const Evaluation &)
The dynamic viscosity of pure TCE.
Definition: Dnapl.hpp:127
static Evaluation liquidDensity(const Evaluation &, const Evaluation &)
The density of pure TCE at a given pressure and temperature .
Definition: Dnapl.hpp:115
static Evaluation liquidHeatCapacity(const Evaluation &, const Evaluation &)
Specific isobaric heat capacity of pure liquid TCE.
Definition: Dnapl.hpp:152
static Evaluation liquidThermalConductivity(const Evaluation &, const Evaluation &)
Specific heat conductivity of liquid TCE .
Definition: Dnapl.hpp:167
static Evaluation gasDensity(const Evaluation &temperature, const Evaluation &pressure)
The density of steam at a given pressure and temperature .
Definition: Dnapl.hpp:101
static Scalar molarMass()
The molar mass in of TCE.
Definition: Dnapl.hpp:77
static Evaluation vaporPressure(const Evaluation &)
The vapor pressure in of pure TCE at a given temperature.
Definition: Dnapl.hpp:89
static bool gasIsIdeal()
Returns true iff the gas phase is assumed to be ideal.
Definition: Dnapl.hpp:59
static const char * name()
A human readable name for the TCE.
Definition: Dnapl.hpp:53
static bool gasIsCompressible()
Returns true iff the gas phase is assumed to be compressible.
Definition: Dnapl.hpp:65
static Evaluation density(const Evaluation &avgMolarMass, const Evaluation &temperature, const Evaluation &pressure)
The density of the gas in , depending on pressure, temperature and average molar mass of the gas.
Definition: IdealGas.hpp:48
Definition: Air_Mesitylene.hpp:34