Opm::GasLiftStage2< Scalar > Class Template Reference

#include <GasLiftStage2.hpp>

Inheritance diagram for Opm::GasLiftStage2< Scalar >:
Inheritance graph

Classes

struct  OptimizeState
 
struct  SurplusState
 

Public Member Functions

 GasLiftStage2 (const int report_step_idx, const Parallel::Communication &comm, const Schedule &schedule, const SummaryState &summary_state, DeferredLogger &deferred_logger, WellState< Scalar > &well_state, const GroupState< Scalar > &group_state, GLiftProdWells &prod_wells, GLiftOptWells &glift_wells, GasLiftGroupInfo< Scalar > &group_info, GLiftWellStateMap &state_map, bool glift_debug)
 
void runOptimize ()
 

Protected Member Functions

void addOrRemoveALQincrement_ (GradMap &grad_map, const std::string &well_name, bool add)
 
std::optional< GradInfo > calcIncOrDecGrad_ (const std::string name, const GasLiftSingleWell &gs_well, const std::string &gr_name_dont_limit, bool increase)
 
bool checkRateAlreadyLimited_ (const std::string &well_name, GasLiftWellState< Scalar > &state, bool increase)
 
GradInfo deleteDecGradItem_ (const std::string &name)
 
GradInfo deleteIncGradItem_ (const std::string &name)
 
GradInfo deleteGrad_ (const std::string &name, bool increase)
 
void displayDebugMessage_ (const std::string &msg) const override
 
void displayDebugMessage2B_ (const std::string &msg)
 
void displayDebugMessage_ (const std::string &msg, const std::string &group_name)
 
void displayWarning_ (const std::string &msg, const std::string &group_name)
 
void displayWarning_ (const std::string &msg)
 
std::tuple< Scalar, Scalar, Scalar, Scalar > getCurrentGroupRates_ (const Group &group)
 
std::optional< Scalar > getGroupMaxALQ_ (const Group &group)
 
std::optional< Scalar > getGroupMaxTotalGas_ (const Group &group)
 
std::vector< GasLiftSingleWell * > getGroupGliftWells_ (const Group &group)
 
void getGroupGliftWellsRecursive_ (const Group &group, std::vector< GasLiftSingleWell * > &wells)
 
void optimizeGroup_ (const Group &group)
 
void optimizeGroupsRecursive_ (const Group &group)
 
void recalculateGradientAndUpdateData_ (GradPairItr &grad_itr, const std::string &gr_name_dont_limit, bool increase, std::vector< GradPair > &grads, std::vector< GradPair > &other_grads)
 
void redistributeALQ_ (std::vector< GasLiftSingleWell * > &wells, const Group &group, std::vector< GradPair > &inc_grads, std::vector< GradPair > &dec_grads)
 
void removeSurplusALQ_ (const Group &group, std::vector< GradPair > &dec_grads)
 
void saveGrad_ (GradMap &map, const std::string &name, GradInfo &grad)
 
void saveDecGrad_ (const std::string &name, GradInfo &grad)
 
void saveIncGrad_ (const std::string &name, GradInfo &grad)
 
void sortGradients_ (std::vector< GradPair > &grads)
 
std::optional< GradInfo > updateGrad_ (const std::string &name, GradInfo &grad, bool increase)
 
void updateGradVector_ (const std::string &name, std::vector< GradPair > &grads, Scalar grad)
 
void mpiSyncGlobalGradVector_ (std::vector< GradPair > &grads_global) const
 
void mpiSyncLocalToGlobalGradVector_ (const std::vector< GradPair > &grads_local, std::vector< GradPair > &grads_global) const
 
std::array< Scalar, 4 > computeDelta (const std::string &name, bool add)
 
void updateGroupInfo (const std::string &name, bool add)
 
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

GLiftProdWells & prod_wells_
 
GLiftOptWells & stage1_wells_
 
GasLiftGroupInfo< Scalar > & group_info_
 
GLiftWellStateMap & well_state_map_
 
int report_step_idx_
 
const SummaryState & summary_state_
 
const Schedule & schedule_
 
const GasLiftOpt & glo_
 
GradMap inc_grads_
 
GradMap dec_grads_
 
int max_iterations_ = 1000
 
WellState< Scalar > & well_state_
 
const GroupState< Scalar > & group_state_
 
DeferredLoggerdeferred_logger_
 
const Parallel::Communicationcomm_
 
bool debug
 
bool debug_output_only_on_rank0 = false
 

Constructor & Destructor Documentation

