Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits > Class Template Referenceabstract

#include <GasLiftSingleWellGeneric.hpp>

Inheritance diagram for Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >:
Inheritance graph

Classes

struct  BasicRates
 
struct  GradInfo
 
struct  LimitedRates
 
struct  OptimizeState
 

Public Types

using GLiftSyncGroups = std::set< int >
 
using Rate = typename GasLiftGroupInfo< Scalar, IndexTraits >::Rate
 
using MessageType = typename GasLiftCommon< Scalar, IndexTraits >::MessageType
 

Public Member Functions

const std::string & name () const
 
std::optional< GradInfocalcIncOrDecGradient (Scalar oil_rate, Scalar gas_rate, Scalar water_rate, Scalar alq, const std::string &gr_name_dont_limit, bool increase, bool debug_output=true) const
 
std::unique_ptr< GasLiftWellState< Scalar > > runOptimize (const int iteration_idx)
 
std::pair< Scalar, bool > wellTestALQ ()
 
virtual const WellInterfaceGeneric< Scalar, IndexTraits > & getWell () const =0
 

Protected Member Functions

 GasLiftSingleWellGeneric (DeferredLogger &deferred_logger, WellState< Scalar, IndexTraits > &well_state, const GroupState< Scalar > &group_state, const Well &ecl_well, const SummaryState &summary_state, GasLiftGroupInfo< Scalar, IndexTraits > &group_info, const Schedule &schedule, const int report_step_idx, GLiftSyncGroups &sync_groups, const Parallel::Communication &comm, bool glift_debug)
 
bool checkGroupALQrateExceeded (Scalar delta_alq, const std::string &gr_name_dont_limit="") const
 
bool checkGroupTotalRateExceeded (Scalar delta_alq, Scalar delta_gas_rate) const
 
std::pair< std::optional< Scalar >, bool > addOrSubtractAlqIncrement_ (Scalar alq, bool increase) const
 
Scalar calcEcoGradient_ (Scalar oil_rate, Scalar new_oil_rate, Scalar gas_rate, Scalar new_gas_rate, bool increase) const
 
bool checkALQequal_ (Scalar alq1, Scalar alq2) const
 
bool checkGroupTargetsViolated (const BasicRates &rates, const BasicRates &new_rates) const
 
bool checkInitialALQmodified_ (Scalar alq, Scalar initial_alq) const
 
virtual bool checkThpControl_ () const =0
 
virtual std::optional< Scalar > computeBhpAtThpLimit_ (Scalar alq, bool debug_output=true) const =0
 
std::pair< std::optional< Scalar >, Scalar > computeConvergedBhpAtThpLimitByMaybeIncreasingALQ_ () const
 
std::pair< std::optional< BasicRates >, Scalar > computeInitialWellRates_ () const
 
std::optional< LimitedRatescomputeLimitedWellRatesWithALQ_ (Scalar alq) const
 
virtual BasicRates computeWellRates_ (Scalar bhp, bool bhp_is_limited, bool debug_output=true) const =0
 
std::optional< BasicRatescomputeWellRatesWithALQ_ (Scalar alq) const
 
void debugCheckNegativeGradient_ (Scalar grad, Scalar alq, Scalar new_alq, Scalar oil_rate, Scalar new_oil_rate, Scalar gas_rate, Scalar new_gas_rate, bool increase) const
 
void debugPrintWellStateRates () const
 
void debugShowAlqIncreaseDecreaseCounts_ ()
 
void debugShowBhpAlqTable_ ()
 
void debugShowLimitingTargets_ (const LimitedRates &rates) const
 
void debugShowProducerControlMode () const
 
void debugShowStartIteration_ (Scalar alq, bool increase, Scalar oil_rate)
 
void debugShowTargets_ ()
 
void displayDebugMessage_ (const std::string &msg) const override
 
void displayWarning_ (const std::string &warning)
 
std::pair< Scalar, bool > getBhpWithLimit_ (Scalar bhp) const
 
std::pair< Scalar, bool > getGasRateWithLimit_ (const BasicRates &rates) const
 
std::pair< Scalar, bool > getGasRateWithGroupLimit_ (Scalar new_gas_rate, Scalar gas_rate, const std::string &gr_name_dont_limit) const
 
std::pair< std::optional< LimitedRates >, Scalar > getInitialRatesWithLimit_ () const
 
LimitedRates getLimitedRatesFromRates_ (const BasicRates &rates) const
 
