BlackoilPropertiesInterface.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_BLACKOILPROPERTIESINTERFACE_HEADER_INCLUDED
21#define OPM_BLACKOILPROPERTIESINTERFACE_HEADER_INCLUDED
22
23namespace Opm
24{
25
26 struct PhaseUsage;
27
38 {
39 public:
41
42 // ---- Rock interface ----
43
45 virtual int numDimensions() const = 0;
46
48 virtual int numCells() const = 0;
49
52 virtual const int* cellPvtRegionIndex() const = 0;
53
55 virtual const double* porosity() const = 0;
56
60 virtual const double* permeability() const = 0;
61
62
63 // ---- Fluid interface ----
64
66 virtual int numPhases() const = 0;
67
69 virtual PhaseUsage phaseUsage() const = 0;
70
79 virtual void viscosity(const int n,
80 const double* p,
81 const double* T,
82 const double* z,
83 const int* cells,
84 double* mu,
85 double* dmudp) const = 0;
86
98 virtual void matrix(const int n,
99 const double* p,
100 const double* T,
101 const double* z,
102 const int* cells,
103 double* A,
104 double* dAdp) const = 0;
105
106
115 virtual void density(const int n,
116 const double* A,
117 const int* cells,
118 double* rho) const = 0;
119
122 virtual const double* surfaceDensity(int regionIdx = 0) const = 0;
123
133 virtual void relperm(const int n,
134 const double* s,
135 const int* cells,
136 double* kr,
137 double* dkrds) const = 0;
138
139
149 virtual void capPress(const int n,
150 const double* s,
151 const int* cells,
152 double* pc,
153 double* dpcds) const = 0;
154
155
163 virtual void satRange(const int n,
164 const int* cells,
165 double* smin,
166 double* smax) const = 0;
167
168
173 virtual void swatInitScaling(const int cell,
174 const double pcow,
175 double & swat) = 0;
176
177 };
178
179
180
181} // namespace Opm
182
183
184#endif // OPM_BLACKOILPROPERTIESINTERFACE_HEADER_INCLUDED
Definition: BlackoilPropertiesInterface.hpp:38
virtual PhaseUsage phaseUsage() const =0
virtual int numDimensions() const =0
virtual const double * porosity() const =0
virtual void matrix(const int n, const double *p, const double *T, const double *z, const int *cells, double *A, double *dAdp) const =0
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const =0
virtual int numCells() const =0
virtual const double * surfaceDensity(int regionIdx=0) const =0
virtual void viscosity(const int n, const double *p, const double *T, const double *z, const int *cells, double *mu, double *dmudp) const =0
virtual void swatInitScaling(const int cell, const double pcow, double &swat)=0
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const =0
virtual void density(const int n, const double *A, const int *cells, double *rho) const =0
virtual const int * cellPvtRegionIndex() const =0
virtual ~BlackoilPropertiesInterface()
Definition: BlackoilPropertiesInterface.hpp:40
virtual int numPhases() const =0
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const =0
virtual const double * permeability() const =0
Definition: AnisotropicEikonal.hpp:44
Definition: BlackoilPhases.hpp:44