My Project
Loading...
Searching...
No Matches
Opm::GasLiftSingleWell< TypeTag > Class Template Reference
Inheritance diagram for Opm::GasLiftSingleWell< TypeTag >:
Opm::GasLiftSingleWellGeneric< GetPropType< TypeTag, Properties::Scalar > > Opm::GasLiftCommon< Scalar >

Public Member Functions

 GasLiftSingleWell (const WellInterface< TypeTag > &well, const Simulator &simulator, const SummaryState &summary_state, DeferredLogger &deferred_logger, WellState< Scalar > &well_state, const GroupState< Scalar > &group_state, GasLiftGroupInfo< Scalar > &group_info, GLiftSyncGroups &sync_groups, const Parallel::Communication &comm, bool glift_debug)
 
const WellInterfaceGeneric< Scalar > & getWell () const override
 
- Public Member Functions inherited from Opm::GasLiftSingleWellGeneric< GetPropType< TypeTag, Properties::Scalar > >
const std::string & name () const
 
std::optional< GradInfo > calcIncOrDecGradient (GetPropType< TypeTag, Properties::Scalar > oil_rate, GetPropType< TypeTag, Properties::Scalar > gas_rate, GetPropType< TypeTag, Properties::Scalar > water_rate, GetPropType< TypeTag, Properties::Scalar > alq, const std::string &gr_name_dont_limit, bool increase, bool debug_output=true) const
 
std::unique_ptr< GasLiftWellState< GetPropType< TypeTag, Properties::Scalar > > > runOptimize (const int iteration_idx)
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > wellTestALQ ()
 

Additional Inherited Members

- Public Types inherited from Opm::GasLiftSingleWellGeneric< GetPropType< TypeTag, Properties::Scalar > >
using GLiftSyncGroups = std::set< int >
 
using Rate = typename GasLiftGroupInfo< GetPropType< TypeTag, Properties::Scalar > >::Rate
 
using MessageType = typename GasLiftCommon< GetPropType< TypeTag, Properties::Scalar > >::MessageType
 
- Protected Types inherited from Opm::GasLiftCommon< Scalar >
enum class  MessageType { INFO , WARNING }
 
