#include <GasLiftGroupInfo.hpp>

Inheritance diagram for Opm::GasLiftGroupInfo:
Inheritance graph

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< double > &well_state, const GroupState< double > &group_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
 
double gasPotential (const std::string &group_name) const
 
double waterPotential (const std::string &group_name) const
 
double oilPotential (const std::string &group_name) const
 
int getGroupIdx (const std::string &group_name)
 
double getRate (Rate rate_type, const std::string &group_name) const
 
double getPotential (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 Well2GroupMapwellGroupMap ()
 

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::Communication< Dune::MPIHelper::MPICommunicator >
 
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, double, double, double > getProducerWellRates_ (const Well *well, const int index)
 
std::tuple< double, double, double, 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)
 
int debugUpdateGlobalCounter_ () const
 
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

GLiftEclWellsecl_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
 
WellState< double > & well_state_
 
const GroupState< double > & group_state_
 
DeferredLoggerdeferred_logger_
 
const Parallel::Communicationcomm_
 
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 Typedef Documentation

◆ Communication

using Opm::GasLiftGroupInfo::Communication = Dune::Communication<Dune::MPIHelper::MPICommunicator>
protected

◆ GLiftEclWells

using Opm::GasLiftGroupInfo::GLiftEclWells = std::map<std::string,std::pair<const Well *,int> >

◆ GroupIdxMap

using Opm::GasLiftGroupInfo::GroupIdxMap = std::map<std::string, int>
protected

◆ GroupRateMap

using Opm::GasLiftGroupInfo::GroupRateMap = std::map<std::string, GroupRates>
protected

◆ Well2GroupMap

using Opm::GasLiftGroupInfo::Well2GroupMap = std::map<std::string, std::vector<std::pair<std::string,double> >>
protected

Member Enumeration Documentation

◆ MessageType

enum class Opm::GasLiftCommon::MessageType
strongprotectedinherited
Enumerator
INFO 
WARNING 

◆ Rate

enum class Opm::GasLiftGroupInfo::Rate
strong
Enumerator
oil 
gas 
water 
liquid 

Constructor & Destructor Documentation

◆ GasLiftGroupInfo()

Opm::GasLiftGroupInfo::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< double > &  well_state,
const GroupState< double > &  group_state,
const Parallel::Communication comm,
bool  glift_debug 
)

Member Function Documentation

◆ alqRate()

double Opm::GasLiftGroupInfo::alqRate ( const std::string &  group_name)

◆ checkDoGasLiftOptimization_()

bool Opm::GasLiftGroupInfo::checkDoGasLiftOptimization_ ( const std::string &  well_name)
protected

◆ checkNewtonIterationIdxOk_()

bool Opm::GasLiftGroupInfo::checkNewtonIterationIdxOk_ ( const std::string &  well_name)
protected

◆ debugDisplayUpdatedGroupRates()

void Opm::GasLiftGroupInfo::debugDisplayUpdatedGroupRates ( const std::string &  name,
double  oil_rate,
double  gas_rate,
double  water_rate,
double  alq 
) const
protected

◆ debugDisplayWellContribution_()

void Opm::GasLiftGroupInfo::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
protected

◆ debugEndInitializeGroup()

void Opm::GasLiftGroupInfo::debugEndInitializeGroup ( const std::string &  name) const
protected

◆ debugStartInitializeGroup()

void Opm::GasLiftGroupInfo::debugStartInitializeGroup ( const std::string &  name) const
protected

◆ debugUpdateGlobalCounter_()

int Opm::GasLiftCommon::debugUpdateGlobalCounter_ ( ) const
protectedinherited

◆ displayDebugMessage_() [1/2]

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

Implements Opm::GasLiftCommon.

◆ displayDebugMessage_() [2/2]

void Opm::GasLiftGroupInfo::displayDebugMessage_ ( const std::string &  msg,
const std::string &  well_name 
)
protected

◆ displayDebugMessageOnRank0_()

void Opm::GasLiftCommon::displayDebugMessageOnRank0_ ( const std::string &  msg) const
protectedinherited

◆ gasPotential()

double Opm::GasLiftGroupInfo::gasPotential ( const std::string &  group_name) const

◆ gasRate()

double Opm::GasLiftGroupInfo::gasRate ( const std::string &  group_name) const

◆ gasTarget()

std::optional< double > Opm::GasLiftGroupInfo::gasTarget ( const std::string &  group_name) const

◆ getGroupIdx()

int Opm::GasLiftGroupInfo::getGroupIdx ( const std::string &  group_name)

◆ getPotential()

double Opm::GasLiftGroupInfo::getPotential ( Rate  rate_type,
const std::string &  group_name 
) const

◆ getProducerWellRates_()

std::tuple< double, double, double, double, double, double > Opm::GasLiftGroupInfo::getProducerWellRates_ ( const Well *  well,
const int  index 
)
protected

◆ getRate()

double Opm::GasLiftGroupInfo::getRate ( Rate  rate_type,
const std::string &  group_name 
) const

◆ getRates()

std::tuple< double, double, double, double > Opm::GasLiftGroupInfo::getRates ( const int  group_idx) const

◆ getTarget()

std::optional< double > Opm::GasLiftGroupInfo::getTarget ( Rate  rate_type,
const std::string &  group_name 
) const

◆ getWellGroups()

std::vector< std::pair< std::string, double > > & Opm::GasLiftGroupInfo::getWellGroups ( const std::string &  well_name)

