20 #ifndef GROUP_ECON_PRODUCTION_LIMITS_H 21 #define GROUP_ECON_PRODUCTION_LIMITS_H 23 #include <opm/input/eclipse/Deck/UDAValue.hpp> 38 enum class EconWorkover {
58 int maxOpenWells()
const;
59 bool operator==(
const GEconGroup& other)
const;
60 int reportStep()
const;
61 template<
class Serializer>
64 serializer(m_min_oil_rate);
65 serializer(m_min_gas_rate);
66 serializer(m_max_water_cut);
67 serializer(m_max_gas_oil_ratio);
68 serializer(m_max_water_gas_ratio);
69 serializer(m_workover);
70 serializer(m_end_run);
71 serializer(m_max_open_wells);
74 EconWorkover workover()
const;
82 EconWorkover m_workover{EconWorkover::NONE};
83 bool m_end_run{
false};
84 int m_max_open_wells{};
93 const double min_gas_rate,
94 const double max_water_cut,
95 const double max_gas_oil_ratio,
96 const double max_water_gas_ratio,
97 EconWorkover workover,
101 std::optional<double> minOilRate()
const;
102 std::optional<double> minGasRate()
const;
103 std::optional<double> maxWaterCut()
const;
104 std::optional<double> maxGasOilRatio()
const;
105 std::optional<double> maxWaterGasRatio()
const;
106 int maxOpenWells()
const;
107 EconWorkover workover()
const;
110 std::optional<double> m_min_oil_rate{};
111 std::optional<double> m_min_gas_rate{};
112 std::optional<double> m_max_water_cut{};
113 std::optional<double> m_max_gas_oil_ratio{};
114 std::optional<double> m_max_water_gas_ratio{};
115 EconWorkover m_workover{EconWorkover::NONE};
116 bool m_end_run{
false};
117 int m_max_open_wells{};
123 void add_group(
const int report_step,
const std::string &group_name,
const DeckRecord &record);
124 static EconWorkover econWorkoverFromString(
const std::string& string_value);
125 const GEconGroup& get_group(
const std::string& gname)
const;
128 bool has_group(
const std::string& gname)
const;
131 template<
class Serializer>
132 void serializeOp(
Serializer& serializer)
const 134 serializer(m_groups);
140 std::map<std::string, GEconGroup> m_groups;
Definition: GroupEconProductionLimits.hpp:35
Definition: UDAValue.hpp:31
Definition: Schedule.hpp:100
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:88
Definition: DeckRecord.hpp:32
Class for (de-)serializing.
Definition: Serializer.hpp:94
Definition: GroupEconProductionLimits.hpp:47