opm-simulators
Loading...
Searching...
No Matches
Opm::GasLiftGroupInfo< Scalar, IndexTraits > Class Template Reference
Inheritance diagram for Opm::GasLiftGroupInfo< Scalar, IndexTraits >:
Opm::GasLiftCommon< Scalar, IndexTraits >

Classes

class  GroupRates

Public Types

enum class  Rate { oil , gas , water , liquid }
using GLiftEclWells = std::map<std::string,std::pair<const Well *,int>>

Public Member Functions

 GasLiftGroupInfo (GLiftEclWells &ecl_wells, const Schedule &schedule, const SummaryState &summary_state, const int report_step_idx, const NewtonIterationContext &iterCtx, DeferredLogger &deferred_logger, WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, const Parallel::Communication &comm, bool glift_debug)
std::vector< std::pair< std::string, Scalar > > & getWellGroups (const std::string &well_name)
Scalar alqRate (const std::string &group_name)
Scalar gasRate (const std::string &group_name) const
Scalar gasPotential (const std::string &group_name) const
Scalar waterPotential (const std::string &group_name) const
Scalar oilPotential (const std::string &group_name) const
int getGroupIdx (const std::string &group_name)
Scalar getRate (Rate rate_type, const std::string &group_name) const
Scalar getPotential (Rate rate_type, const std::string &group_name) const
std::tuple< Scalar, Scalar, Scalar, Scalar > getRates (const int group_idx) const
std::optional< Scalar > gasTarget (const std::string &group_name) const
std::optional< Scalar > getTarget (Rate rate_type, const std::string &group_name) const
const std::string & groupIdxToName (int group_idx) const
bool hasAnyTarget (const std::string &group_name) const
bool hasWell (const std::string &well_name)
void initialize ()
std::optional< Scalar > liquidTarget (const std::string &group_name) const
std::optional< Scalar > maxAlq (const std::string &group_name)
std::optional< Scalar > maxTotalGasRate (const std::string &group_name)
Scalar oilRate (const std::string &group_name) const
std::optional< Scalar > oilTarget (const std::string &group_name) const
Scalar waterRate (const std::string &group_name) const
std::optional< Scalar > waterTarget (const std::string &group_name) const
void update (const std::string &well_name, Scalar delta_oil, Scalar delta_gas, Scalar delta_water, Scalar delta_alq)
void updateRate (int idx, Scalar oil_rate, Scalar gas_rate, Scalar water_rate, Scalar alq)
const Well2GroupMap & wellGroupMap ()

Static Public Member Functions

static const std::string rateToString (Rate rate)

Protected Types

using Well2GroupMap
using GroupRateMap
using GroupIdxMap = std::map<std::string, int>
using Communication = Dune::Communication<Dune::MPIHelper::MPICommunicator>
Protected Types inherited from Opm::GasLiftCommon< Scalar, IndexTraits >
enum class  MessageType { INFO , WARNING }

Protected Member Functions

bool checkDoGasLiftOptimization_ (const std::string &well_name)
bool checkNewtonIterationIdxOk_ (const std::string &well_name)
void debugDisplayWellContribution_ (const std::string &gr_name, const std::string &well_name, Scalar eff_factor, Scalar well_oil_rate, Scalar well_gas_rate, Scalar well_water_rate, Scalar well_alq, Scalar oil_rate, Scalar gas_rate, Scalar water_rate, Scalar alq) const
void debugDisplayUpdatedGroupRates (const std::string &name, Scalar oil_rate, Scalar gas_rate, Scalar water_rate, Scalar alq) const
void debugEndInitializeGroup (const std::string &name) const
void debugStartInitializeGroup (const std::string &name) const
void displayDebugMessage_ (const std::string &msg) const override
void displayDebugMessage_ (const std::string &msg, const std::string &well_name)
std::tuple< Scalar, Scalar, Scalar, Scalar, Scalar, Scalar > getProducerWellRates_ (const Well *well, const int index)
std::tuple< Scalar, Scalar, Scalar, Scalar, Scalar, Scalar, Scalar > initializeGroupRatesRecursive_ (const Group &group)
void initializeWell2GroupMapRecursive_ (const Group &group, std::vector< std::string > &group_names, std::vector< Scalar > &group_efficiency, Scalar cur_efficiency)
void updateGroupIdxMap_ (const std::string &group_name)
Protected Member Functions inherited from Opm::GasLiftCommon< Scalar, IndexTraits >
 GasLiftCommon (WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger, const Parallel::Communication &comm, bool glift_debug)
void displayDebugMessageOnRank0_ (const std::string &msg) const
void logMessage_ (const std::string &prefix, const std::string &msg, MessageType msg_type=MessageType::INFO) const

Protected Attributes

GLiftEclWells & ecl_wells_
const Schedule & schedule_
const SummaryState & summary_state_
const int report_step_idx_
const NewtonIterationContextiterCtx_
const PhaseUsageInfo< IndexTraits > & phase_usage_
const GasLiftOpt & glo_
GroupRateMap group_rate_map_
Well2GroupMap well_group_map_
GroupIdxMap group_idx_
int next_group_idx_ = 0
bool optimize_only_thp_wells_ = false
Protected Attributes inherited from Opm::GasLiftCommon< Scalar, IndexTraits >
WellState< Scalar, IndexTraits > & well_state_
const GroupState< Scalar > & group_state_
DeferredLoggerdeferred_logger_
const Parallel::Communication & comm_
bool debug
bool debug_output_only_on_rank0 = false

Member Typedef Documentation

◆ GroupRateMap

template<typename Scalar, typename IndexTraits>
using Opm::GasLiftGroupInfo< Scalar, IndexTraits >::GroupRateMap
protected
Initial value:
std::map<std::string, GroupRates>

◆ Well2GroupMap

template<typename Scalar, typename IndexTraits>
using Opm::GasLiftGroupInfo< Scalar, IndexTraits >::Well2GroupMap
protected
Initial value:
std::map<std::string, std::vector<std::pair<std::string, Scalar>>>

Member Function Documentation

◆ displayDebugMessage_()

template<typename Scalar, typename IndexTraits>
void Opm::GasLiftGroupInfo< Scalar, IndexTraits >::displayDebugMessage_ ( const std::string & msg) const
overrideprotectedvirtual

The documentation for this class was generated from the following files: