fix incorrect derivative of rock compressibility w.r.t. pressure

since

f(x) = 1 + 0.5*g(x)*g(x)

the derivative is

f'(x) = 0 + 2*0.5*g(x) * g'(x) = g(x)*g'(x)

note that the previous incorrect values do not affect the quality of
the obtained results (if the tolerance of the non-linear solver is
chosen to be small enough), but it may have deteriorated convergence
rates.
This commit is contained in:
Andreas Lauser 2016-07-19 18:13:38 +02:00
parent b0a4387573
commit 2f3cdfd9e0

View File

@ -101,7 +101,8 @@ namespace Opm
if (p_.empty()) {
// Approximating poro multiplier with a quadratic curve,
// we must use its derivative.
return rock_comp_ + 2 * rock_comp_ * rock_comp_ * (pressure - pref_);
const double cpnorm = rock_comp_*(pressure - pref_);
return rock_comp_ + cpnorm*rock_comp_;
} else {
return Opm::linearInterpolationDerivative(p_, poromult_, pressure);
}