24#ifndef OPM_WELLINTERFACE_EVAL_HEADER_INCLUDED
25#define OPM_WELLINTERFACE_EVAL_HEADER_INCLUDED
27#include <opm/core/props/BlackoilPhases.hpp>
29#include <opm/input/eclipse/Schedule/ScheduleTypes.hpp>
30#include <opm/input/eclipse/Schedule/Well/Well.hpp>
42template<
class Flu
idSystem>
class WellInterfaceFluidSystem;
45template<
class Flu
idSystem>
47 static constexpr int Water = BlackoilPhases::Aqua;
48 static constexpr int Oil = BlackoilPhases::Liquid;
49 static constexpr int Gas = BlackoilPhases::Vapour;
52 template <
class EvalWell>
53 EvalWell calculateBhpFromThp(
const WellState& well_state,
54 const std::vector<EvalWell>& rates,
56 const SummaryState& summaryState,
59 template<
class EvalWell>
60 void getGroupInjectionControl(
const Group& group,
63 const Schedule& schedule,
64 const SummaryState& summaryState,
65 const InjectorType& injectorType,
67 const EvalWell& injection_rate,
69 double efficiencyFactor,
73 template<
class EvalWell>
74 void getGroupProductionControl(
const Group& group,
77 const Schedule& schedule,
78 const SummaryState& summaryState,
80 const std::vector<EvalWell>& rates,
82 double efficiencyFactor)
const;
84 template<
class EvalWell,
class BhpFromThpFunc>
85 void assembleControlEqProd(
const WellState& well_state,
87 const Schedule& schedule,
88 const SummaryState& summaryState,
89 const Well::ProductionControls& controls,
91 const std::vector<EvalWell>& rates,
92 BhpFromThpFunc bhp_from_thp,
96 std::function<EvalWell()> eval = [&bhp_from_thp]() {
return bhp_from_thp(); };
97 assembleControlEqProd_(well_state,
109 template<
class EvalWell>
110 void assembleControlEqProd_(
const WellState& well_state,
112 const Schedule& schedule,
113 const SummaryState& summaryState,
114 const Well::ProductionControls& controls,
116 const std::vector<EvalWell>& rates,
117 const std::function<EvalWell()>& bhp_from_thp,
118 EvalWell& control_eq,
121 template<
class EvalWell,
class BhpFromThpFunc>
122 void assembleControlEqInj(
const WellState& well_state,
124 const Schedule& schedule,
125 const SummaryState& summaryState,
126 const Well::InjectionControls& controls,
128 const EvalWell& injection_rate,
129 BhpFromThpFunc bhp_from_thp,
130 EvalWell& control_eq,
133 std::function<EvalWell()> eval = [&bhp_from_thp]() {
return bhp_from_thp(); };
134 assembleControlEqInj_(well_state,
146 template<
class EvalWell>
147 void assembleControlEqInj_(
const WellState& well_state,
149 const Schedule& schedule,
150 const SummaryState& summaryState,
151 const Well::InjectionControls& controls,
153 const EvalWell& injection_rate,
154 const std::function<EvalWell()>& bhp_from_thp,
155 EvalWell& control_eq,
Definition: DeferredLogger.hpp:57
Definition: GroupState.hpp:34
Definition: WellInterfaceEval.hpp:46
Definition: WellInterfaceFluidSystem.hpp:46
The state of a set of wells, tailored for use by the fully implicit blackoil simulator.
Definition: WellState.hpp:56
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27