50 static void setCmodeGroup(
const Group& group,
51 const Schedule& schedule,
52 const SummaryState& summaryState,
53 const int reportStepIdx,
56 static void accumulateGroupEfficiencyFactor(
const Group& group,
57 const Schedule& schedule,
58 const int reportStepIdx,
61 static Scalar sumWellSurfaceRates(
const Group& group,
62 const Schedule& schedule,
64 const int reportStepIdx,
69 static std::pair<std::optional<std::string>, Scalar>
71 const Schedule& schedule,
72 const int reportStepIdx,
73 const Group::ProductionCMode& offendedControl,
75 const Parallel::Communication& comm,
79 static Scalar sumWellResRates(
const Group& group,
80 const Schedule& schedule,
82 const int reportStepIdx,
86 static Scalar sumSolventRates(
const Group& group,
87 const Schedule& schedule,
89 const int reportStepIdx,
92 static void updateGroupTargetReduction(
const Group& group,
93 const Schedule& schedule,
94 const int reportStepIdx,
95 const bool isInjector,
97 const GuideRate& guide_rate,
100 std::vector<Scalar>& groupTargetReduction);
102 static void updateGuideRates(
const Group& group,
103 const Schedule& schedule,
104 const SummaryState& summary_state,
110 const Parallel::Communication& comm,
111 GuideRate* guide_rate,
112 std::vector<Scalar>& pot,
115 static void updateGuideRateForProductionGroups(
const Group& group,
116 const Schedule& schedule,
118 const int reportStepIdx,
119 const double& simTime,
122 const Parallel::Communication& comm,
123 GuideRate* guideRate,
124 std::vector<Scalar>& pot);
126 static void updateGuideRatesForWells(
const Schedule& schedule,
128 const int reportStepIdx,
129 const double& simTime,
131 const Parallel::Communication& comm,
132 GuideRate* guideRate);
134 static void updateGuideRatesForInjectionGroups(
const Group& group,
135 const Schedule& schedule,
136 const SummaryState& summaryState,
138 const int reportStepIdx,
141 GuideRate* guideRate,
144 static void updateVREPForGroups(
const Group& group,
145 const Schedule& schedule,
146 const int reportStepIdx,
150 template <
class RegionalValues>
151 static void updateGpMaintTargetForGroups(
const Group& group,
152 const Schedule& schedule,
153 const RegionalValues& regional_values,
154 const int reportStepIdx,
159 static void updateReservoirRatesInjectionGroups(
const Group& group,
160 const Schedule& schedule,
161 const int reportStepIdx,
165 static void updateSurfaceRatesInjectionGroups(
const Group& group,
166 const Schedule& schedule,
167 const int reportStepIdx,
171 static void updateWellRates(
const Group& group,
172 const Schedule& schedule,
173 const int reportStepIdx,
177 static void updateGroupProductionRates(
const Group& group,
178 const Schedule& schedule,
179 const int reportStepIdx,
183 static void updateWellRatesFromGroupTargetScale(
const Scalar scale,
185 const Schedule& schedule,
186 const int reportStepIdx,
191 static void updateREINForGroups(
const Group& group,
192 const Schedule& schedule,
193 const int reportStepIdx,
195 const SummaryState& st,
201 static std::map<std::string, Scalar>
202 computeNetworkPressures(
const Network::ExtNetwork& network,
206 const Schedule& schedule,
207 const int report_time_step);
209 static GuideRate::RateVector
212 const std::string& name);
214 static GuideRate::RateVector
217 const std::string& group_name);
219 static Scalar getGuideRate(
const std::string& name,
220 const Schedule& schedule,
223 const int reportStepIdx,
224 const GuideRate* guideRate,
225 const GuideRateModel::Target target,
228 static Scalar getGuideRateInj(
const std::string& name,
229 const Schedule& schedule,
232 const int reportStepIdx,
233 const GuideRate* guideRate,
234 const GuideRateModel::Target target,
235 const Phase& injectionPhase,
238 static int groupControlledWells(
const Schedule& schedule,
241 const int report_step,
242 const std::string& group_name,
243 const std::string& always_included_child,
244 const bool is_production_group,
245 const Phase injection_phase);
247 static std::pair<bool, Scalar>
248 checkGroupConstraintsInj(
const std::string& name,
249 const std::string& parent,
253 const int reportStepIdx,
254 const GuideRate* guideRate,
256 Phase injectionPhase,
258 const Scalar efficiencyFactor,
259 const Schedule& schedule,
260 const SummaryState& summaryState,
261 const std::vector<Scalar>& resv_coeff,
264 static std::vector<std::string>
265 groupChainTopBot(
const std::string& bottom,
266 const std::string& top,
267 const Schedule& schedule,
268 const int report_step);
270 static std::pair<bool, Scalar>
271 checkGroupConstraintsProd(
const std::string& name,
272 const std::string& parent,
276 const int reportStepIdx,
277 const GuideRate* guideRate,
280 const Scalar efficiencyFactor,
281 const Schedule& schedule,
282 const SummaryState& summaryState,
283 const std::vector<Scalar>& resv_coeff,
286 template <
class AverageRegionalPressureType>
287 static void setRegionAveragePressureCalculator(
const Group& group,
288 const Schedule& schedule,
289 const int reportStepIdx,
290 const FieldPropsManager& fp,
292 std::map<std::string, std::unique_ptr<AverageRegionalPressureType>>& regionalAveragePressureCalculator);
static std::pair< std::optional< std::string >, Scalar > worstOffendingWell(const Group &group, const Schedule &schedule, const int reportStepIdx, const Group::ProductionCMode &offendedControl, const PhaseUsage &pu, const Parallel::Communication &comm, const WellState< Scalar > &wellState, DeferredLogger &deferred_logger)
Returns the name of the worst offending well and its fraction (i.e. violated_phase / preferred_phase)
Definition WellGroupHelpers.cpp:1505