IncompPropertiesShadow.hpp
Go to the documentation of this file.
1/* Copyright (c) 2013 Uni Research AS.
2 This file is licensed under the GNU General Public License v3.0 or later. */
3#ifndef OPM_INCOMPPROPERTIESSHADOW_HEADER_INCLUDED
4#define OPM_INCOMPPROPERTIESSHADOW_HEADER_INCLUDED
5
6#ifndef OPM_INCOMPPROPERTIESINTERFACE_HEADER_INCLUDED
8#endif /* OPM_INCOMPPROPERTIESINTERFACE_HEADER_INCLUDED */
9
10namespace Opm
11{
34 {
40
44 virtual int numDimensions () const;
45 virtual int numCells () const;
46 virtual const double* porosity () const;
47 virtual const double* permeability () const;
48 virtual int numPhases () const;
49 virtual const double* viscosity () const;
50 virtual const double* density () const;
51 virtual const double* surfaceDensity () const;
52 virtual void relperm (const int n,
53 const double* s,
54 const int* cells,
55 double* kr,
56 double* dkrds) const;
57 virtual void capPress (const int n,
58 const double* s,
59 const int* cells,
60 double* pc,
61 double* dpcds) const;
62 virtual void satRange (const int n,
63 const int* cells,
64 double* smin,
65 double* smax) const;
66
81 IncompPropertiesShadow& usePorosity (const double* poro);
83
98 IncompPropertiesShadow& usePermeability (const double* perm);
100
115 IncompPropertiesShadow& useViscosity (const double* visc);
117
132 IncompPropertiesShadow& useDensity (const double* dens);
134
149 IncompPropertiesShadow& useSurfaceDensity (const double* surf);
151
156
161
166
167 private:
173 const IncompPropertiesInterface& prototype_;
174
180 int shadowed_;
181
185 static const int POROSITY = 1 << 1;
186 static const int PERMEABILITY = 1 << 2;
187 static const int VISCOSITY = 1 << 3;
188 static const int DENSITY = 1 << 4;
189 static const int SURFACE_DENSITY = 1 << 5;
190
196 const double* poro_;
197 const double* perm_;
198 const double* visc_;
199 const double* dens_;
200 const double* surf_;
201 };
202} /* namespace Opm */
203
204// body of inline methods are defined here:
206
207#endif /* OPM_INCOMPPROPERTIESSHADOW_HEADER_INCLUDED */
Definition: IncompPropertiesInterface.hpp:36
Definition: AnisotropicEikonal.hpp:44
Definition: IncompPropertiesShadow.hpp:34
virtual int numDimensions() const
Definition: IncompPropertiesShadow_impl.hpp:29
virtual int numCells() const
Definition: IncompPropertiesShadow_impl.hpp:34
IncompPropertiesShadow & useDensity(const double *dens)
Definition: IncompPropertiesShadow_impl.hpp:128
IncompPropertiesShadow & useRockAndFluidProps(const IncompPropertiesInterface &other)
Definition: IncompPropertiesShadow_impl.hpp:190
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const
Definition: IncompPropertiesShadow_impl.hpp:67
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const
Definition: IncompPropertiesShadow_impl.hpp:58
virtual const double * density() const
Definition: IncompPropertiesShadow_impl.hpp:94
virtual const double * surfaceDensity() const
Definition: IncompPropertiesShadow_impl.hpp:99
virtual const double * permeability() const
Definition: IncompPropertiesShadow_impl.hpp:84
IncompPropertiesShadow(const IncompPropertiesInterface &original)
Definition: IncompPropertiesShadow_impl.hpp:14
IncompPropertiesShadow & useSurfaceDensity(const double *surf)
Definition: IncompPropertiesShadow_impl.hpp:135
IncompPropertiesShadow & useFluidProps(const IncompPropertiesInterface &other)
Definition: IncompPropertiesShadow_impl.hpp:185
IncompPropertiesShadow & usePorosity(const double *poro)
Definition: IncompPropertiesShadow_impl.hpp:107
IncompPropertiesShadow & usePermeability(const double *perm)
Definition: IncompPropertiesShadow_impl.hpp:114
virtual const double * porosity() const
Definition: IncompPropertiesShadow_impl.hpp:79
virtual const double * viscosity() const
Definition: IncompPropertiesShadow_impl.hpp:89
IncompPropertiesShadow & useViscosity(const double *visc)
Definition: IncompPropertiesShadow_impl.hpp:121
virtual int numPhases() const
Definition: IncompPropertiesShadow_impl.hpp:39
IncompPropertiesShadow & useRockProps(const IncompPropertiesInterface &other)
Definition: IncompPropertiesShadow_impl.hpp:180
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const
Definition: IncompPropertiesShadow_impl.hpp:49