std::tuple< Scalar, Scalar, bool, bool > getLiquidRateWithGroupLimit_ (const Scalar new_oil_rate, const Scalar oil_rate, const Scalar new_water_rate, const Scalar water_rate, const std::string &gr_name_dont_limit) const
 
std::pair< Scalar, bool > getOilRateWithGroupLimit_ (Scalar new_oil_rate, Scalar oil_rate, const std::string &gr_name_dont_limit) const
 
std::pair< Scalar, bool > getOilRateWithLimit_ (const BasicRates &rates) const
 
std::pair< Scalar, std::optional< Rate > > getOilRateWithLimit2_ (const BasicRates &rates) const
 
Scalar getProductionTarget_ (Rate rate) const
 
Scalar getRate_ (Rate rate_type, const BasicRates &rates) const
 
std::pair< Scalar, std::optional< Rate > > getRateWithLimit_ (Rate rate_type, const BasicRates &rates) const
 
std::tuple< Scalar, const std::string *, Scalar > getRateWithGroupLimit_ (Rate rate_type, const Scalar new_rate, const Scalar old_rate, const std::string &gr_name_dont_limit) const
 
std::pair< Scalar, bool > getWaterRateWithGroupLimit_ (Scalar new_water_rate, Scalar water_rate, const std::string &gr_name_dont_limit) const
 
std::pair< Scalar, bool > getWaterRateWithLimit_ (const BasicRates &rates) const
 
std::pair< Scalar, std::optional< Rate > > getWaterRateWithLimit2_ (const BasicRates &rates) const
 
BasicRates getWellStateRates_ () const
 
bool hasProductionControl_ (Rate rate) const
 
std::pair< LimitedRates, Scalar > increaseALQtoPositiveOilRate_ (Scalar alq, const LimitedRates &orig_rates) const
 
std::pair< LimitedRates, Scalar > increaseALQtoMinALQ_ (Scalar alq, const LimitedRates &orig_rates) const
 
void logSuccess_ (Scalar alq, const int iteration_idx)
 
std::pair< LimitedRates, Scalar > maybeAdjustALQbeforeOptimizeLoop_ (const LimitedRates &rates, Scalar alq, bool increase) const
 
std::pair< LimitedRates, Scalar > reduceALQtoGroupAlqLimits_ (Scalar alq, const LimitedRates &rates) const
 
std::pair< LimitedRates, Scalar > reduceALQtoGroupTarget (Scalar alq, const LimitedRates &rates) const
 
std::pair< LimitedRates, Scalar > reduceALQtoWellTarget_ (Scalar alq, const LimitedRates &rates) const
 
std::unique_ptr< GasLiftWellState< Scalar > > runOptimize1_ ()
 
std::unique_ptr< GasLiftWellState< Scalar > > runOptimize2_ ()
 
std::unique_ptr< GasLiftWellState< Scalar > > runOptimizeLoop_ (bool increase)
 
void setAlqMinRate_ (const GasLiftWell &well)
 
std::unique_ptr< GasLiftWellState< Scalar > > tryIncreaseLiftGas_ ()
 
std::unique_ptr< GasLiftWellState< Scalar > > tryDecreaseLiftGas_ ()
 
void updateGroupRates_ (const LimitedRates &rates, const LimitedRates &new_rates, Scalar delta_alq) const
 
LimitedRates updateRatesToGroupLimits_ (const BasicRates &old_rates, const LimitedRates &rates, const std::string &gr_name="") const
 
void updateWellStateAlqFixedValue_ (const GasLiftWell &well)
 
bool useFixedAlq_ (const GasLiftWell &well)
 
void debugInfoGroupRatesExceedTarget (Rate rate_type, const std::string &gr_name, Scalar rate, Scalar target) const
 
void warnMaxIterationsExceeded_ ()
 
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

const Well & ecl_well_
 
const SummaryState & summary_state_
 
GasLiftGroupInfo< Scalar, IndexTraits > & group_info_
 
GLiftSyncGroupssync_groups_
 
const WellProductionControls controls_
 
Scalar increment_
 
Scalar max_alq_
 
Scalar min_alq_
 
Scalar orig_alq_
 
Scalar alpha_w_
 
Scalar alpha_g_
 
Scalar eco_grad_
 
int gas_pos_
 
int oil_pos_
 
int water_pos_
 
int max_iterations_
 
std::string well_name_
 
const GasLiftWell * gl_well_
 
bool optimize_
 
