Add gaslift optimization support for MSW.

Implements gas lift optimization support for multisegmented wells (MSW).
This commit is contained in:
Håkon Hægland
2022-02-07 11:28:35 +01:00
parent a520733d5b
commit 54160827de
15 changed files with 238 additions and 147 deletions

View File

@@ -1812,38 +1812,6 @@ namespace Opm
alq);
}
template<typename TypeTag>
void
StandardWell<TypeTag>::
gasLiftOptimizationStage1(
WellState& well_state,
const GroupState& group_state,
const Simulator& ebos_simulator,
DeferredLogger& deferred_logger,
GLiftProdWells &prod_wells,
GLiftOptWells &glift_wells,
GLiftWellStateMap &glift_state_map,
GasLiftGroupInfo &group_info,
GLiftSyncGroups &sync_groups,
bool glift_debug
) const
{
const auto& summary_state = ebos_simulator.vanguard().summaryState();
std::unique_ptr<GasLiftSingleWell> glift
= std::make_unique<GasLiftSingleWell>(
*this, ebos_simulator, summary_state,
deferred_logger, well_state, group_state, group_info,
sync_groups, glift_debug);
auto state = glift->runOptimize(
ebos_simulator.model().newtonMethod().numIterations());
if (state) {
glift_state_map.insert({this->name(), std::move(state)});
glift_wells.insert({this->name(), std::move(glift)});
return;
}
prod_wells.insert({this->name(), this});
}
template<typename TypeTag>
void
StandardWell<TypeTag>::