diff --git a/opm/simulators/wells/BlackoilWellModel_impl.hpp b/opm/simulators/wells/BlackoilWellModel_impl.hpp index e2957a58e..383817192 100644 --- a/opm/simulators/wells/BlackoilWellModel_impl.hpp +++ b/opm/simulators/wells/BlackoilWellModel_impl.hpp @@ -872,7 +872,8 @@ namespace Opm { } ++iter; for (auto& well : this->well_container_) { - well->solveEqAndUpdateWellState(well_state, deferred_logger); + const auto& summary_state = this->ebosSimulator_.vanguard().summaryState(); + well->solveEqAndUpdateWellState(summary_state, well_state, deferred_logger); } this->initPrimaryVariablesEvaluation(); } while (iter < max_iter); diff --git a/opm/simulators/wells/MultisegmentWell.hpp b/opm/simulators/wells/MultisegmentWell.hpp index 82cdabb2b..c22b9a77c 100644 --- a/opm/simulators/wells/MultisegmentWell.hpp +++ b/opm/simulators/wells/MultisegmentWell.hpp @@ -124,7 +124,7 @@ namespace Opm const WellState& well_state, DeferredLogger& deferred_logger) override; - virtual void solveEqAndUpdateWellState(const Simulator& ebos_simulator, + virtual void solveEqAndUpdateWellState(const SummaryState& summary_state, WellState& well_state, DeferredLogger& deferred_logger) override; // const? diff --git a/opm/simulators/wells/MultisegmentWell_impl.hpp b/opm/simulators/wells/MultisegmentWell_impl.hpp index e33705d54..f59ab6970 100644 --- a/opm/simulators/wells/MultisegmentWell_impl.hpp +++ b/opm/simulators/wells/MultisegmentWell_impl.hpp @@ -534,7 +534,7 @@ namespace Opm template void MultisegmentWell:: - solveEqAndUpdateWellState(const Simulator& ebos_simulator, + solveEqAndUpdateWellState(const SummaryState& summary_state, WellState& well_state, DeferredLogger& deferred_logger) { @@ -544,7 +544,6 @@ namespace Opm // which is why we do not put the assembleWellEq here. const BVectorWell dx_well = this->linSys_.solve(); - const auto& summary_state = ebos_simulator.vanguard().summaryState(); updateWellState(summary_state, dx_well, well_state, deferred_logger); } diff --git a/opm/simulators/wells/StandardWell.hpp b/opm/simulators/wells/StandardWell.hpp index 734fa4330..95f66a987 100644 --- a/opm/simulators/wells/StandardWell.hpp +++ b/opm/simulators/wells/StandardWell.hpp @@ -172,9 +172,9 @@ namespace Opm const WellState& well_state, DeferredLogger& deferred_logger) override; - void solveEqAndUpdateWellState(const SummaryState& summary_state, - WellState& well_state, - DeferredLogger& deferred_logger); + virtual void solveEqAndUpdateWellState(const SummaryState& summary_state, + WellState& well_state, + DeferredLogger& deferred_logger) override; virtual void calculateExplicitQuantities(const Simulator& ebosSimulator, const WellState& well_state, diff --git a/opm/simulators/wells/WellInterface.hpp b/opm/simulators/wells/WellInterface.hpp index 70123e266..5ab9a51cb 100644 --- a/opm/simulators/wells/WellInterface.hpp +++ b/opm/simulators/wells/WellInterface.hpp @@ -160,7 +160,7 @@ public: DeferredLogger& deferred_logger, const bool relax_tolerance) const = 0; - virtual void solveEqAndUpdateWellState(const Simulator& ebos_simulator, + virtual void solveEqAndUpdateWellState(const SummaryState& summary_state, WellState& well_state, DeferredLogger& deferred_logger) = 0;