MiscibilityLiveGas.hpp
Go to the documentation of this file.
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 {
44  {
45  public:
46  MiscibilityLiveGas(const Opm::PvtgTable& pvtgTable);
47  virtual ~MiscibilityLiveGas();
48 
49  virtual double getViscosity(int region, double press, const surfvol_t& surfvol) const;
50  virtual double R(int region, double press, const surfvol_t& surfvol) const;
51  virtual double dRdp(int region, double press, const surfvol_t& surfvol) const;
52  virtual double B(int region, double press, const surfvol_t& surfvol) const;
53  virtual double dBdp(int region, double press, const surfvol_t& surfvol) const;
54 
55  virtual void getViscosity(const std::vector<PhaseVec>& pressures,
56  const std::vector<CompVec>& surfvol,
57  int phase,
58  std::vector<double>& output) const;
59  virtual void B(const std::vector<PhaseVec>& pressures,
60  const std::vector<CompVec>& surfvol,
61  int phase,
62  std::vector<double>& output) const;
63  virtual void dBdp(const std::vector<PhaseVec>& pressures,
64  const std::vector<CompVec>& surfvol,
65  int phase,
66  std::vector<double>& output_B,
67  std::vector<double>& output_dBdp) const;
68  virtual void R(const std::vector<PhaseVec>& pressures,
69  const std::vector<CompVec>& surfvol,
70  int phase,
71  std::vector<double>& output) const;
72  virtual void dRdp(const std::vector<PhaseVec>& pressures,
73  const std::vector<CompVec>& surfvol,
74  int phase,
75  std::vector<double>& output_R,
76  std::vector<double>& output_dRdp) const;
77 
78  protected:
79  // item: 1=B 2=mu;
80  double miscible_gas(double press, const surfvol_t& surfvol, int item,
81  bool deriv = false) const;
82  // PVT properties of wet gas (with vaporised oil)
83  std::vector<std::vector<double> > saturated_gas_table_;
84  std::vector<std::vector<std::vector<double> > > undersat_gas_tables_;
85 
86  };
87 
88 }
89 
90 #endif // SINTEF_MISCIBILITYLIVEGAS_HEADER
91 
Definition: BlackoilFluid.hpp:31
virtual double dRdp(int region, double press, const surfvol_t &surfvol) const
std::vector< std::vector< double > > saturated_gas_table_
Definition: MiscibilityLiveGas.hpp:83
Definition: MiscibilityLiveGas.hpp:43
MiscibilityLiveGas(const Opm::PvtgTable &pvtgTable)
CompVec surfvol_t
Definition: MiscibilityProps.hpp:49
virtual double R(int region, double press, const surfvol_t &surfvol) const
Definition: MiscibilityProps.hpp:46
std::vector< std::vector< std::vector< double > > > undersat_gas_tables_
Definition: MiscibilityLiveGas.hpp:84
virtual double getViscosity(int region, double press, const surfvol_t &surfvol) const
double miscible_gas(double press, const surfvol_t &surfvol, int item, bool deriv=false) const
virtual double dBdp(int region, double press, const surfvol_t &surfvol) const
virtual double B(int region, double press, const surfvol_t &surfvol) const