bool debug_limit_increase_decrease_
 
bool debug_abort_if_decrease_and_oil_is_limited_ = false
 
bool debug_abort_if_increase_and_gas_is_limited_ = false
 
WellState< Scalar, IndexTraits > & well_state_
 
const GroupState< Scalar > & group_state_
 
DeferredLoggerdeferred_logger_
 
const Parallel::Communicationcomm_
 
bool debug
 
bool debug_output_only_on_rank0 = false
 

Static Protected Attributes

static constexpr int Water = IndexTraits::waterPhaseIdx
 
static constexpr int Oil = IndexTraits::oilPhaseIdx
 
static constexpr int Gas = IndexTraits::gasPhaseIdx
 
static constexpr int NUM_PHASES = 3
 
static constexpr Scalar ALQ_EPSILON = 1e-8
 

Member Typedef Documentation

◆ GLiftSyncGroups

template<typename Scalar , typename IndexTraits >
using Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::GLiftSyncGroups = std::set<int>

◆ MessageType

template<typename Scalar , typename IndexTraits >
using Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::MessageType = typename GasLiftCommon<Scalar, IndexTraits>::MessageType

◆ Rate

template<typename Scalar , typename IndexTraits >
using Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::Rate = typename GasLiftGroupInfo<Scalar, IndexTraits>::Rate

Constructor & Destructor Documentation

◆ GasLiftSingleWellGeneric()

template<typename Scalar , typename IndexTraits >
Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::GasLiftSingleWellGeneric ( DeferredLogger deferred_logger,
WellState< Scalar, IndexTraits > &  well_state,
const GroupState< Scalar > &  group_state,
const Well &  ecl_well,
const SummaryState &  summary_state,
GasLiftGroupInfo< Scalar, IndexTraits > &  group_info,
const Schedule &  schedule,
const int  report_step_idx,
GLiftSyncGroups sync_groups,
const Parallel::Communication comm,
bool  glift_debug 
)
protected

Member Function Documentation

◆ addOrSubtractAlqIncrement_()

template<typename Scalar , typename IndexTraits >
std::pair< std::optional< Scalar >, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::addOrSubtractAlqIncrement_ ( Scalar  alq,
bool  increase 
) const
protected

◆ calcEcoGradient_()

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::calcEcoGradient_ ( Scalar  oil_rate,
Scalar  new_oil_rate,
Scalar  gas_rate,
Scalar  new_gas_rate,
bool  increase 
) const
protected

◆ calcIncOrDecGradient()

template<typename Scalar , typename IndexTraits >
std::optional< GradInfo > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::calcIncOrDecGradient ( Scalar  oil_rate,
Scalar  gas_rate,
Scalar  water_rate,
Scalar  alq,
const std::string &  gr_name_dont_limit,
bool  increase,
bool  debug_output = true 
) const

◆ checkALQequal_()

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::checkALQequal_ ( Scalar  alq1,
Scalar  alq2 
) const
protected

◆ checkGroupALQrateExceeded()

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::checkGroupALQrateExceeded ( Scalar  delta_alq,
const std::string &  gr_name_dont_limit = "" 
) const
protected

◆ checkGroupTargetsViolated()

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::checkGroupTargetsViolated ( const BasicRates rates,
const BasicRates new_rates 
) const
protected

◆ checkGroupTotalRateExceeded()

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::checkGroupTotalRateExceeded ( Scalar  delta_alq,
Scalar  delta_gas_rate 
) const
protected

◆ checkInitialALQmodified_()

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::checkInitialALQmodified_ ( Scalar  alq,
Scalar  initial_alq 
) const
protected

◆ checkThpControl_()

template<typename Scalar , typename IndexTraits >
virtual bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::checkThpControl_ ( ) const
protectedpure virtual

◆ computeBhpAtThpLimit_()

template<typename Scalar , typename IndexTraits >
virtual std::optional< Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::computeBhpAtThpLimit_ ( Scalar  alq,
bool  debug_output = true 
) const
protectedpure virtual

◆ computeConvergedBhpAtThpLimitByMaybeIncreasingALQ_()

template<typename Scalar , typename IndexTraits >
std::pair< std::optional< Scalar >, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::computeConvergedBhpAtThpLimitByMaybeIncreasingALQ_ ( ) const
protected

◆ computeInitialWellRates_()

template<typename Scalar , typename IndexTraits >
std::pair< std::optional< BasicRates >, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::computeInitialWellRates_ ( ) const
protected

