IncompPropertiesInterface.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_INCOMPPROPERTIESINTERFACE_HEADER_INCLUDED
21 #define OPM_INCOMPPROPERTIESINTERFACE_HEADER_INCLUDED
22 
23 namespace Opm
24 {
25 
36  {
37  public:
39 
40  // ---- Rock interface ----
41 
43  virtual int numDimensions() const = 0;
44 
46  virtual int numCells() const = 0;
47 
49  virtual const double* porosity() const = 0;
50 
54  virtual const double* permeability() const = 0;
55 
56 
57  // ---- Fluid interface ----
58 
60  virtual int numPhases() const = 0;
61 
63  virtual const double* viscosity() const = 0;
64 
67  virtual const double* density() const = 0;
68 
79  virtual const double* surfaceDensity() const = 0;
80 
90  virtual void relperm(const int n,
91  const double* s,
92  const int* cells,
93  double* kr,
94  double* dkrds) const = 0;
95 
96 
106  virtual void capPress(const int n,
107  const double* s,
108  const int* cells,
109  double* pc,
110  double* dpcds) const = 0;
111 
119  virtual void satRange(const int n,
120  const int* cells,
121  double* smin,
122  double* smax) const = 0;
123  };
124 
125 
126 
127 } // namespace Opm
128 
129 
130 #endif // OPM_INCOMPPROPERTIESINTERFACE_HEADER_INCLUDED
Definition: IncompPropertiesInterface.hpp:35
virtual int numPhases() const =0
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const =0
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const =0
Definition: AnisotropicEikonal.hpp:43
virtual const double * viscosity() const =0
virtual ~IncompPropertiesInterface()
Definition: IncompPropertiesInterface.hpp:38
virtual const double * density() const =0
virtual const double * porosity() const =0
virtual const double * permeability() const =0
virtual int numDimensions() const =0
virtual const double * surfaceDensity() const =0
virtual int numCells() const =0
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const =0