My Project
Loading...
Searching...
No Matches
Opm::GasLiftSingleWellGeneric Class Referenceabstract
Inheritance diagram for Opm::GasLiftSingleWellGeneric:
Opm::GasLiftCommon Opm::GasLiftSingleWell< TypeTag >

Classes

struct  BasicRates
 
struct  GradInfo
 
struct  LimitedRates
 
struct  OptimizeState
 

Public Types

using GLiftSyncGroups = std::set< int >
 
using Rate = GasLiftGroupInfo::Rate
 

Public Member Functions

const std::string & name () const
 
std::optional< GradInfocalcIncOrDecGradient (double oil_rate, double gas_rate, double water_rate, double alq, const std::string &gr_name_dont_limit, bool increase, bool debug_output=true) const
 
std::unique_ptr< GasLiftWellStaterunOptimize (const int iteration_idx)
 
virtual const WellInterfaceGenericgetWell () const =0
 

Protected Member Functions

 GasLiftSingleWellGeneric (DeferredLogger &deferred_logger, WellState &well_state, const GroupState &group_state, const Well &ecl_well, const SummaryState &summary_state, GasLiftGroupInfo &group_info, const PhaseUsage &phase_usage, const Schedule &schedule, const int report_step_idx, GLiftSyncGroups &sync_groups, const Parallel::Communication &comm, bool glift_debug)
 
bool checkGroupALQrateExceeded (double delta_alq, const std::string &gr_name_dont_limit="") const
 
bool checkGroupTotalRateExceeded (double delta_alq, double delta_gas_rate) const
 
std::pair< std::optional< double >, booladdOrSubtractAlqIncrement_ (double alq, bool increase) const
 
double calcEcoGradient_ (double oil_rate, double new_oil_rate, double gas_rate, double new_gas_rate, bool increase) const
 
bool checkALQequal_ (double alq1, double alq2) const
 
bool checkGroupTargetsViolated (const BasicRates &rates, const BasicRates &new_rates) const
 
bool checkInitialALQmodified_ (double alq, double initial_alq) const
 
virtual bool checkThpControl_ () const =0
 
virtual std::optional< doublecomputeBhpAtThpLimit_ (double alq, bool debug_output=true) const =0
 
std::pair< std::optional< double >, doublecomputeConvergedBhpAtThpLimitByMaybeIncreasingALQ_ () const
 
std::pair< std::optional< BasicRates >, doublecomputeInitialWellRates_ () const
 
std::optional< LimitedRatescomputeLimitedWellRatesWithALQ_ (double alq) const
 
virtual BasicRates computeWellRates_ (double bhp, bool bhp_is_limited, bool debug_output=true) const =0
 
std::optional< BasicRatescomputeWellRatesWithALQ_ (double alq) const
 
void debugCheckNegativeGradient_ (double grad, double alq, double new_alq, double oil_rate, double new_oil_rate, double gas_rate, double new_gas_rate, bool increase) const
 
void debugPrintWellStateRates () const
 
void debugShowAlqIncreaseDecreaseCounts_ ()
 
void debugShowBhpAlqTable_ ()
 
void debugShowLimitingTargets_ (const LimitedRates &rates) const
 
void debugShowProducerControlMode () const
 
void debugShowStartIteration_ (double alq, bool increase, double oil_rate)
 
void debugShowTargets_ ()
 
void displayDebugMessage_ (const std::string &msg) const override
 
void displayWarning_ (const std::string &warning)
 
std::pair< double, boolgetBhpWithLimit_ (double bhp) const
 
std::pair< double, boolgetGasRateWithLimit_ (const BasicRates &rates) const
 
std::pair< double, boolgetGasRateWithGroupLimit_ (double new_gas_rate, double gas_rate, const std::string &gr_name_dont_limit) const
 
std::pair< std::optional< LimitedRates >, doublegetInitialRatesWithLimit_ () const
 
LimitedRates getLimitedRatesFromRates_ (const BasicRates &rates) const
 
std::tuple< double, double, bool, boolgetLiquidRateWithGroupLimit_ (const double new_oil_rate, const double oil_rate, const double new_water_rate, const double water_rate, const std::string &gr_name_dont_limit) const
 
std::pair< double, boolgetOilRateWithGroupLimit_ (double new_oil_rate, double oil_rate, const std::string &gr_name_dont_limit) const
 
std::pair< double, boolgetOilRateWithLimit_ (const BasicRates &rates) const
 
