WellCollection.hpp
Go to the documentation of this file.
146 // It is considered converged if eitehr the group targets are matched or the group targets are not matched while the wells are
148 // It is considered not converged if the group targets are not matched while some of the wells are still running under group control
149 // The strategy may need to be adjusted when more complicated multi-layered group control situation applied, not sure about thatyet.
Definition: WellCollection.hpp:36 WellNode & findWellNode(const std::string &name) const void addChild(std::shared_ptr< WellsGroupInterface > &child_node) Adds the node to the collection (as a root node) void addChild(std::shared_ptr< WellsGroupInterface > &child_node, const std::string &parent) WellsGroupInterface * findNode(const std::string &name) void addGroup(const Group &groupChild, std::string parent_name, size_t timeStep, const PhaseUsage &phaseUsage) const std::vector< WellNode * > & getLeafNodes() const void applyGroupControls() Applies all group controls (injection and production) const WellsGroupInterface * findNode(const std::string &name) const bool groupTargetConverged(const std::vector< double > &well_rates) const Whether the group target is converged. void setWellsPointer(Wells *wells) Adds the well pointer to each leaf node (does not take ownership). bool groupControlApplied() const Whether we have applied the group control. void updateWellTargets(const std::vector< double > &well_rates) Updating the well targets based on the well rates. void setGuideRatesWithPotentials(const Wells *wells, const PhaseUsage &phase_usage, const std::vector< double > &well_potentials) const Setting the guide rates with well potentials. void addField(const Group &fieldGroup, size_t timeStep, const PhaseUsage &phaseUsage) bool requireWellPotentials() const void applyExplicitReinjectionControls(const std::vector< double > &well_reservoirrates_phase, const std::vector< double > &well_surfacerates_phase) void applyVREPGroupControls(const std::vector< double > &well_voidage_rates, const std::vector< double > &conversion_coeffs) applying VREP group control based on calculated voidage rates bool havingVREPGroups() const When we have VREP group, we need to update the targets based on the updated production voidage rates ... bool needUpdateProductionTargets() const Checking whehter need to update the targets for the production wells. bool conditionsMet(const std::vector< double > &well_bhp, const std::vector< double > &well_reservoirrates_phase, const std::vector< double > &well_surfacerates_phase) bool needUpdateInjectionTargets() const Checking whether need to update the targets for the injection wells. bool needUpdateWellTargets() const void addWell(const Well *wellChild, size_t timeStep, const PhaseUsage &phaseUsage) bool groupControlActive() const Whether we have active group control. Definition: WellsGroup.hpp:397 Definition: WellsGroup.hpp:55 Definition: AnisotropicEikonal.hpp:44 Definition: BlackoilPhases.hpp:44 Definition: wells.h:51 |