◆ computeLimitedWellRatesWithALQ_()

template<typename Scalar , typename IndexTraits >
std::optional< LimitedRates > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::computeLimitedWellRatesWithALQ_ ( Scalar  alq) const
protected

◆ computeWellRates_()

template<typename Scalar , typename IndexTraits >
virtual BasicRates Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::computeWellRates_ ( Scalar  bhp,
bool  bhp_is_limited,
bool  debug_output = true 
) const
protectedpure virtual

◆ computeWellRatesWithALQ_()

template<typename Scalar , typename IndexTraits >
std::optional< BasicRates > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::computeWellRatesWithALQ_ ( Scalar  alq) const
protected

◆ debugCheckNegativeGradient_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugCheckNegativeGradient_ ( Scalar  grad,
Scalar  alq,
Scalar  new_alq,
Scalar  oil_rate,
Scalar  new_oil_rate,
Scalar  gas_rate,
Scalar  new_gas_rate,
bool  increase 
) const
protected

◆ debugInfoGroupRatesExceedTarget()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugInfoGroupRatesExceedTarget ( Rate  rate_type,
const std::string &  gr_name,
Scalar  rate,
Scalar  target 
) const
protected

◆ debugPrintWellStateRates()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugPrintWellStateRates ( ) const
protected

◆ debugShowAlqIncreaseDecreaseCounts_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugShowAlqIncreaseDecreaseCounts_ ( )
protected

◆ debugShowBhpAlqTable_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugShowBhpAlqTable_ ( )
protected

◆ debugShowLimitingTargets_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugShowLimitingTargets_ ( const LimitedRates rates) const
protected

◆ debugShowProducerControlMode()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugShowProducerControlMode ( ) const
protected

◆ debugShowStartIteration_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugShowStartIteration_ ( Scalar  alq,
bool  increase,
Scalar  oil_rate 
)
protected

◆ debugShowTargets_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debugShowTargets_ ( )
protected

◆ displayDebugMessage_()

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

◆ displayDebugMessageOnRank0_()

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

◆ displayWarning_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::displayWarning_ ( const std::string &  warning)
protected

◆ getBhpWithLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getBhpWithLimit_ ( Scalar  bhp) const
protected

◆ getGasRateWithGroupLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getGasRateWithGroupLimit_ ( Scalar  new_gas_rate,
Scalar  gas_rate,
const std::string &  gr_name_dont_limit 
) const
protected

◆ getGasRateWithLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getGasRateWithLimit_ ( const BasicRates rates) const
protected

◆ getInitialRatesWithLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< std::optional< LimitedRates >, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getInitialRatesWithLimit_ ( ) const
protected

◆ getLimitedRatesFromRates_()

template<typename Scalar , typename IndexTraits >
LimitedRates Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getLimitedRatesFromRates_ ( const BasicRates rates) const
protected

◆ getLiquidRateWithGroupLimit_()

template<typename Scalar , typename IndexTraits >
std::tuple< Scalar, Scalar, bool, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getLiquidRateWithGroupLimit_ ( const Scalar  new_oil_rate,
const Scalar  oil_rate,
const Scalar  new_water_rate,
const Scalar  water_rate,
const std::string &  gr_name_dont_limit 
) const
protected

◆ getOilRateWithGroupLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getOilRateWithGroupLimit_ ( Scalar  new_oil_rate,
Scalar  oil_rate,
const std::string &  gr_name_dont_limit 
) const
protected

◆ getOilRateWithLimit2_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, std::optional< Rate > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getOilRateWithLimit2_ ( const BasicRates rates) const
protected

◆ getOilRateWithLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getOilRateWithLimit_ ( const BasicRates rates) const
protected

◆ getProductionTarget_()

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getProductionTarget_ ( Rate  rate) const
protected

◆ getRate_()

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getRate_ ( Rate  rate_type,
const BasicRates rates 
) const
protected

◆ getRateWithGroupLimit_()

template<typename Scalar , typename IndexTraits >
std::tuple< Scalar, const std::string *, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getRateWithGroupLimit_ ( Rate  rate_type,
const Scalar  new_rate,
const Scalar  old_rate,
const std::string &  gr_name_dont_limit 
) const
protected

◆ getRateWithLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, std::optional< Rate > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getRateWithLimit_ ( Rate  rate_type,
const BasicRates rates 
) const
protected

◆ getWaterRateWithGroupLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getWaterRateWithGroupLimit_ ( Scalar  new_water_rate,
Scalar  water_rate,
const std::string &  gr_name_dont_limit 
) const
protected

◆ getWaterRateWithLimit2_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, std::optional< Rate > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getWaterRateWithLimit2_ ( const BasicRates rates) const
protected

◆ getWaterRateWithLimit_()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getWaterRateWithLimit_ ( const BasicRates rates) const
protected

◆ getWell()

template<typename Scalar , typename IndexTraits >
virtual const WellInterfaceGeneric< Scalar, IndexTraits > & Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getWell ( ) const
pure virtual

◆ getWellStateRates_()

template<typename Scalar , typename IndexTraits >
BasicRates Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::getWellStateRates_ ( ) const
protected

◆ hasProductionControl_()

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::hasProductionControl_ ( Rate  rate) const
protected

◆ increaseALQtoMinALQ_()

template<typename Scalar , typename IndexTraits >
std::pair< LimitedRates, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::increaseALQtoMinALQ_ ( Scalar  alq,
const LimitedRates orig_rates 
) const
protected

◆ increaseALQtoPositiveOilRate_()

template<typename Scalar , typename IndexTraits >
std::pair< LimitedRates, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::increaseALQtoPositiveOilRate_ ( Scalar  alq,
const LimitedRates orig_rates 
) const
protected

◆ logMessage_()

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

◆ logSuccess_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::logSuccess_ ( Scalar  alq,
const int  iteration_idx 
)
protected

◆ maybeAdjustALQbeforeOptimizeLoop_()

template<typename Scalar , typename IndexTraits >
std::pair< LimitedRates, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::maybeAdjustALQbeforeOptimizeLoop_ ( const LimitedRates rates,
Scalar  alq,
bool  increase 
) const
protected

◆ name()

template<typename Scalar , typename IndexTraits >
const std::string & Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::name ( ) const
inline

◆ reduceALQtoGroupAlqLimits_()

template<typename Scalar , typename IndexTraits >
std::pair< LimitedRates, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::reduceALQtoGroupAlqLimits_ ( Scalar  alq,
const LimitedRates rates 
) const
protected

◆ reduceALQtoGroupTarget()

template<typename Scalar , typename IndexTraits >
std::pair< LimitedRates, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::reduceALQtoGroupTarget ( Scalar  alq,
const LimitedRates rates 
) const
protected

◆ reduceALQtoWellTarget_()

template<typename Scalar , typename IndexTraits >
std::pair< LimitedRates, Scalar > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::reduceALQtoWellTarget_ ( Scalar  alq,
const LimitedRates rates 
) const
protected

◆ runOptimize()

template<typename Scalar , typename IndexTraits >
std::unique_ptr< GasLiftWellState< Scalar > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::runOptimize ( const int  iteration_idx)

◆ runOptimize1_()

template<typename Scalar , typename IndexTraits >
std::unique_ptr< GasLiftWellState< Scalar > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::runOptimize1_ ( )
protected

◆ runOptimize2_()

template<typename Scalar , typename IndexTraits >
std::unique_ptr< GasLiftWellState< Scalar > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::runOptimize2_ ( )
protected

◆ runOptimizeLoop_()

template<typename Scalar , typename IndexTraits >
std::unique_ptr< GasLiftWellState< Scalar > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::runOptimizeLoop_ ( bool  increase)
protected

◆ setAlqMinRate_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::setAlqMinRate_ ( const GasLiftWell &  well)
protected

◆ tryDecreaseLiftGas_()

template<typename Scalar , typename IndexTraits >
std::unique_ptr< GasLiftWellState< Scalar > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::tryDecreaseLiftGas_ ( )
protected

◆ tryIncreaseLiftGas_()

template<typename Scalar , typename IndexTraits >
std::unique_ptr< GasLiftWellState< Scalar > > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::tryIncreaseLiftGas_ ( )
protected

◆ updateGroupRates_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::updateGroupRates_ ( const LimitedRates rates,
const LimitedRates new_rates,
Scalar  delta_alq 
) const
protected

◆ updateRatesToGroupLimits_()

template<typename Scalar , typename IndexTraits >
LimitedRates Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::updateRatesToGroupLimits_ ( const BasicRates old_rates,
const LimitedRates rates,
const std::string &  gr_name = "" 
) const
protected

◆ updateWellStateAlqFixedValue_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::updateWellStateAlqFixedValue_ ( const GasLiftWell &  well)
protected

