From 4fe0ae4a5803b73ab7e2366c4a8dce51ebe070b2 Mon Sep 17 00:00:00 2001 From: Kai Bao Date: Thu, 8 Oct 2015 15:14:23 +0200 Subject: [PATCH] correcting the index of phase rate of the top segment When handling the rate control equations. --- opm/autodiff/BlackoilMultiSegmentModel_impl.hpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp b/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp index f30fb315c..58ce3ac9a 100644 --- a/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp +++ b/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp @@ -1135,7 +1135,7 @@ namespace Opm { bhp_targets(w) = well_controls_iget_target(wc, current); rate_targets(w) = -1e100; for (int p = 0; p < np; ++p) { - rate_top_phase_elems.push_back(start_segment + p * nseg_total); + rate_top_phase_elems.push_back(np * start_segment + p); } } break; @@ -1152,7 +1152,7 @@ namespace Opm { rate_well_elems.push_back(w); rate_top_elems.push_back(start_segment); for (int p = 0; p < np; ++p) { - rate_top_phase_elems.push_back(start_segment + p * nseg_total); + rate_top_phase_elems.push_back(np * start_segment + p); } // RESERVOIR and SURFACE rates look the same, from a // high-level point of view, in the system of @@ -1218,6 +1218,7 @@ namespace Opm { // 2, if the segment is not the top segment, then the pressure equation const ADB bhp_residual = subset(state.segp, bhp_top_elems) - subset(bhp_targets, bhp_well_elems); const ADB rate_residual = subset(rate_distr * subset(state.segqs, rate_top_phase_elems) - rate_targets, rate_well_elems); + // const ADB rate_residual = subset(rate_distr * state.segqs - rate_targets, rate_well_elems); ADB others_residual = ADB::constant(V::Zero(nseg_total)); start_segment = 0;