22#ifndef OPM_BLACKOILWELLMODEL_GASLIFT_HEADER_INCLUDED
23#define OPM_BLACKOILWELLMODEL_GASLIFT_HEADER_INCLUDED
26#include <opm/simulators/wells/GasLiftSingleWellGeneric.hpp>
35template<
class Scalar>
class GroupState;
36template<
class Scalar>
class WellState;
37template<
class TypeTag>
class WellInterface;
43 using GLiftOptWells = std::map<std::string, std::unique_ptr<GasLiftSingleWellGeneric<Scalar>>>;
44 using GLiftProdWells = std::map<std::string, const WellInterfaceGeneric<Scalar>*>;
45 using GLiftWellStateMap = std::map<std::string, std::unique_ptr<GasLiftWellState<Scalar>>>;
46 using GLiftEclWells =
typename GasLiftGroupInfo<Scalar>::GLiftEclWells;
47 using GLiftSyncGroups =
typename GasLiftSingleWellGeneric<Scalar>::GLiftSyncGroups;
53 static constexpr bool glift_debug =
false;
55 void gliftDebug(
const std::string&
msg,
58 bool terminalOutput()
const {
return terminal_output_; }
60 template<
class Serializer>
67 {
return this->last_glift_opt_time_ ==
that.last_glift_opt_time_; }
74 void gasLiftOptimizationStage2(
const Parallel::Communication& comm,
82 GLiftWellStateMap&
map,
83 const int episodeIndex,
86 bool terminal_output_;
87 double last_glift_opt_time_ = -1.0;
91template<
typename TypeTag>
98 using Base::glift_debug;
100 using GLiftEclWells =
typename GasLiftGroupInfo<Scalar>::GLiftEclWells;
101 using GLiftOptWells =
typename Base::GLiftOptWells;
102 using GLiftProdWells =
typename Base::GLiftProdWells;
103 using GLiftSyncGroups =
typename GasLiftSingleWellGeneric<Scalar>::GLiftSyncGroups;
104 using GLiftWellStateMap =
typename Base::GLiftWellStateMap;
106 using WellInterfacePtr = std::shared_ptr<WellInterface<TypeTag>>;
114 static void initGliftEclWellMap(
const std::vector<WellInterfacePtr>&
well_container,
117 bool maybeDoGasLiftOptimize(
const Simulator& simulator,
124 void gasLiftOptimizationStage1(
const Simulator& simulator,
136 const Simulator& simulator,
151#include "BlackoilWellModelGasLift_impl.hpp"
Defines a type tags and some fundamental properties all models.
Definition BlackoilWellModelGasLift.hpp:41
Class for handling the gaslift in the blackoil well model.
Definition BlackoilWellModelGasLift.hpp:94
Definition DeferredLogger.hpp:57
Definition GasLiftGroupInfo.hpp:46
Definition GroupState.hpp:43
Definition WellInterfaceGeneric.hpp:53
Definition WellInterface.hpp:77
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition WellState.hpp:66
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilboundaryratevector.hh:37
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242
typename Properties::Detail::GetPropImpl< TypeTag, Property >::type::type GetPropType
get the type alias defined in the property (equivalent to old macro GET_PROP_TYPE(....
Definition propertysystem.hh:235
Definition BlackoilPhases.hpp:46