From 8474ff289529b0cdb900ffaac4fa911ca5b4f55c Mon Sep 17 00:00:00 2001 From: Kai Bao Date: Thu, 27 Oct 2016 14:46:52 +0200 Subject: [PATCH] fixing all the simulators that call solveWellEq. Not all the group control functionalities working for allt the simulators. Some need to be fixed later. --- opm/autodiff/BlackoilMultiSegmentModel.hpp | 1 + opm/autodiff/BlackoilMultiSegmentModel_impl.hpp | 5 +++-- opm/autodiff/BlackoilTransportModel.hpp | 2 +- opm/polymer/fullyimplicit/BlackoilPolymerModel_impl.hpp | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/opm/autodiff/BlackoilMultiSegmentModel.hpp b/opm/autodiff/BlackoilMultiSegmentModel.hpp index 92881bb45..d55eeea65 100644 --- a/opm/autodiff/BlackoilMultiSegmentModel.hpp +++ b/opm/autodiff/BlackoilMultiSegmentModel.hpp @@ -169,6 +169,7 @@ namespace Opm { IterationReport solveWellEq(const std::vector& mob_perfcells, const std::vector& b_perfcells, + const ReservoirState& reservoir_state, SolutionState& state, WellState& well_state); diff --git a/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp b/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp index 1cff7a75c..ab4ab8c48 100644 --- a/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp +++ b/opm/autodiff/BlackoilMultiSegmentModel_impl.hpp @@ -198,7 +198,7 @@ namespace Opm { wellModel().extractWellPerfProperties(state, sd_.rq, mob_perfcells, b_perfcells); if (param_.solve_welleq_initially_ && initial_assembly) { // solve the well equations as a pre-processing step - iter_report = asImpl().solveWellEq(mob_perfcells, b_perfcells, state, well_state); + iter_report = asImpl().solveWellEq(mob_perfcells, b_perfcells, reservoir_state, state, well_state); } // the perforation flux here are different @@ -221,10 +221,11 @@ namespace Opm { IterationReport BlackoilMultiSegmentModel::solveWellEq(const std::vector& mob_perfcells, const std::vector& b_perfcells, + const ReservoirState& reservoir_state, SolutionState& state, WellState& well_state) { - IterationReport iter_report = Base::solveWellEq(mob_perfcells, b_perfcells, state, well_state); + IterationReport iter_report = Base::solveWellEq(mob_perfcells, b_perfcells, reservoir_state, state, well_state); if (iter_report.converged) { // We must now update the state.segp and state.segqs members, diff --git a/opm/autodiff/BlackoilTransportModel.hpp b/opm/autodiff/BlackoilTransportModel.hpp index a4bb68dc0..fa9ad9a1a 100644 --- a/opm/autodiff/BlackoilTransportModel.hpp +++ b/opm/autodiff/BlackoilTransportModel.hpp @@ -135,7 +135,7 @@ namespace Opm { asImpl().wellModel().extractWellPerfProperties(state, sd_.rq, mob_perfcells, b_perfcells); if (param_.solve_welleq_initially_ && initial_assembly) { // solve the well equations as a pre-processing step - iter_report = asImpl().solveWellEq(mob_perfcells, b_perfcells, state, well_state); + iter_report = asImpl().solveWellEq(mob_perfcells, b_perfcells, reservoir_state, state, well_state); } V aliveWells; std::vector cq_s; diff --git a/opm/polymer/fullyimplicit/BlackoilPolymerModel_impl.hpp b/opm/polymer/fullyimplicit/BlackoilPolymerModel_impl.hpp index 5ccfa441f..93fed4df4 100644 --- a/opm/polymer/fullyimplicit/BlackoilPolymerModel_impl.hpp +++ b/opm/polymer/fullyimplicit/BlackoilPolymerModel_impl.hpp @@ -542,7 +542,7 @@ namespace Opm { wellModel().extractWellPerfProperties(state, sd_.rq, mob_perfcells, b_perfcells); if (param_.solve_welleq_initially_ && initial_assembly) { // solve the well equations as a pre-processing step - Base::solveWellEq(mob_perfcells, b_perfcells, state, well_state); + Base::solveWellEq(mob_perfcells, b_perfcells, reservoir_state, state, well_state); } V aliveWells;