diff --git a/opm/autodiff/BlackoilModelBase_impl.hpp b/opm/autodiff/BlackoilModelBase_impl.hpp index fd5f384e0..b8bfee1c6 100644 --- a/opm/autodiff/BlackoilModelBase_impl.hpp +++ b/opm/autodiff/BlackoilModelBase_impl.hpp @@ -2348,7 +2348,7 @@ namespace detail { } const int dims = *std::max_element(fipnum.begin(), fipnum.end()); - std::vector values(dims, V::Zero(5)); + std::vector values(dims, V::Zero(7)); for (int i = 0; i < 5; ++i) { for (int c = 0; c < nc; ++c) { if (fipnum[c] != 0) { @@ -2357,6 +2357,18 @@ namespace detail { } } + // compute PAV and PORV or every regions. + for (int c = 0; c < nc; ++c) { + if (fipnum[c] != 0) { + values[fipnum[c]-1][5] += pv[c]; + values[fipnum[c]-1][6] += pv[c] * state.pressure.value()[c]; + } + } + + for (auto& x : values) { + x[6] = x[6] / x[5]; + } + return values; }