diff --git a/flowexperimental/flowexp.hpp b/flowexperimental/flowexp.hpp index 31e92c9eee..a295ccf5ac 100644 --- a/flowexperimental/flowexp.hpp +++ b/flowexperimental/flowexp.hpp @@ -172,6 +172,7 @@ public: Parameters::Hide(); Parameters::Hide(); Parameters::Hide(); + Parameters::Hide(); Parameters::Hide(); Parameters::Hide(); Parameters::Hide(); diff --git a/opm/simulators/flow/BlackoilModelParameters.cpp b/opm/simulators/flow/BlackoilModelParameters.cpp index 03c46a97d3..b651954223 100644 --- a/opm/simulators/flow/BlackoilModelParameters.cpp +++ b/opm/simulators/flow/BlackoilModelParameters.cpp @@ -66,6 +66,7 @@ BlackoilModelParameters::BlackoilModelParameters() min_strict_cnv_iter_ = Parameters::Get(); min_strict_mb_iter_ = Parameters::Get(); solve_welleq_initially_ = Parameters::Get(); + pre_solve_network_ = Parameters::Get(); update_equations_scaling_ = Parameters::Get(); use_update_stabilization_ = Parameters::Get(); matrix_add_well_contributions_ = Parameters::Get(); @@ -196,6 +197,8 @@ void BlackoilModelParameters::registerParameters() "number of Newton iterations are reached."); Parameters::Register ("Fully solve the well equations before each iteration of the reservoir model"); + Parameters::Register + ("Pre solve and iterate the network model at start-up"); Parameters::Register ("Update scaling factors for mass balance equations during the run"); Parameters::Register diff --git a/opm/simulators/flow/BlackoilModelParameters.hpp b/opm/simulators/flow/BlackoilModelParameters.hpp index 3ba5d04738..ad7327f6c6 100644 --- a/opm/simulators/flow/BlackoilModelParameters.hpp +++ b/opm/simulators/flow/BlackoilModelParameters.hpp @@ -87,6 +87,7 @@ struct MaxSinglePrecisionDays { static constexpr Scalar value = 20.0; }; struct MinStrictCnvIter { static constexpr int value = -1; }; struct MinStrictMbIter { static constexpr int value = -1; }; struct SolveWelleqInitially { static constexpr bool value = true; }; +struct PreSolveNetwork { static constexpr bool value = true; }; struct UpdateEquationsScaling { static constexpr bool value = false; }; struct UseUpdateStabilization { static constexpr bool value = true; }; struct MatrixAddWellContributions { static constexpr bool value = false; }; @@ -254,6 +255,9 @@ public: /// Solve well equation initially bool solve_welleq_initially_; + /// Pre solve and iterate network model + bool pre_solve_network_; + /// Update scaling factors for mass balance equations bool update_equations_scaling_; diff --git a/opm/simulators/wells/BlackoilWellModel_impl.hpp b/opm/simulators/wells/BlackoilWellModel_impl.hpp index 4a49e298f7..7581950a04 100644 --- a/opm/simulators/wells/BlackoilWellModel_impl.hpp +++ b/opm/simulators/wells/BlackoilWellModel_impl.hpp @@ -2062,7 +2062,7 @@ namespace Opm { // Rebalance the network initially if any wells in the network have status changes // (Need to check this before clearing events) - const bool do_prestep_network_rebalance = this->needPreStepNetworkRebalance(episodeIdx); + const bool do_prestep_network_rebalance = param_.pre_solve_network_ && this->needPreStepNetworkRebalance(episodeIdx); for (const auto& well : well_container_) { auto& events = this->wellState().well(well->indexOfWell()).events;