My Project
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 
35 namespace Opm {
46 template <class Scalar>
47 class DNAPL : public Component<Scalar, DNAPL<Scalar> >
48 {
49 public:
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 
71  static bool liquidIsCompressible()
72  { return false; }
73 
77  static Scalar molarMass()
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
Abstract base class of a pure chemical species.
Relations valid for an ideal gas.
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
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