std::pair< double, std::optional< Rate > > getOilRateWithLimit2_ (const BasicRates &rates) const
 
double getProductionTarget_ (Rate rate) const
 
double getRate_ (Rate rate_type, const BasicRates &rates) const
 
std::pair< double, std::optional< Rate > > getRateWithLimit_ (Rate rate_type, const BasicRates &rates) const
 
std::tuple< double, const std::string *, doublegetRateWithGroupLimit_ (Rate rate_type, const double new_rate, const double old_rate, const std::string &gr_name_dont_limit) const
 
std::pair< double, boolgetWaterRateWithGroupLimit_ (double new_water_rate, double water_rate, const std::string &gr_name_dont_limit) const
 
std::pair< double, boolgetWaterRateWithLimit_ (const BasicRates &rates) const
 
std::pair< double, std::optional< Rate > > getWaterRateWithLimit2_ (const BasicRates &rates) const
 
BasicRates getWellStateRates_ () const
 
bool hasProductionControl_ (Rate rate) const
 
std::pair< LimitedRates, doubleincreaseALQtoPositiveOilRate_ (double alq, const LimitedRates &orig_rates) const
 
std::pair< LimitedRates, doubleincreaseALQtoMinALQ_ (double alq, const LimitedRates &orig_rates) const
 
void logSuccess_ (double alq, const int iteration_idx)
 
std::pair< LimitedRates, doublemaybeAdjustALQbeforeOptimizeLoop_ (const LimitedRates &rates, double alq, bool increase) const
 
std::pair< LimitedRates, doublereduceALQtoGroupAlqLimits_ (double alq, const LimitedRates &rates) const
 
std::pair< LimitedRates, doublereduceALQtoGroupTarget (double alq, const LimitedRates &rates) const
 
std::pair< LimitedRates, doublereduceALQtoWellTarget_ (double alq, const LimitedRates &rates) const
 
std::unique_ptr< GasLiftWellStaterunOptimize1_ ()
 
std::unique_ptr< GasLiftWellStaterunOptimize2_ ()
 
std::unique_ptr< GasLiftWellStaterunOptimizeLoop_ (bool increase)
 
void setAlqMinRate_ (const GasLiftWell &well)
 
std::unique_ptr< GasLiftWellStatetryIncreaseLiftGas_ ()
 
std::unique_ptr< GasLiftWellStatetryDecreaseLiftGas_ ()
 
void updateGroupRates_ (const LimitedRates &rates, const LimitedRates &new_rates, double delta_alq) const
 
LimitedRates updateRatesToGroupLimits_ (const BasicRates &rates, const LimitedRates &new_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, double rate, double target) const
 
void warnMaxIterationsExceeded_ ()
 
- Protected Member Functions inherited from Opm::GasLiftCommon
 GasLiftCommon (WellState &well_state, const GroupState &group_state, DeferredLogger &deferred_logger, const Parallel::Communication &comm, bool 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

const Wellecl_well_
 
const SummaryStatesummary_state_
 
GasLiftGroupInfogroup_info_
 
const PhaseUsagephase_usage_
 
GLiftSyncGroups & sync_groups_
 
const WellProductionControls controls_
 
double increment_
 
double max_alq_
 
double min_alq_
 
double orig_alq_
 
double alpha_w_
 
double alpha_g_
 
double eco_grad_
 
int gas_pos_
 
int oil_pos_
 
int water_pos_
 
int max_iterations_
 
std::string well_name_
 
const GasLiftWellgl_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
 
- Protected Attributes inherited from Opm::GasLiftCommon
WellStatewell_state_
 
const GroupStategroup_state_
 
DeferredLoggerdeferred_logger_
 
const Parallel::Communication & comm_
 
bool debug
 
bool debug_output_only_on_rank0 = false
 

Static Protected Attributes

static constexpr int Water = BlackoilPhases::Aqua
 
static constexpr int Oil = BlackoilPhases::Liquid
 
static constexpr int Gas = BlackoilPhases::Vapour
 
static constexpr int NUM_PHASES = 3
 
static constexpr double ALQ_EPSILON = 1e-8
 

Additional Inherited Members

- Protected Types inherited from Opm::GasLiftCommon
enum class  MessageType { INFO , WARNING }
 

Member Function Documentation

◆ displayDebugMessage_()

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

Implements Opm::GasLiftCommon.


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