- Protected Member Functions inherited from Opm::GasLiftSingleWellGeneric< GetPropType< TypeTag, Properties::Scalar > >
 GasLiftSingleWellGeneric (DeferredLogger &deferred_logger, WellState< GetPropType< TypeTag, Properties::Scalar > > &well_state, const GroupState< GetPropType< TypeTag, Properties::Scalar > > &group_state, const Well &ecl_well, const SummaryState &summary_state, GasLiftGroupInfo< GetPropType< TypeTag, Properties::Scalar > > &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 (GetPropType< TypeTag, Properties::Scalar > delta_alq, const std::string &gr_name_dont_limit="") const
 
bool checkGroupTotalRateExceeded (GetPropType< TypeTag, Properties::Scalar > delta_alq, GetPropType< TypeTag, Properties::Scalar > delta_gas_rate) const
 
std::pair< std::optional< GetPropType< TypeTag, Properties::Scalar > >, bool > addOrSubtractAlqIncrement_ (GetPropType< TypeTag, Properties::Scalar > alq, bool increase) const
 
GetPropType< TypeTag, Properties::ScalarcalcEcoGradient_ (GetPropType< TypeTag, Properties::Scalar > oil_rate, GetPropType< TypeTag, Properties::Scalar > new_oil_rate, GetPropType< TypeTag, Properties::Scalar > gas_rate, GetPropType< TypeTag, Properties::Scalar > new_gas_rate, bool increase) const
 
bool checkALQequal_ (GetPropType< TypeTag, Properties::Scalar > alq1, GetPropType< TypeTag, Properties::Scalar > alq2) const
 
bool checkGroupTargetsViolated (const BasicRates &rates, const BasicRates &new_rates) const
 
bool checkInitialALQmodified_ (GetPropType< TypeTag, Properties::Scalar > alq, GetPropType< TypeTag, Properties::Scalar > initial_alq) const
 
virtual std::optional< GetPropType< TypeTag, Properties::Scalar > > computeBhpAtThpLimit_ (GetPropType< TypeTag, Properties::Scalar > alq, bool debug_output=true) const=0
 
std::pair< std::optional< GetPropType< TypeTag, Properties::Scalar > >, GetPropType< TypeTag, Properties::Scalar > > computeConvergedBhpAtThpLimitByMaybeIncreasingALQ_ () const
 
std::pair< std::optional< BasicRates >, GetPropType< TypeTag, Properties::Scalar > > computeInitialWellRates_ () const
 
std::optional< LimitedRates > computeLimitedWellRatesWithALQ_ (GetPropType< TypeTag, Properties::Scalar > alq) const
 
virtual BasicRates computeWellRates_ (GetPropType< TypeTag, Properties::Scalar > bhp, bool bhp_is_limited, bool debug_output=true) const=0
 
std::optional< BasicRates > computeWellRatesWithALQ_ (GetPropType< TypeTag, Properties::Scalar > alq) const
 
void debugCheckNegativeGradient_ (GetPropType< TypeTag, Properties::Scalar > grad, GetPropType< TypeTag, Properties::Scalar > alq, GetPropType< TypeTag, Properties::Scalar > new_alq, GetPropType< TypeTag, Properties::Scalar > oil_rate, GetPropType< TypeTag, Properties::Scalar > new_oil_rate, GetPropType< TypeTag, Properties::Scalar > gas_rate, GetPropType< TypeTag, Properties::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_ (GetPropType< TypeTag, Properties::Scalar > alq, bool increase, GetPropType< TypeTag, Properties::Scalar > oil_rate)
 
void debugShowTargets_ ()
 
void displayDebugMessage_ (const std::string &msg) const override
 
void displayWarning_ (const std::string &warning)
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > getBhpWithLimit_ (GetPropType< TypeTag, Properties::Scalar > bhp) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > getGasRateWithLimit_ (const BasicRates &rates) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > getGasRateWithGroupLimit_ (GetPropType< TypeTag, Properties::Scalar > new_gas_rate, GetPropType< TypeTag, Properties::Scalar > gas_rate, const std::string &gr_name_dont_limit) const
 
std::pair< std::optional< LimitedRates >, GetPropType< TypeTag, Properties::Scalar > > getInitialRatesWithLimit_ () const
 
LimitedRates getLimitedRatesFromRates_ (const BasicRates &rates) const
 
std::tuple< GetPropType< TypeTag, Properties::Scalar >, GetPropType< TypeTag, Properties::Scalar >, bool, bool > getLiquidRateWithGroupLimit_ (const GetPropType< TypeTag, Properties::Scalar > new_oil_rate, const GetPropType< TypeTag, Properties::Scalar > oil_rate, const GetPropType< TypeTag, Properties::Scalar > new_water_rate, const GetPropType< TypeTag, Properties::Scalar > water_rate, const std::string &gr_name_dont_limit) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > getOilRateWithGroupLimit_ (GetPropType< TypeTag, Properties::Scalar > new_oil_rate, GetPropType< TypeTag, Properties::Scalar > oil_rate, const std::string &gr_name_dont_limit) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > getOilRateWithLimit_ (const BasicRates &rates) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, std::optional< Rate > > getOilRateWithLimit2_ (const BasicRates &rates) const
 
GetPropType< TypeTag, Properties::ScalargetProductionTarget_ (Rate rate) const
 
GetPropType< TypeTag, Properties::ScalargetRate_ (Rate rate_type, const BasicRates &rates) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, std::optional< Rate > > getRateWithLimit_ (Rate rate_type, const BasicRates &rates) const
 
std::tuple< GetPropType< TypeTag, Properties::Scalar >, const std::string *, GetPropType< TypeTag, Properties::Scalar > > getRateWithGroupLimit_ (Rate rate_type, const GetPropType< TypeTag, Properties::Scalar > new_rate, const GetPropType< TypeTag, Properties::Scalar > old_rate, const std::string &gr_name_dont_limit) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > getWaterRateWithGroupLimit_ (GetPropType< TypeTag, Properties::Scalar > new_water_rate, GetPropType< TypeTag, Properties::Scalar > water_rate, const std::string &gr_name_dont_limit) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, bool > getWaterRateWithLimit_ (const BasicRates &rates) const
 
std::pair< GetPropType< TypeTag, Properties::Scalar >, std::optional< Rate > > getWaterRateWithLimit2_ (const BasicRates &rates) const
 
BasicRates getWellStateRates_ () const
 
bool hasProductionControl_ (Rate rate) const
 
std::pair< LimitedRates, GetPropType< TypeTag, Properties::Scalar > > increaseALQtoPositiveOilRate_ (GetPropType< TypeTag, Properties::Scalar > alq, const LimitedRates &orig_rates) const
 
std::pair< LimitedRates, GetPropType< TypeTag, Properties::Scalar > > increaseALQtoMinALQ_ (GetPropType< TypeTag, Properties::Scalar > alq, const LimitedRates &orig_rates) const
 
void logSuccess_ (GetPropType< TypeTag, Properties::Scalar > alq, const int iteration_idx)
 
std::pair< LimitedRates, GetPropType< TypeTag, Properties::Scalar > > maybeAdjustALQbeforeOptimizeLoop_ (const LimitedRates &rates, GetPropType< TypeTag, Properties::Scalar > alq, bool increase) const
 
std::pair< LimitedRates, GetPropType< TypeTag, Properties::Scalar > > reduceALQtoGroupAlqLimits_ (GetPropType< TypeTag, Properties::Scalar > alq, const LimitedRates &rates) const
 
std::pair< LimitedRates, GetPropType< TypeTag, Properties::Scalar > > reduceALQtoGroupTarget (GetPropType< TypeTag, Properties::Scalar > alq, const LimitedRates &rates) const
 
std::pair< LimitedRates, GetPropType< TypeTag, Properties::Scalar > > reduceALQtoWellTarget_ (GetPropType< TypeTag, Properties::Scalar > alq, const LimitedRates &rates) const
 
std::unique_ptr< GasLiftWellState< GetPropType< TypeTag, Properties::Scalar > > > runOptimize1_ ()
 
std::unique_ptr< GasLiftWellState< GetPropType< TypeTag, Properties::Scalar > > > runOptimize2_ ()
 
std::unique_ptr< GasLiftWellState< GetPropType< TypeTag, Properties::Scalar > > > runOptimizeLoop_ (bool increase)
 
void setAlqMinRate_ (const GasLiftWell &well)
 
std::unique_ptr< GasLiftWellState< GetPropType< TypeTag, Properties::Scalar > > > tryIncreaseLiftGas_ ()
 
std::unique_ptr< GasLiftWellState< GetPropType< TypeTag, Properties::Scalar > > > tryDecreaseLiftGas_ ()
 
void updateGroupRates_ (const LimitedRates &rates, const LimitedRates &new_rates, GetPropType< TypeTag, Properties::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, GetPropType< TypeTag, Properties::Scalar > rate, GetPropType< TypeTag, Properties::Scalar > target) const
 
void warnMaxIterationsExceeded_ ()
 
- 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 inherited from Opm::GasLiftSingleWellGeneric< GetPropType< TypeTag, Properties::Scalar > >
const Well & ecl_well_
 
const SummaryState & summary_state_
 
GasLiftGroupInfo< GetPropType< TypeTag, Properties::Scalar > > & group_info_
 
const PhaseUsagephase_usage_
 
GLiftSyncGroups & sync_groups_
 
const WellProductionControls controls_
 
GetPropType< TypeTag, Properties::Scalarincrement_
 
GetPropType< TypeTag, Properties::Scalarmax_alq_
 
GetPropType< TypeTag, Properties::Scalarmin_alq_
 
GetPropType< TypeTag, Properties::Scalarorig_alq_
 
GetPropType< TypeTag, Properties::Scalaralpha_w_
 
GetPropType< TypeTag, Properties::Scalaralpha_g_
 
GetPropType< TypeTag, Properties::Scalareco_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_
 
bool debug_abort_if_increase_and_gas_is_limited_
 
- 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 inherited from Opm::GasLiftSingleWellGeneric< GetPropType< TypeTag, Properties::Scalar > >
static constexpr int Water
 
static constexpr int Oil
 
static constexpr int Gas
 
static constexpr int NUM_PHASES
 
static constexpr GetPropType< TypeTag, Properties::ScalarALQ_EPSILON
 

Member Function Documentation

◆ getWell()

template<class TypeTag >
const WellInterfaceGeneric< Scalar > & Opm::GasLiftSingleWell< TypeTag >::getWell ( ) const
inlineoverridevirtual

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