◆ GasLiftStage2()

template<class Scalar >
Opm::GasLiftStage2< Scalar >::GasLiftStage2 ( const int  report_step_idx,
const Parallel::Communication comm,
const Schedule &  schedule,
const SummaryState &  summary_state,
DeferredLogger deferred_logger,
WellState< Scalar > &  well_state,
const GroupState< Scalar > &  group_state,
GLiftProdWells &  prod_wells,
GLiftOptWells &  glift_wells,
GasLiftGroupInfo< Scalar > &  group_info,
GLiftWellStateMap &  state_map,
bool  glift_debug 
)

Member Function Documentation

◆ addOrRemoveALQincrement_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::addOrRemoveALQincrement_ ( GradMap &  grad_map,
const std::string &  well_name,
bool  add 
)
protected

◆ calcIncOrDecGrad_()

template<class Scalar >
std::optional< GradInfo > Opm::GasLiftStage2< Scalar >::calcIncOrDecGrad_ ( const std::string  name,
const GasLiftSingleWell gs_well,
const std::string &  gr_name_dont_limit,
bool  increase 
)
protected

◆ checkRateAlreadyLimited_()

template<class Scalar >
bool Opm::GasLiftStage2< Scalar >::checkRateAlreadyLimited_ ( const std::string &  well_name,
GasLiftWellState< Scalar > &  state,
bool  increase 
)
protected

◆ computeDelta()

template<class Scalar >
std::array< Scalar, 4 > Opm::GasLiftStage2< Scalar >::computeDelta ( const std::string &  name,
bool  add 
)
protected

◆ deleteDecGradItem_()

template<class Scalar >
GradInfo Opm::GasLiftStage2< Scalar >::deleteDecGradItem_ ( const std::string &  name)
protected

◆ deleteGrad_()

template<class Scalar >
GradInfo Opm::GasLiftStage2< Scalar >::deleteGrad_ ( const std::string &  name,
bool  increase 
)
protected

◆ deleteIncGradItem_()

template<class Scalar >
GradInfo Opm::GasLiftStage2< Scalar >::deleteIncGradItem_ ( const std::string &  name)
protected

◆ displayDebugMessage2B_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::displayDebugMessage2B_ ( const std::string &  msg)
protected

◆ displayDebugMessage_() [1/2]

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

◆ displayDebugMessage_() [2/2]

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::displayDebugMessage_ ( const std::string &  msg,
const std::string &  group_name 
)
protected

◆ displayDebugMessageOnRank0_()

template<class Scalar >
void Opm::GasLiftCommon< Scalar >::displayDebugMessageOnRank0_ ( const std::string &  msg) const
protectedinherited

◆ displayWarning_() [1/2]

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::displayWarning_ ( const std::string &  msg)
protected

◆ displayWarning_() [2/2]

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::displayWarning_ ( const std::string &  msg,
const std::string &  group_name 
)
protected

◆ getCurrentGroupRates_()

template<class Scalar >
std::tuple< Scalar, Scalar, Scalar, Scalar > Opm::GasLiftStage2< Scalar >::getCurrentGroupRates_ ( const Group &  group)
protected

◆ getGroupGliftWells_()

template<class Scalar >
std::vector< GasLiftSingleWell * > Opm::GasLiftStage2< Scalar >::getGroupGliftWells_ ( const Group &  group)
protected

◆ getGroupGliftWellsRecursive_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::getGroupGliftWellsRecursive_ ( const Group &  group,
std::vector< GasLiftSingleWell * > &  wells 
)
protected

◆ getGroupMaxALQ_()

template<class Scalar >
std::optional< Scalar > Opm::GasLiftStage2< Scalar >::getGroupMaxALQ_ ( const Group &  group)
protected

◆ getGroupMaxTotalGas_()

template<class Scalar >
std::optional< Scalar > Opm::GasLiftStage2< Scalar >::getGroupMaxTotalGas_ ( const Group &  group)
protected

◆ logMessage_()

template<class Scalar >
void Opm::GasLiftCommon< Scalar >::logMessage_ ( const std::string &  prefix,
const std::string &  msg,
MessageType  msg_type = MessageType::INFO 
) const
protectedinherited

◆ mpiSyncGlobalGradVector_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::mpiSyncGlobalGradVector_ ( std::vector< GradPair > &  grads_global) const
protected

◆ mpiSyncLocalToGlobalGradVector_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::mpiSyncLocalToGlobalGradVector_ ( const std::vector< GradPair > &  grads_local,
std::vector< GradPair > &  grads_global 
) const
protected

