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 
10 namespace 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 */
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const
Definition: IncompPropertiesShadow_impl.hpp:67
virtual int numPhases() const
Definition: IncompPropertiesShadow_impl.hpp:39
Definition: IncompPropertiesInterface.hpp:35
IncompPropertiesShadow & usePermeability(const double *perm)
Definition: IncompPropertiesShadow_impl.hpp:114
virtual const double * viscosity() const
Definition: IncompPropertiesShadow_impl.hpp:89
virtual const double * density() const
Definition: IncompPropertiesShadow_impl.hpp:94
Definition: AnisotropicEikonal.hpp:43
IncompPropertiesShadow & usePorosity(const double *poro)
Definition: IncompPropertiesShadow_impl.hpp:107
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const
Definition: IncompPropertiesShadow_impl.hpp:58
virtual int numDimensions() const
Definition: IncompPropertiesShadow_impl.hpp:29
IncompPropertiesShadow & useFluidProps(const IncompPropertiesInterface &other)
Definition: IncompPropertiesShadow_impl.hpp:185
IncompPropertiesShadow & useSurfaceDensity(const double *surf)
Definition: IncompPropertiesShadow_impl.hpp:135
virtual int numCells() const
Definition: IncompPropertiesShadow_impl.hpp:34
IncompPropertiesShadow & useViscosity(const double *visc)
Definition: IncompPropertiesShadow_impl.hpp:121
virtual const double * porosity() const
Definition: IncompPropertiesShadow_impl.hpp:79
Definition: IncompPropertiesShadow.hpp:33
IncompPropertiesShadow(const IncompPropertiesInterface &original)
Definition: IncompPropertiesShadow_impl.hpp:14
virtual const double * permeability() const
Definition: IncompPropertiesShadow_impl.hpp:84
IncompPropertiesShadow & useRockProps(const IncompPropertiesInterface &other)
Definition: IncompPropertiesShadow_impl.hpp:180
IncompPropertiesShadow & useRockAndFluidProps(const IncompPropertiesInterface &other)
Definition: IncompPropertiesShadow_impl.hpp:190
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const
Definition: IncompPropertiesShadow_impl.hpp:49
virtual const double * surfaceDensity() const
Definition: IncompPropertiesShadow_impl.hpp:99
IncompPropertiesShadow & useDensity(const double *dens)
Definition: IncompPropertiesShadow_impl.hpp:128
const double visc
Definition: Units.hpp:152