28 #ifndef SIMPLEFLUID2PWRAPPINGPROPS_IMPL_HPP 29 #define SIMPLEFLUID2PWRAPPINGPROPS_IMPL_HPP 31 #include <opm/core/transport/implicit/SimpleFluid2pWrappingProps.hpp> 33 #include <opm/common/ErrorMacros.hpp> 38 smin_(props.numCells()*props.numPhases()),
39 smax_(props.numCells()*props.numPhases())
42 OPM_THROW(std::runtime_error,
"SimpleFluid2pWrapper requires 2 phases.");
44 const int num_cells = props.
numCells();
45 std::vector<int> cells(num_cells);
46 for (
int c = 0; c < num_cells; ++c) {
49 props.
satRange(num_cells, &cells[0], &smin_[0], &smax_[0]);
52 inline double SimpleFluid2pWrappingProps::density(
int phase)
const 60 void SimpleFluid2pWrappingProps::mobility(
int c,
const Sat& s, Mob& mob, DMob& dmob)
const 62 props_.
relperm(1, &s[0], &c, &mob[0], &dmob[0]);
71 dmob[0*2 + 0] /= mu[0];
72 dmob[0*2 + 1] /= mu[1];
73 dmob[1*2 + 0] /= mu[0];
74 dmob[1*2 + 1] /= mu[1];
80 void SimpleFluid2pWrappingProps::pc(
int c,
const Sat& s, Pcap& pcap, DPcap& dpcap)
const 84 props_.
capPress(1, &s[0], &c, pcow, dpcow);
86 assert(pcow[1] == 0.0);
88 assert(dpcow[1] == 0.0);
89 assert(dpcow[2] == 0.0);
90 assert(dpcow[3] == 0.0);
93 inline double SimpleFluid2pWrappingProps::s_min(
int c)
const 95 return smin_[2*c + 0];
98 inline double SimpleFluid2pWrappingProps::s_max(
int c)
const 100 return smax_[2*c + 0];
104 #endif // SIMPLEFLUID2PWRAPPINGPROPS_IMPL_HPP virtual int numCells() const =0
Definition: AnisotropicEikonal.cpp:446
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
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 const double * viscosity() const =0
Abstract base class for incompressible fluid and reservoir properties.
Definition: IncompPropertiesInterface.hpp:35