20 #ifndef OPM_INCOMPPROPERTIESDEFAULTPOLYMER_HEADER_INCLUDED
21 #define OPM_INCOMPPROPERTIESDEFAULTPOLYMER_HEADER_INCLUDED
23 #include <opm/core/props/IncompPropertiesBasic.hpp>
24 #include <opm/core/utility/parameters/ParameterGroup.hpp>
25 #include <opm/common/ErrorMacros.hpp>
26 #include <opm/core/utility/linearInterpolation.hpp>
44 :
Opm::IncompPropertiesBasic(param, dim, num_cells)
46 assert(numPhases() == 2);
81 for (
int i = 0; i < n; ++i) {
82 kr[2*i] = krw(s[2*i]);
83 kr[2*i+1] = kro(s[2*i+1]);
85 dkrds[4*i + 0] = krw_dsw(s[2*i]);
86 dkrds[4*i + 3] = kro_dso(s[2*i+1]);
106 for (
int i = 0; i < n; ++i) {
107 smin[np*i + 0] = sw_[0];
108 smax[np*i + 0] = sw_.back();
109 smin[np*i + 1] = 1.0 - sw_[0];
110 smax[np*i + 1] = 1.0 - sw_.back();
115 double krw(
double s)
const
117 return Opm::linearInterpolation(sw_, krw_, s);
120 double krw_dsw(
double s)
const
122 return Opm::linearInterpolationDerivative(sw_, krw_, s);
126 double kro(
double s)
const
128 return Opm::linearInterpolation(so_, kro_, s);
131 double kro_dso(
double s)
const
133 return Opm::linearInterpolationDerivative(so_, kro_, s);
136 std::vector<double> sw_;
137 std::vector<double> krw_;
138 std::vector<double> so_;
139 std::vector<double> kro_;
144 #endif // OPM_INCOMPPROPERTIESDEFAULTPOLYMER_HEADER_INCLUDED
virtual void satRange(const int n, const int *, double *smin, double *smax) const
Definition: IncompPropertiesDefaultPolymer.hpp:100
Definition: CompressibleTpfaPolymer.hpp:32
virtual void relperm(const int n, const double *s, const int *, double *kr, double *dkrds) const
Definition: IncompPropertiesDefaultPolymer.hpp:73
IncompPropertiesDefaultPolymer(const Opm::parameter::ParameterGroup ¶m, int dim, int num_cells)
Definition: IncompPropertiesDefaultPolymer.hpp:43
Definition: IncompPropertiesDefaultPolymer.hpp:32