GasLiftSingleWellGeneric.hpp
Go to the documentation of this file.
242 bool checkGroupALQrateExceeded(double delta_alq, const std::string& gr_name_dont_limit = "") const;
254 virtual std::optional<double> computeBhpAtThpLimit_(double alq, bool debug_output = true) const = 0;
255 std::pair<std::optional<double>,double> computeConvergedBhpAtThpLimitByMaybeIncreasingALQ_() const;
258 virtual BasicRates computeWellRates_(double bhp, bool bhp_is_limited, bool debug_output = true) const = 0;
282 const double new_water_rate, const double water_rate, const std::string& gr_name_dont_limit) const;
293 Rate rate_type, const double new_rate, const double old_rate, const std::string& gr_name_dont_limit) const;
Definition: DeferredLogger.hpp:57 Definition: GasLiftCommon.hpp:35 Definition: GasLiftGroupInfo.hpp:45 Definition: GasLiftSingleWellGeneric.hpp:49 static constexpr int NUM_PHASES Definition: GasLiftSingleWellGeneric.hpp:54 std::pair< LimitedRates, double > reduceALQtoGroupTarget(double alq, const LimitedRates &rates) const int max_iterations_ Definition: GasLiftSingleWellGeneric.hpp:353 std::unique_ptr< GasLiftWellState > runOptimize2_() std::pair< std::optional< LimitedRates >, double > getInitialRatesWithLimit_() const bool hasProductionControl_(Rate rate) const const Well & ecl_well_ Definition: GasLiftSingleWellGeneric.hpp:333 std::pair< double, std::optional< Rate > > getOilRateWithLimit2_(const BasicRates &rates) const const GasLiftWell * gl_well_ Definition: GasLiftSingleWellGeneric.hpp:357 double orig_alq_ Definition: GasLiftSingleWellGeneric.hpp:343 bool checkInitialALQmodified_(double alq, double initial_alq) const void updateGroupRates_(const LimitedRates &rates, const LimitedRates &new_rates, double delta_alq) const static constexpr int Gas Definition: GasLiftSingleWellGeneric.hpp:53 void debugShowTargets_() std::optional< LimitedRates > computeLimitedWellRatesWithALQ_(double alq) const double eco_grad_ Definition: GasLiftSingleWellGeneric.hpp:347 std::tuple< double, const std::string *, double > getRateWithGroupLimit_(Rate rate_type, const double new_rate, const double old_rate, const std::string &gr_name_dont_limit) const std::pair< LimitedRates, double > increaseALQtoMinALQ_(double alq, const LimitedRates &orig_rates) const double increment_ Definition: GasLiftSingleWellGeneric.hpp:340 static constexpr int Oil Definition: GasLiftSingleWellGeneric.hpp:52 void setAlqMinRate_(const GasLiftWell &well) bool debug_abort_if_decrease_and_oil_is_limited_ Definition: GasLiftSingleWellGeneric.hpp:361 void displayDebugMessage_(const std::string &msg) const override std::pair< LimitedRates, double > reduceALQtoGroupAlqLimits_(double alq, const LimitedRates &rates) const LimitedRates getLimitedRatesFromRates_(const BasicRates &rates) const std::pair< double, std::optional< Rate > > getRateWithLimit_(Rate rate_type, const BasicRates &rates) const std::unique_ptr< GasLiftWellState > tryDecreaseLiftGas_() std::pair< double, bool > getGasRateWithGroupLimit_(double new_gas_rate, double gas_rate, const std::string &gr_name_dont_limit) const GasLiftSingleWellGeneric(DeferredLogger &deferred_logger, WellState< double > &well_state, const GroupState< double > &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) std::pair< double, bool > getWaterRateWithLimit_(const BasicRates &rates) const std::pair< LimitedRates, double > reduceALQtoWellTarget_(double alq, const LimitedRates &rates) const virtual ~GasLiftSingleWellGeneric()=default void displayWarning_(const std::string &warning) std::unique_ptr< GasLiftWellState > runOptimizeLoop_(bool increase) void debugShowLimitingTargets_(const LimitedRates &rates) 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 static constexpr int Water Definition: GasLiftSingleWellGeneric.hpp:51 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 const WellProductionControls controls_ Definition: GasLiftSingleWellGeneric.hpp:338 LimitedRates updateRatesToGroupLimits_(const BasicRates &rates, const LimitedRates &new_rates, const std::string &gr_name="") const BasicRates getWellStateRates_() const GLiftSyncGroups & sync_groups_ Definition: GasLiftSingleWellGeneric.hpp:337 std::pair< std::optional< double >, double > computeConvergedBhpAtThpLimitByMaybeIncreasingALQ_() const std::tuple< double, double, bool, bool > getLiquidRateWithGroupLimit_(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::optional< BasicRates > computeWellRatesWithALQ_(double alq) const void debugInfoGroupRatesExceedTarget(Rate rate_type, const std::string &gr_name, double rate, double target) const void debugShowAlqIncreaseDecreaseCounts_() std::pair< double, bool > getOilRateWithGroupLimit_(double new_oil_rate, double oil_rate, const std::string &gr_name_dont_limit) const void logSuccess_(double alq, const int iteration_idx) bool debug_limit_increase_decrease_ Definition: GasLiftSingleWellGeneric.hpp:360 bool useFixedAlq_(const GasLiftWell &well) std::string well_name_ Definition: GasLiftSingleWellGeneric.hpp:355 virtual std::optional< double > computeBhpAtThpLimit_(double alq, bool debug_output=true) const =0 std::pair< double, bool > getBhpWithLimit_(double bhp) const virtual BasicRates computeWellRates_(double bhp, bool bhp_is_limited, bool debug_output=true) const =0 std::pair< std::optional< BasicRates >, double > computeInitialWellRates_() const double getRate_(Rate rate_type, const BasicRates &rates) const std::pair< double, bool > getGasRateWithLimit_(const BasicRates &rates) const static constexpr double ALQ_EPSILON Definition: GasLiftSingleWellGeneric.hpp:55 GasLiftGroupInfo & group_info_ Definition: GasLiftSingleWellGeneric.hpp:335 void debugShowStartIteration_(double alq, bool increase, double oil_rate) void debugPrintWellStateRates() const const PhaseUsage & phase_usage_ Definition: GasLiftSingleWellGeneric.hpp:336 std::pair< LimitedRates, double > maybeAdjustALQbeforeOptimizeLoop_(const LimitedRates &rates, double alq, bool increase) const std::pair< LimitedRates, double > increaseALQtoPositiveOilRate_(double alq, const LimitedRates &orig_rates) const const std::string & name() const Definition: GasLiftSingleWellGeneric.hpp:90 void warnMaxIterationsExceeded_() virtual bool checkThpControl_() const =0 std::pair< double, bool > getOilRateWithLimit_(const BasicRates &rates) const const SummaryState & summary_state_ Definition: GasLiftSingleWellGeneric.hpp:334 bool debug_abort_if_increase_and_gas_is_limited_ Definition: GasLiftSingleWellGeneric.hpp:362 std::set< int > GLiftSyncGroups Definition: GasLiftSingleWellGeneric.hpp:58 bool checkGroupALQrateExceeded(double delta_alq, const std::string &gr_name_dont_limit="") const std::unique_ptr< GasLiftWellState > runOptimize(const int iteration_idx) std::unique_ptr< GasLiftWellState > runOptimize1_() void debugShowBhpAlqTable_() bool checkGroupTargetsViolated(const BasicRates &rates, const BasicRates &new_rates) const virtual const WellInterfaceGeneric & getWell() const =0 bool checkGroupTotalRateExceeded(double delta_alq, double delta_gas_rate) const std::unique_ptr< GasLiftWellState > tryIncreaseLiftGas_() void debugShowProducerControlMode() const std::pair< std::optional< double >, bool > addOrSubtractAlqIncrement_(double alq, bool increase) const std::optional< GradInfo > calcIncOrDecGradient(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 void updateWellStateAlqFixedValue_(const GasLiftWell &well) double getProductionTarget_(Rate rate) const std::pair< double, bool > getWaterRateWithGroupLimit_(double new_water_rate, double water_rate, const std::string &gr_name_dont_limit) const std::pair< double, std::optional< Rate > > getWaterRateWithLimit2_(const BasicRates &rates) const Definition: WellInterfaceGeneric.hpp:50 Dune::Communication< MPIComm > Communication Definition: ParallelCommunication.hpp:30 VFPEvaluation bhp(const VFPProdTable &table, const double aqua, const double liquid, const double vapour, const double thp, const double alq, const double explicit_wfr, const double explicit_gfr, const bool use_vfpexplicit) Definition: BlackoilPhases.hpp:27 Definition: GasLiftSingleWellGeneric.hpp:122 double oil Definition: GasLiftSingleWellGeneric.hpp:161 bool bhp_is_limited Definition: GasLiftSingleWellGeneric.hpp:162 double operator[](Rate rate_type) const Definition: GasLiftSingleWellGeneric.hpp:146 BasicRates(const LimitedRates &rates) double water Definition: GasLiftSingleWellGeneric.hpp:161 double gas Definition: GasLiftSingleWellGeneric.hpp:161 BasicRates(double oil_, double gas_, double water_, bool bhp_is_limited_) Definition: GasLiftSingleWellGeneric.hpp:129 BasicRates(const BasicRates &rates) Definition: GasLiftSingleWellGeneric.hpp:123 BasicRates & operator=(const BasicRates &rates) Definition: GasLiftSingleWellGeneric.hpp:135 Definition: GasLiftSingleWellGeneric.hpp:61 bool water_is_limited Definition: GasLiftSingleWellGeneric.hpp:83 bool alq_is_limited Definition: GasLiftSingleWellGeneric.hpp:85 GradInfo(double grad_, double new_oil_rate_, bool oil_is_limited_, double new_gas_rate_, bool gas_is_limited_, double new_water_rate_, bool water_is_limited_, double alq_, bool alq_is_limited_) Definition: GasLiftSingleWellGeneric.hpp:64 bool oil_is_limited Definition: GasLiftSingleWellGeneric.hpp:79 GradInfo() Definition: GasLiftSingleWellGeneric.hpp:62 double new_gas_rate Definition: GasLiftSingleWellGeneric.hpp:80 double new_oil_rate Definition: GasLiftSingleWellGeneric.hpp:78 bool gas_is_limited Definition: GasLiftSingleWellGeneric.hpp:81 double new_water_rate Definition: GasLiftSingleWellGeneric.hpp:82 Definition: GasLiftSingleWellGeneric.hpp:166 bool water_is_limited Definition: GasLiftSingleWellGeneric.hpp:206 std::optional< Rate > oil_limiting_target Definition: GasLiftSingleWellGeneric.hpp:207 LimitType limit_type Definition: GasLiftSingleWellGeneric.hpp:203 LimitedRates(const BasicRates &rates, bool oil_is_limited_, bool gas_is_limited_, bool water_is_limited_) Definition: GasLiftSingleWellGeneric.hpp:185 LimitType Definition: GasLiftSingleWellGeneric.hpp:167 LimitedRates(double oil_, double gas_, double 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:168 bool limited() const Definition: GasLiftSingleWellGeneric.hpp:198 bool gas_is_limited Definition: GasLiftSingleWellGeneric.hpp:205 bool oil_is_limited Definition: GasLiftSingleWellGeneric.hpp:204 std::optional< Rate > water_limiting_target Definition: GasLiftSingleWellGeneric.hpp:208 Definition: GasLiftSingleWellGeneric.hpp:216 void debugShowIterationInfo(double alq) double getBhpWithLimit() GasLiftSingleWellGeneric & parent Definition: GasLiftSingleWellGeneric.hpp:225 bool increase Definition: GasLiftSingleWellGeneric.hpp:226 bool checkAlqOutsideLimits(double alq, double oil_rate) bool checkEcoGradient(double gradient) OptimizeState(GasLiftSingleWellGeneric &parent_, bool increase_) Definition: GasLiftSingleWellGeneric.hpp:217 std::pair< std::optional< double >, bool > addOrSubtractAlqIncrement(double alq) double calcEcoGradient(double oil_rate, double new_oil_rate, double gas_rate, double new_gas_rate) bool checkRatesViolated(const LimitedRates &rates) const bool checkOilRateExceedsTarget(double oil_rate) double bhp Definition: GasLiftSingleWellGeneric.hpp:229 void warn_(std::string msg) Definition: GasLiftSingleWellGeneric.hpp:240 bool stop_iteration Definition: GasLiftSingleWellGeneric.hpp:228 Definition: BlackoilPhases.hpp:46 |