All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
MiscibilityLiveGas.hpp
1 //===========================================================================
2 //
3 // File: MiscibilityLiveGas.hpp
4 //
5 // Created: Wed Feb 10 09:21:26 2010
6 //
7 // Author: Bjørn Spjelkavik <bsp@sintef.no>
8 //
9 // Revision: $Id$
10 //
11 //===========================================================================
12 /*
13  Copyright 2010 SINTEF ICT, Applied Mathematics.
14 
15  This file is part of the Open Porous Media project (OPM).
16 
17  OPM is free software: you can redistribute it and/or modify
18  it under the terms of the GNU General Public License as published by
19  the Free Software Foundation, either version 3 of the License, or
20  (at your option) any later version.
21 
22  OPM is distributed in the hope that it will be useful,
23  but WITHOUT ANY WARRANTY; without even the implied warranty of
24  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  GNU General Public License for more details.
26 
27  You should have received a copy of the GNU General Public License
28  along with OPM. If not, see <http://www.gnu.org/licenses/>.
29 */
30 
31 #ifndef SINTEF_MISCIBILITYLIVEGAS_HEADER
32 #define SINTEF_MISCIBILITYLIVEGAS_HEADER
33 
38 #include "MiscibilityProps.hpp"
39 #include <opm/parser/eclipse/EclipseState/EclipseState.hpp>
40 
41 namespace Opm
42 {
43 
44  class PvtgTable;
45 
47  {
48  public:
49  MiscibilityLiveGas(const Opm::PvtgTable& pvtgTable);
50  virtual ~MiscibilityLiveGas();
51 
52  virtual double getViscosity(int region, double press, const surfvol_t& surfvol) const;
53  virtual double R(int region, double press, const surfvol_t& surfvol) const;
54  virtual double dRdp(int region, double press, const surfvol_t& surfvol) const;
55  virtual double B(int region, double press, const surfvol_t& surfvol) const;
56  virtual double dBdp(int region, double press, const surfvol_t& surfvol) const;
57 
58  virtual void getViscosity(const std::vector<PhaseVec>& pressures,
59  const std::vector<CompVec>& surfvol,
60  int phase,
61  std::vector<double>& output) const;
62  virtual void B(const std::vector<PhaseVec>& pressures,
63  const std::vector<CompVec>& surfvol,
64  int phase,
65  std::vector<double>& output) const;
66  virtual void dBdp(const std::vector<PhaseVec>& pressures,
67  const std::vector<CompVec>& surfvol,
68  int phase,
69  std::vector<double>& output_B,
70  std::vector<double>& output_dBdp) const;
71  virtual void R(const std::vector<PhaseVec>& pressures,
72  const std::vector<CompVec>& surfvol,
73  int phase,
74  std::vector<double>& output) const;
75  virtual void dRdp(const std::vector<PhaseVec>& pressures,
76  const std::vector<CompVec>& surfvol,
77  int phase,
78  std::vector<double>& output_R,
79  std::vector<double>& output_dRdp) const;
80 
81  protected:
82  // item: 1=B 2=mu;
83  double miscible_gas(double press, const surfvol_t& surfvol, int item,
84  bool deriv = false) const;
85  // PVT properties of wet gas (with vaporised oil)
86  std::vector<std::vector<double> > saturated_gas_table_;
87  std::vector<std::vector<std::vector<double> > > undersat_gas_tables_;
88 
89  };
90 
91 }
92 
93 #endif // SINTEF_MISCIBILITYLIVEGAS_HEADER
94 
Definition: MiscibilityLiveGas.hpp:46
Definition: MiscibilityProps.hpp:46
MiscibilityLiveGas(const Opm::PvtgTable &pvtgTable)
Constructor.
Definition: MiscibilityLiveGas.cpp:50