My Project
Opm::GasLiftSingleWellGeneric Class Referenceabstract
Inheritance diagram for Opm::GasLiftSingleWellGeneric:
Opm::GasLiftSingleWell< TypeTag >

Classes

struct  GradInfo
 
struct  OptimizeState
 

Public Types

using GLiftSyncGroups = std::set< int >
 

Public Member Functions

const std::string & name () const
 
std::optional< GradInfocalcIncOrDecGradient (double oil_rate, double gas_rate, double alq, bool increase) const
 
std::unique_ptr< GasLiftWellStaterunOptimize (const int iteration_idx)
 
virtual const WellInterfaceGenericgetStdWell () 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 Schedule &schedule, const int report_step_idx, GLiftSyncGroups &sync_groups)
 
std::pair< std::optional< double >, bool > addOrSubtractAlqIncrement_ (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 checkInitialALQmodified_ (double alq, double initial_alq) const
 
bool checkWellRatesViolated_ (std::vector< double > &potentials, const std::function< bool(double, double, const std::string &)> &callback, bool increase)
 
virtual std::optional< double > computeBhpAtThpLimit_ (double alq) const =0
 
virtual void computeWellRates_ (double bhp, std::vector< double > &potentials, bool debug_output=true) const =0
 
bool computeInitialWellRates_ (std::vector< double > &potentials)
 
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 debugShowAlqIncreaseDecreaseCounts_ ()
 
void debugShowBhpAlqTable_ ()
 
void debugShowStartIteration_ (double alq, bool increase, double oil_rate)
 
void debugShowTargets_ ()
 
void displayDebugMessage_ (const std::string &msg) const
 
void displayWarning_ (const std::string &warning)
 
std::pair< double, bool > getBhpWithLimit_ (double bhp) const
 
std::pair< double, bool > getGasRateWithLimit_ (const std::vector< double > &potentials) const
 
std::tuple< double, double, bool, bool > getInitialRatesWithLimit_ (const std::vector< double > &potentials)
 
std::pair< double, bool > getOilRateWithLimit_ (const std::vector< double > &potentials) const
 
std::tuple< double, double, bool, bool, double > increaseALQtoPositiveOilRate_ (double alq, double oil_rate, double gas_rate, bool oil_is_limited, bool gas_is_limited, std::vector< double > &potentials)
 
std::tuple< double, double, bool, bool, double > increaseALQtoMinALQ_ (double alq, double oil_rate, double gas_rate, bool oil_is_limited, bool gas_is_limited, std::vector< double > &potentials)
 
void logSuccess_ (double alq, const int iteration_idx)
 
std::tuple< double, double, double, bool, bool > maybeAdjustALQbeforeOptimizeLoop_ (bool increase, double alq, double oil_rate, double gas_rate, bool oil_is_limited, bool gas_is_limited, std::vector< double > &potentials)
 
std::tuple< double, double, bool, bool, double > reduceALQtoOilTarget_ (double alq, double oil_rate, double gas_rate, bool oil_is_limited, bool gas_is_limited, std::vector< double > &potentials)
 
std::unique_ptr< GasLiftWellStaterunOptimize1_ ()
 
std::unique_ptr< GasLiftWellStaterunOptimize2_ ()
 
std::unique_ptr< GasLiftWellStaterunOptimizeLoop_ (bool increase)
 
void setAlqMinRate_ (const GasLiftOpt::Well &well)
 
std::unique_ptr< GasLiftWellStatetryIncreaseLiftGas_ ()
 
std::unique_ptr< GasLiftWellStatetryDecreaseLiftGas_ ()
 
void updateWellStateAlqFixedValue_ (const GasLiftOpt::Well &well)
 
bool useFixedAlq_ (const GasLiftOpt::Well &well)
 
void warnMaxIterationsExceeded_ ()
 

Protected Attributes

DeferredLoggerdeferred_logger_
 
WellStatewell_state_
 
const GroupStategroup_state_
 
const Well & ecl_well_
 
const SummaryState & summary_state_
 
GasLiftGroupInfogroup_info_
 
GLiftSyncGroups & sync_groups_
 
const Well::ProductionControls 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_
 
int num_phases_
 
std::string well_name_
 
const GasLiftOpt::Well * gl_well_
 
bool optimize_
 
bool debug_
 
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
 

Static Protected Attributes

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

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