20 #ifndef GROUP_ECON_PRODUCTION_LIMITS_H 21 #define GROUP_ECON_PRODUCTION_LIMITS_H 23 #include <opm/input/eclipse/Deck/UDAValue.hpp> 39 enum class EconWorkover {
59 int maxOpenWells()
const;
60 bool operator==(
const GEconGroup& other)
const;
61 int reportStep()
const;
62 template<
class Serializer>
65 serializer(m_min_oil_rate);
66 serializer(m_min_gas_rate);
67 serializer(m_max_water_cut);
68 serializer(m_max_gas_oil_ratio);
69 serializer(m_max_water_gas_ratio);
70 serializer(m_workover);
71 serializer(m_end_run);
72 serializer(m_max_open_wells);
75 EconWorkover workover()
const;
83 EconWorkover m_workover{EconWorkover::NONE};
84 bool m_end_run{
false};
85 int m_max_open_wells{};
94 const double min_gas_rate,
95 const double max_water_cut,
96 const double max_gas_oil_ratio,
97 const double max_water_gas_ratio,
98 EconWorkover workover,
102 std::optional<double> minOilRate()
const;
103 std::optional<double> minGasRate()
const;
104 std::optional<double> maxWaterCut()
const;
105 std::optional<double> maxGasOilRatio()
const;
106 std::optional<double> maxWaterGasRatio()
const;
107 int maxOpenWells()
const;
108 EconWorkover workover()
const;
111 std::optional<double> m_min_oil_rate{};
112 std::optional<double> m_min_gas_rate{};
113 std::optional<double> m_max_water_cut{};
114 std::optional<double> m_max_gas_oil_ratio{};
115 std::optional<double> m_max_water_gas_ratio{};
116 EconWorkover m_workover{EconWorkover::NONE};
117 bool m_end_run{
false};
118 int m_max_open_wells{};
124 void add_group(
const int report_step,
const std::string &group_name,
const DeckRecord &record);
125 static EconWorkover econWorkoverFromString(
const std::string& string_value);
126 static std::string econWorkoverToString(EconWorkover workover);
127 const GEconGroup& get_group(
const std::string& gname)
const;
130 bool has_group(
const std::string& gname)
const;
133 template<
class Serializer>
134 void serializeOp(
Serializer& serializer)
const 136 serializer(m_groups);
139 std::size_t size()
const;
142 std::map<std::string, GEconGroup> m_groups;
Definition: GroupEconProductionLimits.hpp:36
Definition: UDAValue.hpp:31
Definition: Schedule.hpp:102
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
Definition: SummaryState.hpp:72
Definition: GroupEconProductionLimits.hpp:89
Definition: DeckRecord.hpp:33
Class for (de-)serializing.
Definition: Serializer.hpp:95
Definition: GroupEconProductionLimits.hpp:48