My Project
Loading...
Searching...
No Matches
Opm::GasLiftGroupInfo< Scalar > Class Template Reference
Inheritance diagram for Opm::GasLiftGroupInfo< Scalar >:
Opm::GasLiftCommon< Scalar >

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< Scalar > &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 ()
 
- Public Member Functions inherited from Opm::GasLiftCommon< Scalar >

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 >
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 >
 GasLiftCommon (WellState< Scalar > &well_state, const GroupState< Scalar > &group_state, DeferredLogger &deferred_logger, const Parallel::Communication &comm, bool glift_debug)
 
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

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< Scalar >
WellState< Scalar > & well_state_
 
const GroupState< Scalar > & group_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 Typedef Documentation

◆ GroupRateMap

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

◆ Well2GroupMap

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

Member Function Documentation

◆ displayDebugMessage_()

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

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