◆ optimizeGroup_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::optimizeGroup_ ( const Group &  group)
protected

◆ optimizeGroupsRecursive_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::optimizeGroupsRecursive_ ( const Group &  group)
protected

◆ recalculateGradientAndUpdateData_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::recalculateGradientAndUpdateData_ ( GradPairItr &  grad_itr,
const std::string &  gr_name_dont_limit,
bool  increase,
std::vector< GradPair > &  grads,
std::vector< GradPair > &  other_grads 
)
protected

◆ redistributeALQ_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::redistributeALQ_ ( std::vector< GasLiftSingleWell * > &  wells,
const Group &  group,
std::vector< GradPair > &  inc_grads,
std::vector< GradPair > &  dec_grads 
)
protected

◆ removeSurplusALQ_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::removeSurplusALQ_ ( const Group &  group,
std::vector< GradPair > &  dec_grads 
)
protected

◆ runOptimize()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::runOptimize ( )

◆ saveDecGrad_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::saveDecGrad_ ( const std::string &  name,
GradInfo &  grad 
)
protected

◆ saveGrad_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::saveGrad_ ( GradMap &  map,
const std::string &  name,
GradInfo &  grad 
)
protected

◆ saveIncGrad_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::saveIncGrad_ ( const std::string &  name,
GradInfo &  grad 
)
protected

◆ sortGradients_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::sortGradients_ ( std::vector< GradPair > &  grads)
protected

◆ updateGrad_()

template<class Scalar >
std::optional< GradInfo > Opm::GasLiftStage2< Scalar >::updateGrad_ ( const std::string &  name,
GradInfo &  grad,
bool  increase 
)
protected

◆ updateGradVector_()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::updateGradVector_ ( const std::string &  name,
std::vector< GradPair > &  grads,
Scalar  grad 
)
protected

◆ updateGroupInfo()

template<class Scalar >
void Opm::GasLiftStage2< Scalar >::updateGroupInfo ( const std::string &  name,
bool  add 
)
protected

Member Data Documentation

◆ comm_

template<class Scalar >
const Parallel::Communication& Opm::GasLiftCommon< Scalar >::comm_
protectedinherited

◆ debug

template<class Scalar >
bool Opm::GasLiftCommon< Scalar >::debug
protectedinherited

◆ debug_output_only_on_rank0

template<class Scalar >
bool Opm::GasLiftCommon< Scalar >::debug_output_only_on_rank0 = false
protectedinherited

◆ dec_grads_

template<class Scalar >
GradMap Opm::GasLiftStage2< Scalar >::dec_grads_
protected

◆ deferred_logger_

template<class Scalar >
DeferredLogger& Opm::GasLiftCommon< Scalar >::deferred_logger_
protectedinherited

◆ glo_

template<class Scalar >
const GasLiftOpt& Opm::GasLiftStage2< Scalar >::glo_
protected

◆ group_info_

template<class Scalar >
GasLiftGroupInfo<Scalar>& Opm::GasLiftStage2< Scalar >::group_info_
protected

◆ group_state_

template<class Scalar >
const GroupState<Scalar>& Opm::GasLiftCommon< Scalar >::group_state_
protectedinherited

◆ inc_grads_

template<class Scalar >
GradMap Opm::GasLiftStage2< Scalar >::inc_grads_
protected

◆ max_iterations_

template<class Scalar >
int Opm::GasLiftStage2< Scalar >::max_iterations_ = 1000
protected

◆ prod_wells_

template<class Scalar >
GLiftProdWells& Opm::GasLiftStage2< Scalar >::prod_wells_
protected

◆ report_step_idx_

template<class Scalar >
int Opm::GasLiftStage2< Scalar >::report_step_idx_
protected

◆ schedule_

template<class Scalar >
const Schedule& Opm::GasLiftStage2< Scalar >::schedule_
protected

◆ stage1_wells_

template<class Scalar >
GLiftOptWells& Opm::GasLiftStage2< Scalar >::stage1_wells_
protected

◆ summary_state_

template<class Scalar >
const SummaryState& Opm::GasLiftStage2< Scalar >::summary_state_
protected

◆ well_state_

template<class Scalar >
WellState<Scalar>& Opm::GasLiftCommon< Scalar >::well_state_
protectedinherited

◆ well_state_map_

template<class Scalar >
GLiftWellStateMap& Opm::GasLiftStage2< Scalar >::well_state_map_
protected

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