GasLiftSingleWellGeneric.hpp
Go to the documentation of this file.
Definition: DeferredLogger.hpp:57 Definition: GasLiftCommon.hpp:35 Definition: GasLiftGroupInfo.hpp:46 Definition: GasLiftSingleWellGeneric.hpp:50 std::optional< GradInfo > 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 std::unique_ptr< GasLiftWellState< Scalar > > runOptimize(const int iteration_idx) std::pair< std::optional< LimitedRates >, Scalar > getInitialRatesWithLimit_() const std::pair< Scalar, bool > getBhpWithLimit_(Scalar bhp) const std::pair< LimitedRates, Scalar > increaseALQtoMinALQ_(Scalar alq, const LimitedRates &orig_rates) const void debugShowProducerControlMode() const GasLiftSingleWellGeneric(DeferredLogger &deferred_logger, WellState< Scalar > &well_state, const GroupState< Scalar > &group_state, const Well &ecl_well, const SummaryState &summary_state, GasLiftGroupInfo< 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) std::pair< Scalar, bool > getWaterRateWithGroupLimit_(Scalar new_water_rate, Scalar water_rate, const std::string &gr_name_dont_limit) const bool checkGroupALQrateExceeded(Scalar delta_alq, const std::string &gr_name_dont_limit="") const std::pair< LimitedRates, Scalar > reduceALQtoGroupTarget(Scalar alq, const LimitedRates &rates) const bool checkInitialALQmodified_(Scalar alq, Scalar initial_alq) const virtual BasicRates computeWellRates_(Scalar bhp, bool bhp_is_limited, bool debug_output=true) const =0 LimitedRates updateRatesToGroupLimits_(const BasicRates &rates, const LimitedRates &new_rates, const std::string &gr_name="") const static constexpr Scalar ALQ_EPSILON Definition: GasLiftSingleWellGeneric.hpp:56 bool debug_limit_increase_decrease_ Definition: GasLiftSingleWellGeneric.hpp:455 void debugPrintWellStateRates() const static constexpr int Oil Definition: GasLiftSingleWellGeneric.hpp:53 std::string well_name_ Definition: GasLiftSingleWellGeneric.hpp:450 std::pair< Scalar, bool > getWaterRateWithLimit_(const BasicRates &rates) const std::pair< Scalar, std::optional< Rate > > getRateWithLimit_(Rate rate_type, const BasicRates &rates) 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 std::pair< std::optional< BasicRates >, Scalar > computeInitialWellRates_() const Scalar eco_grad_ Definition: GasLiftSingleWellGeneric.hpp:442 std::pair< LimitedRates, Scalar > reduceALQtoWellTarget_(Scalar alq, const LimitedRates &rates) const virtual std::optional< Scalar > computeBhpAtThpLimit_(Scalar alq, bool debug_output=true) const =0 bool checkGroupTotalRateExceeded(Scalar delta_alq, Scalar delta_gas_rate) const bool debug_abort_if_increase_and_gas_is_limited_ Definition: GasLiftSingleWellGeneric.hpp:457 void displayDebugMessage_(const std::string &msg) const override std::optional< LimitedRates > computeLimitedWellRatesWithALQ_(Scalar alq) const void debugShowAlqIncreaseDecreaseCounts_() void debugShowTargets_() static constexpr int Water Definition: GasLiftSingleWellGeneric.hpp:52 void debugInfoGroupRatesExceedTarget(Rate rate_type, const std::string &gr_name, Scalar rate, Scalar target) const const SummaryState & summary_state_ Definition: GasLiftSingleWellGeneric.hpp:429 const std::string & name() const Definition: GasLiftSingleWellGeneric.hpp:99 std::unique_ptr< GasLiftWellState< Scalar > > runOptimizeLoop_(bool increase) std::pair< Scalar, bool > getGasRateWithLimit_(const BasicRates &rates) const std::pair< Scalar, std::optional< Rate > > getOilRateWithLimit2_(const BasicRates &rates) const void displayWarning_(const std::string &warning) BasicRates getWellStateRates_() const const Well & ecl_well_ Definition: GasLiftSingleWellGeneric.hpp:428 std::pair< std::optional< Scalar >, Scalar > computeConvergedBhpAtThpLimitByMaybeIncreasingALQ_() 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 std::set< int > GLiftSyncGroups Definition: GasLiftSingleWellGeneric.hpp:59 Scalar increment_ Definition: GasLiftSingleWellGeneric.hpp:435 typename GasLiftGroupInfo< Scalar >::Rate Rate Definition: GasLiftSingleWellGeneric.hpp:60 LimitedRates getLimitedRatesFromRates_(const BasicRates &rates) const virtual const WellInterfaceGeneric< Scalar > & getWell() const =0 const WellProductionControls controls_ Definition: GasLiftSingleWellGeneric.hpp:433 std::pair< Scalar, bool > getGasRateWithGroupLimit_(Scalar new_gas_rate, Scalar gas_rate, const std::string &gr_name_dont_limit) const Scalar orig_alq_ Definition: GasLiftSingleWellGeneric.hpp:438 std::pair< LimitedRates, Scalar > increaseALQtoPositiveOilRate_(Scalar alq, const LimitedRates &orig_rates) const void updateGroupRates_(const LimitedRates &rates, const LimitedRates &new_rates, Scalar delta_alq) const bool checkALQequal_(Scalar alq1, Scalar alq2) const bool useFixedAlq_(const GasLiftWell &well) const PhaseUsage & phase_usage_ Definition: GasLiftSingleWellGeneric.hpp:431 std::pair< LimitedRates, Scalar > maybeAdjustALQbeforeOptimizeLoop_(const LimitedRates &rates, Scalar alq, bool increase) const std::unique_ptr< GasLiftWellState< Scalar > > runOptimize1_() void updateWellStateAlqFixedValue_(const GasLiftWell &well) 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 void setAlqMinRate_(const GasLiftWell &well) void warnMaxIterationsExceeded_() std::unique_ptr< GasLiftWellState< Scalar > > tryDecreaseLiftGas_() static constexpr int Gas Definition: GasLiftSingleWellGeneric.hpp:54 void debugShowLimitingTargets_(const LimitedRates &rates) const bool checkGroupTargetsViolated(const BasicRates &rates, const BasicRates &new_rates) const void logSuccess_(Scalar alq, const int iteration_idx) std::unique_ptr< GasLiftWellState< Scalar > > tryIncreaseLiftGas_() void debugShowStartIteration_(Scalar alq, bool increase, Scalar oil_rate) virtual bool checkThpControl_() const =0 static constexpr int NUM_PHASES Definition: GasLiftSingleWellGeneric.hpp:55 virtual ~GasLiftSingleWellGeneric()=default 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 GLiftSyncGroups & sync_groups_ Definition: GasLiftSingleWellGeneric.hpp:432 std::pair< LimitedRates, Scalar > reduceALQtoGroupAlqLimits_(Scalar alq, const LimitedRates &rates) const int max_iterations_ Definition: GasLiftSingleWellGeneric.hpp:448 std::pair< Scalar, bool > getOilRateWithLimit_(const BasicRates &rates) const Scalar getProductionTarget_(Rate rate) const std::pair< Scalar, std::optional< Rate > > getWaterRateWithLimit2_(const BasicRates &rates) const GasLiftGroupInfo< Scalar > & group_info_ Definition: GasLiftSingleWellGeneric.hpp:430 void debugShowBhpAlqTable_() const GasLiftWell * gl_well_ Definition: GasLiftSingleWellGeneric.hpp:452 bool debug_abort_if_decrease_and_oil_is_limited_ Definition: GasLiftSingleWellGeneric.hpp:456 std::optional< BasicRates > computeWellRatesWithALQ_(Scalar alq) const bool hasProductionControl_(Rate rate) const std::unique_ptr< GasLiftWellState< Scalar > > runOptimize2_() Scalar getRate_(Rate rate_type, const BasicRates &rates) const Definition: GroupState.hpp:38 Definition: WellInterfaceGeneric.hpp:51 Definition: WellState.hpp:62 Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 bool water(const PhaseUsage &pu) Definition: RegionAttributeHelpers.hpp:309 bool oil(const PhaseUsage &pu) Definition: RegionAttributeHelpers.hpp:322 bool gas(const PhaseUsage &pu) Definition: RegionAttributeHelpers.hpp:335 Definition: blackoilboundaryratevector.hh:37 Definition: GasLiftSingleWellGeneric.hpp:129 bool bhp_is_limited Definition: GasLiftSingleWellGeneric.hpp:178 Scalar operator[](Rate rate_type) const Definition: GasLiftSingleWellGeneric.hpp:161 Scalar gas Definition: GasLiftSingleWellGeneric.hpp:177 BasicRates(Scalar oil_, Scalar gas_, Scalar water_, bool bhp_is_limited_) Definition: GasLiftSingleWellGeneric.hpp:137 BasicRates(const LimitedRates &rates) BasicRates & operator=(const BasicRates &rates) Definition: GasLiftSingleWellGeneric.hpp:147 BasicRates(const BasicRates &rates) Definition: GasLiftSingleWellGeneric.hpp:130 Scalar water Definition: GasLiftSingleWellGeneric.hpp:177 Scalar oil Definition: GasLiftSingleWellGeneric.hpp:177 Definition: GasLiftSingleWellGeneric.hpp:64 bool alq_is_limited Definition: GasLiftSingleWellGeneric.hpp:94 Scalar new_gas_rate Definition: GasLiftSingleWellGeneric.hpp:89 bool water_is_limited Definition: GasLiftSingleWellGeneric.hpp:92 Scalar new_oil_rate Definition: GasLiftSingleWellGeneric.hpp:87 GradInfo()=default GradInfo(Scalar grad_, Scalar new_oil_rate_, bool oil_is_limited_, Scalar new_gas_rate_, bool gas_is_limited_, Scalar new_water_rate_, bool water_is_limited_, Scalar alq_, bool alq_is_limited_) Definition: GasLiftSingleWellGeneric.hpp:66 Scalar new_water_rate Definition: GasLiftSingleWellGeneric.hpp:91 bool gas_is_limited Definition: GasLiftSingleWellGeneric.hpp:90 bool oil_is_limited Definition: GasLiftSingleWellGeneric.hpp:88 Definition: GasLiftSingleWellGeneric.hpp:182 std::optional< Rate > water_limiting_target Definition: GasLiftSingleWellGeneric.hpp:227 LimitedRates(Scalar oil_, Scalar gas_, Scalar water_, bool oil_is_limited_, bool gas_is_limited_, bool water_is_limited_, bool bhp_is_limited_, std::optional< Rate > oil_limiting_target_, std ::optional< Rate > water_limiting_target_) Definition: GasLiftSingleWellGeneric.hpp:184 LimitedRates(const BasicRates &rates, bool oil_is_limited_, bool gas_is_limited_, bool water_is_limited_) Definition: GasLiftSingleWellGeneric.hpp:203 bool water_is_limited Definition: GasLiftSingleWellGeneric.hpp:225 bool gas_is_limited Definition: GasLiftSingleWellGeneric.hpp:224 LimitType limit_type Definition: GasLiftSingleWellGeneric.hpp:222 bool limited() const Definition: GasLiftSingleWellGeneric.hpp:215 LimitType Definition: GasLiftSingleWellGeneric.hpp:183 bool oil_is_limited Definition: GasLiftSingleWellGeneric.hpp:223 std::optional< Rate > oil_limiting_target Definition: GasLiftSingleWellGeneric.hpp:226 Definition: GasLiftSingleWellGeneric.hpp:237 bool checkAlqOutsideLimits(Scalar alq, Scalar oil_rate) bool increase Definition: GasLiftSingleWellGeneric.hpp:247 void debugShowIterationInfo(Scalar alq) void warn_(const std::string &msg) Definition: GasLiftSingleWellGeneric.hpp:267 Scalar getBhpWithLimit() bool checkEcoGradient(Scalar gradient) bool checkRatesViolated(const LimitedRates &rates) const GasLiftSingleWellGeneric & parent Definition: GasLiftSingleWellGeneric.hpp:246 Scalar bhp Definition: GasLiftSingleWellGeneric.hpp:250 std::pair< std::optional< Scalar >, bool > addOrSubtractAlqIncrement(Scalar alq) Scalar calcEcoGradient(Scalar oil_rate, Scalar new_oil_rate, Scalar gas_rate, Scalar new_gas_rate) OptimizeState(GasLiftSingleWellGeneric &parent_, bool increase_) Definition: GasLiftSingleWellGeneric.hpp:238 bool stop_iteration Definition: GasLiftSingleWellGeneric.hpp:249 bool checkOilRateExceedsTarget(Scalar oil_rate) Definition: BlackoilPhases.hpp:46 |