3 #ifndef OPM_INCOMPPROPERTIESSHADOW_HEADER_INCLUDED
4 #error Do not include IncompPropertiesShadow_impl.hpp directly!
7 #include <opm/common/ErrorMacros.hpp>
15 : prototype_ (original)
55 prototype_.
relperm (n, s, cells, kr, dkrds);
64 prototype_.
capPress (n, s, cells, pc, dpcds);
72 prototype_.
satRange (n, cells, smin, smax);
81 return (shadowed_ & POROSITY) ? poro_ : prototype_.
porosity ();
86 return (shadowed_ & PERMEABILITY) ? perm_ : prototype_.
permeability ();
91 return (shadowed_ & VISCOSITY) ? visc_ : prototype_.
viscosity ();
96 return (shadowed_ & DENSITY) ? dens_ : prototype_.
density ();
101 return (shadowed_ & SURFACE_DENSITY) ? surf_ : prototype_.
surfaceDensity ();
110 shadowed_ |= POROSITY;
117 shadowed_ |= PERMEABILITY;
124 shadowed_ |= VISCOSITY;
131 shadowed_ |= DENSITY;
138 shadowed_ |= SURFACE_DENSITY;
161 assert (prototype_.
numPhases() == other.numPhases());
167 assert (prototype_.
numPhases() == other.numPhases());
173 assert (prototype_.
numPhases() == other.numPhases());
IncompPropertiesShadow(const IncompPropertiesInterface &original)
Shadow another set of properties.
Definition: IncompPropertiesShadow_impl.hpp:14
virtual int numCells() const =0
virtual const double * permeability() const =0
IncompPropertiesShadow & usePermeability(const double *perm)
Use a different set of permeabilities.
Definition: IncompPropertiesShadow_impl.hpp:114
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const
These methods are sufficiently advanced (the s parameter is a non-integral index) for there not to be...
Definition: IncompPropertiesShadow_impl.hpp:49
virtual int numDimensions() const
Implement all methods from the IncompPropertiesInterface.
Definition: IncompPropertiesShadow_impl.hpp:29
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const
Definition: IncompPropertiesShadow_impl.hpp:58
virtual int numPhases() const
Definition: IncompPropertiesShadow_impl.hpp:39
virtual const double * permeability() const
Definition: IncompPropertiesShadow_impl.hpp:84
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const =0
Obtain the range of allowable saturation values.
virtual void relperm(const int n, const double *s, const int *cells, double *kr, double *dkrds) const =0
virtual int numPhases() const =0
IncompPropertiesShadow & useFluidProps(const IncompPropertiesInterface &other)
Convenience method to set both viscosity and density.
Definition: IncompPropertiesShadow_impl.hpp:185
IncompPropertiesShadow & useRockProps(const IncompPropertiesInterface &other)
Convenience method to set both porosity and permeability.
Definition: IncompPropertiesShadow_impl.hpp:180
virtual const double * surfaceDensity() const =0
Densities of fluid phases at surface conditions.
virtual const double * porosity() const
Return the new value if indicated in the bitfield, otherwise use the original value from the other ob...
Definition: IncompPropertiesShadow_impl.hpp:79
virtual const double * density() const =0
Densities of fluid phases at reservoir conditions.
virtual void capPress(const int n, const double *s, const int *cells, double *pc, double *dpcds) const =0
virtual int numDimensions() const =0
virtual const double * porosity() const =0
IncompPropertiesShadow & useDensity(const double *dens)
Use a different set of densities.
Definition: IncompPropertiesShadow_impl.hpp:128
virtual const double * viscosity() const
Definition: IncompPropertiesShadow_impl.hpp:89
IncompPropertiesShadow & useViscosity(const double *visc)
Use a different set of viscosities.
Definition: IncompPropertiesShadow_impl.hpp:121
virtual const double * surfaceDensity() const
Densities of fluid phases at surface conditions.
Definition: IncompPropertiesShadow_impl.hpp:99
IncompPropertiesShadow & useSurfaceDensity(const double *surf)
Use a different set of surface densities.
Definition: IncompPropertiesShadow_impl.hpp:135
virtual int numCells() const
Definition: IncompPropertiesShadow_impl.hpp:34
virtual const double * viscosity() const =0
Definition: IncompPropertiesShadow.hpp:33
virtual void satRange(const int n, const int *cells, double *smin, double *smax) const
Obtain the range of allowable saturation values.
Definition: IncompPropertiesShadow_impl.hpp:67
IncompPropertiesShadow & useRockAndFluidProps(const IncompPropertiesInterface &other)
Convenience method to set both rock and fluid properties.
Definition: IncompPropertiesShadow_impl.hpp:190
IncompPropertiesShadow & usePorosity(const double *poro)
Use a different set of porosities.
Definition: IncompPropertiesShadow_impl.hpp:107
virtual const double * density() const
Densities of fluid phases at reservoir conditions.
Definition: IncompPropertiesShadow_impl.hpp:94
Abstract base class for incompressible fluid and reservoir properties.
Definition: IncompPropertiesInterface.hpp:35