|
WellInterfaceGeneric.hpp
Go to the documentation of this file.
180 // Note:: for multisegment wells, bhp is actually segment pressure in practice based on observation
182 Scalar getInjMult(const int local_perf_index, const Scalar bhp, const Scalar perf_pres, DeferredLogger& dlogger) const;
484 // TODO: with energy conservation joins, we probably should change this to be num_mass_conservation_quantities_
Definition: DeferredLogger.hpp:57 Class encapsulating some information about parallel wells. Definition: ParallelWellInfo.hpp:217 Definition: GasLiftGroupInfo.hpp:38 Definition: SingleWellState.hpp:44 Definition: VFPProperties.hpp:40 RAII helper marking that a well potential calculation is in progress. Definition: WellInterfaceGeneric.hpp:352 ~PotentialCalculationScope() Definition: WellInterfaceGeneric.hpp:359 PotentialCalculationScope(const WellInterfaceGeneric &well) Definition: WellInterfaceGeneric.hpp:354 Definition: WellInterfaceGeneric.hpp:331 SolvePartTimer(const WellInterfaceGeneric &well, double &target) Definition: WellInterfaceGeneric.hpp:333 ~SolvePartTimer() Definition: WellInterfaceGeneric.hpp:338 Definition: WellInterfaceGeneric.hpp:302 WellSolveScope(const WellInterfaceGeneric &well, const int &iterations) Definition: WellInterfaceGeneric.hpp:304 ~WellSolveScope() Definition: WellInterfaceGeneric.hpp:310 Definition: WellInterfaceGeneric.hpp:59 Scalar wfoam_() const int pvtRegionIdx() const Definition: WellInterfaceGeneric.hpp:136 WellInterfaceGeneric(const Well &well, const ParallelWellInfo< Scalar > ¶llel_well_info, const int time_step, const ModelParameters ¶m, const int pvtRegionIdx, const int num_conservation_quantities, const int num_phases, const int index_of_well, const PhaseUsageInfo< IndexTraits > &phase_usage, const std::vector< PerforationData< Scalar > > &perf_data) void updateGroupTargetFallbackFlag(WellState< Scalar, IndexTraits > &well_state, const std::vector< Scalar > &scaled_well_fractions, DeferredLogger &deferred_logger) const const std::map< int, std::vector< int > > & getCompletions() const Definition: WellInterfaceGeneric.hpp:166 const int num_conservation_quantities_ Definition: WellInterfaceGeneric.hpp:486 bool isVFPActive(DeferredLogger &deferred_logger) const void initCompletions() const WellSolveStats & solveStats() const Definition: WellInterfaceGeneric.hpp:293 bool useVfpExplicit() const std::vector< int > saturation_table_number_ Definition: WellInterfaceGeneric.hpp:551 bool isOperableAndSolvable() const void addFracturePerforations(const std::vector< RuntimePerforation > &perfs) std::vector< int > well_cells_ Definition: WellInterfaceGeneric.hpp:506 void updatePerforatedCell(std::vector< bool > &is_cell_perforated) std::optional< Scalar > dynamic_thp_limit_ Definition: WellInterfaceGeneric.hpp:557 std::vector< Scalar > perf_depth_ Definition: WellInterfaceGeneric.hpp:519 virtual Scalar totalReservoirVoidageRate(const std::vector< Scalar > &surface_rates) const =0 The total reservoir voidage rate for the given surface phase rates (or potentials),... const GuideRate * guideRate() const Definition: WellInterfaceGeneric.hpp:138 std::vector< Scalar > prev_inj_multiplier_ Definition: WellInterfaceGeneric.hpp:564 Well::Status wellStatus() Definition: WellInterfaceGeneric.hpp:130 int polymerWaterTable_() const Scalar wsolvent() const int number_of_phases_ Definition: WellInterfaceGeneric.hpp:489 void setWsolvent(const Scalar wsolvent) std::vector< Scalar > & perfDepth() Definition: WellInterfaceGeneric.hpp:156 const PhaseUsageInfo< IndexTraits > & phase_usage_ Definition: WellInterfaceGeneric.hpp:494 Scalar wpolymer_() const bool in_well_solve_ Definition: WellInterfaceGeneric.hpp:588 const int current_step_ Definition: WellInterfaceGeneric.hpp:477 std::vector< Scalar > ipr_a_ Definition: WellInterfaceGeneric.hpp:502 const std::vector< Scalar > & perfDepth() const Definition: WellInterfaceGeneric.hpp:154 bool wellUnderGroupControl(const SingleWellState< Scalar, IndexTraits > &ws) const const Well & wellEcl() const const ParallelWellInfo< Scalar > & parallel_well_info_ Definition: WellInterfaceGeneric.hpp:476 Scalar wmicrobes_() const const PhaseUsageInfo< IndexTraits > & phaseUsage() const void resetSolveStats() const Definition: WellInterfaceGeneric.hpp:294 int polymerInjTable_() const std::vector< Scalar > ipr_b_ Definition: WellInterfaceGeneric.hpp:503 const int pvtRegionIdx_ Definition: WellInterfaceGeneric.hpp:482 std::vector< Scalar > inj_multiplier_damp_factor_ Definition: WellInterfaceGeneric.hpp:569 bool underPredictionMode() const Returns true if the well is currently in prediction mode (i.e. not history mode). const GuideRate * guide_rate_ Definition: WellInterfaceGeneric.hpp:576 OperabilityStatus operability_status_ Definition: WellInterfaceGeneric.hpp:472 void resetWellOperability() bool wellUnderZeroRateTargetIndividual(const SummaryState &summary_state, const WellState< Scalar, IndexTraits > &well_state) const Well::Status wellStatus_ Definition: WellInterfaceGeneric.hpp:553 int numLocalPerfs() const Definition: WellInterfaceGeneric.hpp:144 Scalar getTHPConstraint(const SummaryState &summaryState) const bool isPressureControlled(const WellStateType &well_state) const void updateWellTestState(const SingleWellState< Scalar, IndexTraits > &ws, const double &simulationTime, const bool &writeMessageToOPMLog, const bool during_well_test, const bool zero_group_target, WellTestState &wellTestState, const UnitSystem &unit_system, const std::time_t start_time, DeferredLogger &deferred_logger, std::string *closure_reason=nullptr) const void setDynamicThpLimit(const Scalar thp_limit) void updateInjMult(std::vector< Scalar > &inj_multipliers, DeferredLogger &deferred_logger) const void updateFilterCakeMultipliers(const std::vector< Scalar > &inj_fc_multiplier) Update filter cake multipliers. Definition: WellInterfaceGeneric.hpp:240 Scalar well_efficiency_factor_ Definition: WellInterfaceGeneric.hpp:574 void closeCompletions(const WellTestState &wellTestState) void checkNegativeWellPotentials(std::vector< Scalar > &well_potentials, const bool checkOperability, DeferredLogger &deferred_logger) void setPrevSurfaceRates(WellStateType &well_state, const WellStateType &prev_well_state) const void addPerforations(const std::vector< RuntimePerforation > &perfs) std::vector< Scalar > inj_multiplier_previter_ Definition: WellInterfaceGeneric.hpp:567 std::vector< Scalar > inj_fc_multiplier_ Definition: WellInterfaceGeneric.hpp:572 const std::vector< WellIndexFracture > & wellIndexFracture() const Definition: WellInterfaceGeneric.hpp:276 virtual Scalar connectionDensity(const int globalConnIdx, const int openConnIdx) const =0 Scalar getInjMult(const int local_perf_index, const Scalar bhp, const Scalar perf_pres, DeferredLogger &dlogger) const void adaptRatesForVFP(std::vector< Scalar > &rates) const void onlyKeepBHPandTHPcontrols(const SummaryState &summary_state, WellStateType &well_state, Well::InjectionControls &inj_controls, Well::ProductionControls &prod_controls) const bool changedToOpenThisStep() const Definition: WellInterfaceGeneric.hpp:190 Scalar rsRvInj() const void setGuideRate(const GuideRate *guide_rate_arg) WellSolveScope solveScope(const int &iterations) const Definition: WellInterfaceGeneric.hpp:368 const std::vector< PerforationData< Scalar > > * perf_data_ Definition: WellInterfaceGeneric.hpp:496 int numConservationQuantities() const Definition: WellInterfaceGeneric.hpp:140 std::shared_ptr< WellSolveStats > solve_stats_ Definition: WellInterfaceGeneric.hpp:584 const VFPProperties< Scalar, IndexTraits > * vfpProperties() const Definition: WellInterfaceGeneric.hpp:150 std::vector< Scalar > & wellIndex() Mutable per-perforation well indices (connection transmissibility factors). Adjoint hook: the dJ/dper... Definition: WellInterfaceGeneric.hpp:164 Scalar getALQ(const WellStateType &well_state) const Scalar wellEfficiencyFactor() const Definition: WellInterfaceGeneric.hpp:237 SolvePartTimer solveLinearSolveTimer() const Definition: WellInterfaceGeneric.hpp:374 Well::ProductionControls productionControlsWithWeldraw(const SummaryState &summary_state, const SingleWellState< Scalar, IndexTraits > &ws) const int polymerTable_() const std::vector< std::string > well_control_log_ Definition: WellInterfaceGeneric.hpp:578 void resetDampening() Definition: WellInterfaceGeneric.hpp:412 int indexOfWell() const Index of well in the wells struct and wellState. std::vector< WellIndexFracture > well_index_fracture_ Definition: WellInterfaceGeneric.hpp:513 virtual std::vector< Scalar > getPrimaryVars() const Definition: WellInterfaceGeneric.hpp:247 const std::vector< PerforationData< Scalar > > & perforationData() const Get the perforations of the well. std::vector< Scalar > perf_length_ Definition: WellInterfaceGeneric.hpp:525 const std::vector< int > & cells() const Well cells. Definition: WellInterfaceGeneric.hpp:91 Scalar woxygen_() const int number_of_local_perforations_ Definition: WellInterfaceGeneric.hpp:516 std::vector< Scalar > well_index_ Definition: WellInterfaceGeneric.hpp:509 virtual int setPrimaryVars(typename std::vector< Scalar >::const_iterator) Definition: WellInterfaceGeneric.hpp:252 void setVFPProperties(const VFPProperties< Scalar, IndexTraits > *vfp_properties_arg) const ModelParameters & param_ Definition: WellInterfaceGeneric.hpp:478 std::pair< bool, bool > computeWellPotentials(std::vector< Scalar > &well_potentials, const WellStateType &well_state) bool computing_well_potentials_ Definition: WellInterfaceGeneric.hpp:586 SolvePartTimer solveAssembleTimer() const Definition: WellInterfaceGeneric.hpp:371 bool changed_to_open_this_step_ Definition: WellInterfaceGeneric.hpp:580 static void applyWeldrawRateLimit(const Well &well_ecl, const std::optional< Scalar > &weldraw_max_rate, Well::ProductionControls &controls) void setWellEfficiencyFactor(const Scalar efficiency_factor) PotentialCalculationScope potentialCalculationScope() const Definition: WellInterfaceGeneric.hpp:377 const VFPProperties< Scalar, IndexTraits > * vfp_properties_ Definition: WellInterfaceGeneric.hpp:575 virtual ~WellInterfaceGeneric()=default void initInjMult(const std::vector< Scalar > &max_inj_mult) Scalar wurea_() const std::map< int, std::vector< int > > completions_ Definition: WellInterfaceGeneric.hpp:545 void setDynamicThpLimit(const std::optional< Scalar > thp_limit) void setRepRadiusPerfLength() std::vector< Scalar > perf_rep_radius_ Definition: WellInterfaceGeneric.hpp:522 void reportWellSwitching(const SingleWellState< Scalar, IndexTraits > &ws, DeferredLogger &deferred_logger) const std::optional< Scalar > getDynamicThpLimit() const const std::vector< Scalar > & wellIndex() const Definition: WellInterfaceGeneric.hpp:158 bool wellHasTHPConstraints(const SummaryState &summaryState) const Returns true if the well has one or more THP limits/constraints. std::vector< Scalar > bore_diameters_ Definition: WellInterfaceGeneric.hpp:528 bool wellIsStopped() const Definition: WellInterfaceGeneric.hpp:132 Scalar wsalt_() const bool thpLimitViolatedButNotSwitched() const Well & wellEcl() bool getAllowCrossFlow() const std::vector< Scalar > inj_multiplier_ Definition: WellInterfaceGeneric.hpp:560 int currentStep() const Definition: WellInterfaceGeneric.hpp:134 const ParallelWellInfo< Scalar > & parallelWellInfo() const Definition: WellInterfaceGeneric.hpp:152 Definition: WellState.hpp:68 Definition: blackoilbioeffectsmodules.hh:45 Solver parameters for the NonlinearSystemBlackOilReservoir. Definition: BlackoilModelParameters.hpp:207 Static data associated with a well perforation. Definition: PerforationData.hpp:30 Definition: WellInterfaceGeneric.hpp:423 void resetOperability() Definition: WellInterfaceGeneric.hpp:443 bool thp_limit_violated_but_not_switched Definition: WellInterfaceGeneric.hpp:467 bool can_obtain_bhp_with_thp_limit Definition: WellInterfaceGeneric.hpp:459 bool has_negative_potentials Definition: WellInterfaceGeneric.hpp:465 bool isOperableUnderTHPLimit() const Definition: WellInterfaceGeneric.hpp:438 bool obey_bhp_limit_with_thp_limit Definition: WellInterfaceGeneric.hpp:461 bool solvable Definition: WellInterfaceGeneric.hpp:463 bool operable_under_only_bhp_limit Definition: WellInterfaceGeneric.hpp:454 bool use_vfpexplicit Definition: WellInterfaceGeneric.hpp:469 bool isOperableUnderBHPLimit() const Definition: WellInterfaceGeneric.hpp:433 bool obey_thp_limit_under_bhp_limit Definition: WellInterfaceGeneric.hpp:457 bool isOperableAndSolvable() const Definition: WellInterfaceGeneric.hpp:424 Definition: WellInterfaceGeneric.hpp:284 unsigned int iterations well iterations in normal solves Definition: WellInterfaceGeneric.hpp:289 double potential_solve_time time used by well potential solves Definition: WellInterfaceGeneric.hpp:286 double assemble_time assembly time in the well solves Definition: WellInterfaceGeneric.hpp:287 double solve_time time used by normal well solves Definition: WellInterfaceGeneric.hpp:285 double linear_solve_time linear solve time in the well solves Definition: WellInterfaceGeneric.hpp:288 unsigned int potential_iterations well iterations in potential solves Definition: WellInterfaceGeneric.hpp:290 |