My Project
Opm::GasLiftGroupInfo Class Reference
Inheritance diagram for Opm::GasLiftGroupInfo:
Opm::GasLiftCommon

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 int iteration_idx, const PhaseUsage &phase_usage, DeferredLogger &deferred_logger, WellState &well_state, const Parallel::Communication &comm, bool glift_debug)
 
std::vector< std::pair< std::string, double > > & getWellGroups (const std::string &well_name)
 
double alqRate (const std::string &group_name)
 
double gasRate (const std::string &group_name) const
 
int getGroupIdx (const std::string &group_name)
 
double getRate (Rate rate_type, const std::string &group_name) const
 
std::tuple< double, double, double, double > getRates (const int group_idx) const
 
std::optional< double > gasTarget (const std::string &group_name) const
 
std::optional< double > 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< double > liquidTarget (const std::string &group_name) const
 
std::optional< double > maxAlq (const std::string &group_name)
 
std::optional< double > maxTotalGasRate (const std::string &group_name)
 
double oilRate (const std::string &group_name) const
 
std::optional< double > oilTarget (const std::string &group_name) const
 
double waterRate (const std::string &group_name) const
 
std::optional< double > waterTarget (const std::string &group_name) const
 
void update (const std::string &well_name, double delta_oil, double delta_gas, double delta_water, double delta_alq)
 
void updateRate (int idx, double oil_rate, double gas_rate, double water_rate, double alq)
 
const Well2GroupMap & wellGroupMap ()
 

Static Public Member Functions

static const std::string rateToString (Rate rate)
 

Protected Types

using Well2GroupMap = std::map< std::string, std::vector< std::pair< std::string, double > > >
 
using GroupRateMap = std::map< std::string, GroupRates >
 
using GroupIdxMap = std::map< std::string, int >
 
using Communication = Dune::CollectiveCommunication< Dune::MPIHelper::MPICommunicator >
 
- Protected Types inherited from Opm::GasLiftCommon
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, double eff_factor, double well_oil_rate, double well_gas_rate, double well_water_rate, double well_alq, double oil_rate, double gas_rate, double water_rate, double alq) const
 
void debugDisplayUpdatedGroupRates (const std::string &name, double oil_rate, double gas_rate, double water_rate, double 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< double, double, double > getProducerWellRates_ (const int index)
 
std::tuple< double, double, double, double > initializeGroupRatesRecursive_ (const Group &group)
 
void initializeWell2GroupMapRecursive_ (const Group &group, std::vector< std::string > &group_names, std::vector< double > &group_efficiency, double cur_efficiency)
 
void updateGroupIdxMap_ (const std::string &group_name)
 
- Protected Member Functions inherited from Opm::GasLiftCommon
 GasLiftCommon (WellState &well_state, DeferredLogger &deferred_logger, const Parallel::Communication &comm, bool debug)
 
int debugUpdateGlobalCounter_ () const
 
virtual void displayDebugMessage_ (const std::string &msg) const =0
 
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 int iteration_idx_
 
const PhaseUsagephase_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
WellStatewell_state_
 
DeferredLoggerdeferred_logger_
 
const Parallel::Communication & comm_
 
bool debug
 
bool debug_output_only_on_rank0 = false
 

Static Protected Attributes

static const int Water = BlackoilPhases::Aqua
 
static const int Oil = BlackoilPhases::Liquid
 
static const int Gas = BlackoilPhases::Vapour
 

Member Function Documentation

◆ displayDebugMessage_()

void Opm::GasLiftGroupInfo::displayDebugMessage_ ( const std::string &  msg) const
overrideprotectedvirtual

Implements Opm::GasLiftCommon.


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