◆ useFixedAlq_()

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::useFixedAlq_ ( const GasLiftWell &  well)
protected

◆ warnMaxIterationsExceeded_()

template<typename Scalar , typename IndexTraits >
void Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::warnMaxIterationsExceeded_ ( )
protected

◆ wellTestALQ()

template<typename Scalar , typename IndexTraits >
std::pair< Scalar, bool > Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::wellTestALQ ( )

Member Data Documentation

◆ alpha_g_

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::alpha_g_
protected

◆ alpha_w_

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::alpha_w_
protected

◆ ALQ_EPSILON

template<typename Scalar , typename IndexTraits >
constexpr Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::ALQ_EPSILON = 1e-8
staticconstexprprotected

◆ comm_

template<typename Scalar , typename IndexTraits >
const Parallel::Communication& Opm::GasLiftCommon< Scalar, IndexTraits >::comm_
protectedinherited

◆ controls_

template<typename Scalar , typename IndexTraits >
const WellProductionControls Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::controls_
protected

◆ debug

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftCommon< Scalar, IndexTraits >::debug
protectedinherited

◆ debug_abort_if_decrease_and_oil_is_limited_

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debug_abort_if_decrease_and_oil_is_limited_ = false
protected

◆ debug_abort_if_increase_and_gas_is_limited_

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debug_abort_if_increase_and_gas_is_limited_ = false
protected

◆ debug_limit_increase_decrease_

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::debug_limit_increase_decrease_
protected

◆ debug_output_only_on_rank0

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftCommon< Scalar, IndexTraits >::debug_output_only_on_rank0 = false
protectedinherited

◆ deferred_logger_

template<typename Scalar , typename IndexTraits >
DeferredLogger& Opm::GasLiftCommon< Scalar, IndexTraits >::deferred_logger_
protectedinherited

◆ ecl_well_

template<typename Scalar , typename IndexTraits >
const Well& Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::ecl_well_
protected

◆ eco_grad_

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::eco_grad_
protected

◆ Gas

template<typename Scalar , typename IndexTraits >
constexpr int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::Gas = IndexTraits::gasPhaseIdx
staticconstexprprotected

◆ gas_pos_

template<typename Scalar , typename IndexTraits >
int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::gas_pos_
protected

◆ gl_well_

template<typename Scalar , typename IndexTraits >
const GasLiftWell* Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::gl_well_
protected

◆ group_info_

template<typename Scalar , typename IndexTraits >
GasLiftGroupInfo<Scalar, IndexTraits>& Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::group_info_
protected

◆ group_state_

template<typename Scalar , typename IndexTraits >
const GroupState<Scalar>& Opm::GasLiftCommon< Scalar, IndexTraits >::group_state_
protectedinherited

◆ increment_

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::increment_
protected

◆ max_alq_

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::max_alq_
protected

◆ max_iterations_

template<typename Scalar , typename IndexTraits >
int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::max_iterations_
protected

◆ min_alq_

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::min_alq_
protected

◆ NUM_PHASES

template<typename Scalar , typename IndexTraits >
constexpr int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::NUM_PHASES = 3
staticconstexprprotected

◆ Oil

template<typename Scalar , typename IndexTraits >
constexpr int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::Oil = IndexTraits::oilPhaseIdx
staticconstexprprotected

◆ oil_pos_

template<typename Scalar , typename IndexTraits >
int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::oil_pos_
protected

◆ optimize_

template<typename Scalar , typename IndexTraits >
bool Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::optimize_
protected

◆ orig_alq_

template<typename Scalar , typename IndexTraits >
Scalar Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::orig_alq_
protected

◆ summary_state_

template<typename Scalar , typename IndexTraits >
const SummaryState& Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::summary_state_
protected

◆ sync_groups_

template<typename Scalar , typename IndexTraits >
GLiftSyncGroups& Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::sync_groups_
protected

◆ Water

template<typename Scalar , typename IndexTraits >
constexpr int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::Water = IndexTraits::waterPhaseIdx
staticconstexprprotected

◆ water_pos_

template<typename Scalar , typename IndexTraits >
int Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::water_pos_
protected

◆ well_name_

template<typename Scalar , typename IndexTraits >
std::string Opm::GasLiftSingleWellGeneric< Scalar, IndexTraits >::well_name_
protected

◆ well_state_

template<typename Scalar , typename IndexTraits >
WellState<Scalar, IndexTraits>& Opm::GasLiftCommon< Scalar, IndexTraits >::well_state_
protectedinherited

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