IncompPropertiesBasic.hpp
Go to the documentation of this file.
1 /*
2  Copyright 2012 SINTEF ICT, Applied Mathematics.
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 3 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 
20 #ifndef OPM_INCOMPPROPERTIESBASIC_HEADER_INCLUDED
21 #define OPM_INCOMPPROPERTIESBASIC_HEADER_INCLUDED
22 
27 
28 namespace Opm
29 {
30 
42  {
43  public:
55  const int dim,
56  const int num_cells);
57 
58 
69  IncompPropertiesBasic(const int num_phases,
70  const SaturationPropsBasic::RelPermFunc& relpermfunc,
71  const std::vector<double>& rho,
72  const std::vector<double>& mu,
73  const double porosity,
74  const double permeability,
75  const int dim,
76  const int num_cells);
77 
79  virtual ~IncompPropertiesBasic();
80 
81  // ---- Rock interface ----
82 
84  virtual int numDimensions() const;
85 
87  virtual int numCells() const;
88 
90  virtual const double* porosity() const;
91 
95  virtual const double* permeability() const;
96 
97 
98  // ---- Fluid interface ----
99 
101  virtual int numPhases() const;
102 
104  virtual const double* viscosity() const;
105 
108  virtual const double* density() const;
109 
112  virtual const double* surfaceDensity() const;
113 
123  virtual void relperm(const int n,
124  const double* s,
125  const int* cells,
126  double* kr,
127  double* dkrds) const;
128 
129 
139  virtual void capPress(const int n,
140  const double* s,
141  const int* cells,
142  double* pc,
143  double* dpcds) const;
144 
145 
153  virtual void satRange(const int n,
154  const int* cells,
155  double* smin,
156  double* smax) const;
157  private:
158  RockBasic rock_;
159  PvtPropertiesBasic pvt_;
160  SaturationPropsBasic satprops_;
161  std::vector<double> viscosity_;
162  };
163 
164 
165 
166 } // namespace Opm
167 
168 
169 #endif // OPM_INCOMPPROPERTIESBASIC_HEADER_INCLUDED
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const
Definition: RockBasic.hpp:30
Definition: IncompPropertiesInterface.hpp:35
virtual const double * surfaceDensity() const
Definition: AnisotropicEikonal.hpp:43
virtual ~IncompPropertiesBasic()
Destructor.
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const
virtual const double * porosity() const
Definition: ParameterGroup.hpp:109
virtual const double * viscosity() const
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const
Definition: IncompPropertiesBasic.hpp:41
virtual const double * density() const
Definition: SaturationPropsBasic.hpp:36
RelPermFunc
Definition: SaturationPropsBasic.hpp:48
virtual int numPhases() const
virtual int numCells() const
IncompPropertiesBasic(const parameter::ParameterGroup &param, const int dim, const int num_cells)
virtual const double * permeability() const
virtual int numDimensions() const
Definition: PvtPropertiesBasic.hpp:36