◆ groupIdxToName()

const std::string & Opm::GasLiftGroupInfo::groupIdxToName ( int  group_idx) const

◆ hasAnyTarget()

bool Opm::GasLiftGroupInfo::hasAnyTarget ( const std::string &  group_name) const

◆ hasWell()

bool Opm::GasLiftGroupInfo::hasWell ( const std::string &  well_name)

◆ initialize()

void Opm::GasLiftGroupInfo::initialize ( )

◆ initializeGroupRatesRecursive_()

std::tuple< double, double, double, double, double, double, double > Opm::GasLiftGroupInfo::initializeGroupRatesRecursive_ ( const Group &  group)
protected

◆ initializeWell2GroupMapRecursive_()

void Opm::GasLiftGroupInfo::initializeWell2GroupMapRecursive_ ( const Group &  group,
std::vector< std::string > &  group_names,
std::vector< double > &  group_efficiency,
double  cur_efficiency 
)
protected

◆ liquidTarget()

std::optional< double > Opm::GasLiftGroupInfo::liquidTarget ( const std::string &  group_name) const

◆ logMessage_()

void Opm::GasLiftCommon::logMessage_ ( const std::string &  prefix,
const std::string &  msg,
MessageType  msg_type = MessageType::INFO 
) const
protectedinherited

◆ maxAlq()

std::optional< double > Opm::GasLiftGroupInfo::maxAlq ( const std::string &  group_name)

◆ maxTotalGasRate()

std::optional< double > Opm::GasLiftGroupInfo::maxTotalGasRate ( const std::string &  group_name)

◆ oilPotential()

double Opm::GasLiftGroupInfo::oilPotential ( const std::string &  group_name) const

◆ oilRate()

double Opm::GasLiftGroupInfo::oilRate ( const std::string &  group_name) const

◆ oilTarget()

std::optional< double > Opm::GasLiftGroupInfo::oilTarget ( const std::string &  group_name) const

◆ rateToString()

static const std::string Opm::GasLiftGroupInfo::rateToString ( Rate  rate)
static

◆ update()

void Opm::GasLiftGroupInfo::update ( const std::string &  well_name,
double  delta_oil,
double  delta_gas,
double  delta_water,
double  delta_alq 
)

◆ updateGroupIdxMap_()

void Opm::GasLiftGroupInfo::updateGroupIdxMap_ ( const std::string &  group_name)
protected

◆ updateRate()

void Opm::GasLiftGroupInfo::updateRate ( int  idx,
double  oil_rate,
double  gas_rate,
double  water_rate,
double  alq 
)

◆ waterPotential()

double Opm::GasLiftGroupInfo::waterPotential ( const std::string &  group_name) const

◆ waterRate()

double Opm::GasLiftGroupInfo::waterRate ( const std::string &  group_name) const

◆ waterTarget()

std::optional< double > Opm::GasLiftGroupInfo::waterTarget ( const std::string &  group_name) const

◆ wellGroupMap()

const Well2GroupMap & Opm::GasLiftGroupInfo::wellGroupMap ( )
inline

References well_group_map_.

Member Data Documentation

◆ comm_

const Parallel::Communication& Opm::GasLiftCommon::comm_
protectedinherited

◆ debug

bool Opm::GasLiftCommon::debug
protectedinherited

◆ debug_output_only_on_rank0

bool Opm::GasLiftCommon::debug_output_only_on_rank0 = false
protectedinherited

◆ deferred_logger_

DeferredLogger& Opm::GasLiftCommon::deferred_logger_
protectedinherited

◆ ecl_wells_

GLiftEclWells& Opm::GasLiftGroupInfo::ecl_wells_
protected

◆ Gas

const int Opm::GasLiftGroupInfo::Gas = BlackoilPhases::Vapour
staticprotected

◆ glo_

const GasLiftOpt& Opm::GasLiftGroupInfo::glo_
protected

◆ group_idx_

GroupIdxMap Opm::GasLiftGroupInfo::group_idx_
protected

◆ group_rate_map_

GroupRateMap Opm::GasLiftGroupInfo::group_rate_map_
protected

◆ group_state_

const GroupState<double>& Opm::GasLiftCommon::group_state_
protectedinherited

◆ iteration_idx_

const int Opm::GasLiftGroupInfo::iteration_idx_
protected

◆ next_group_idx_

int Opm::GasLiftGroupInfo::next_group_idx_ = 0
protected

◆ Oil

const int Opm::GasLiftGroupInfo::Oil = BlackoilPhases::Liquid
staticprotected

◆ optimize_only_thp_wells_

bool Opm::GasLiftGroupInfo::optimize_only_thp_wells_ = false
protected

◆ phase_usage_

const PhaseUsage& Opm::GasLiftGroupInfo::phase_usage_
protected

◆ report_step_idx_

const int Opm::GasLiftGroupInfo::report_step_idx_
protected

◆ schedule_

const Schedule& Opm::GasLiftGroupInfo::schedule_
protected

◆ summary_state_

const SummaryState& Opm::GasLiftGroupInfo::summary_state_
protected

◆ Water

const int Opm::GasLiftGroupInfo::Water = BlackoilPhases::Aqua
staticprotected

◆ well_group_map_

Well2GroupMap Opm::GasLiftGroupInfo::well_group_map_
protected

Referenced by wellGroupMap().

◆ well_state_

WellState<double>& Opm::GasLiftCommon::well_state_
protectedinherited

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