24 #include <unordered_map>
26 #include <unordered_set>
28 #include <opm/input/eclipse/Schedule/UDQ/UDQInput.hpp>
29 #include <opm/input/eclipse/Schedule/UDQ/UDQDefine.hpp>
30 #include <opm/input/eclipse/Schedule/UDQ/UDQAssign.hpp>
31 #include <opm/input/eclipse/Schedule/UDQ/UDQEnums.hpp>
32 #include <opm/input/eclipse/Schedule/UDQ/UDQParams.hpp>
33 #include <opm/input/eclipse/Schedule/UDQ/UDQFunctionTable.hpp>
34 #include <opm/input/eclipse/EclipseState/Util/OrderedMap.hpp>
35 #include <opm/input/eclipse/EclipseState/Util/IOrderSet.hpp>
43 class KeywordLocation;
57 static UDQConfig serializationTestObject();
59 const std::string& unit(
const std::string& key)
const;
60 bool has_unit(
const std::string& keyword)
const;
61 bool has_keyword(
const std::string& keyword)
const;
64 void add_unit(
const std::string& keyword,
const std::string& unit);
65 void add_update(
const std::string& keyword, std::size_t report_step,
const KeywordLocation& location,
const std::vector<std::string>& data);
66 void add_assign(
const std::string& quantity,
const std::vector<std::string>& selector,
double value, std::size_t report_step);
67 void add_assign(
const std::string& quantity,
const std::unordered_set<std::string>& selector,
double value, std::size_t report_step);
68 void add_define(
const std::string& quantity,
const KeywordLocation& location,
const std::vector<std::string>& expression, std::size_t report_step);
72 const UDQDefine& define(
const std::string& key)
const;
73 const UDQAssign& assign(
const std::string& key)
const;
74 std::vector<UDQDefine> definitions()
const;
75 std::vector<UDQDefine> definitions(UDQVarType var_type)
const;
76 std::vector<UDQInput> input()
const;
83 UDQInput operator[](
const std::string& keyword)
const;
84 UDQInput operator[](std::size_t insert_index)
const;
86 std::vector<UDQAssign> assignments()
const;
87 std::vector<UDQAssign> assignments(UDQVarType var_type)
const;
91 bool operator==(
const UDQConfig& config)
const;
92 void required_summary(std::unordered_set<std::string>& summary_keys)
const;
95 template<
class Serializer>
98 serializer(udq_params);
99 serializer(m_definitions);
100 serializer(m_assignments);
102 serializer(input_index);
103 serializer(type_count);
111 void add_node(
const std::string& quantity, UDQAction action);
112 UDQAction action_type(
const std::string& udq_key)
const;
114 void eval_define(std::size_t report_step,
UDQState& udq_state,
UDQContext& context)
const;
130 std::unordered_map<std::string, UDQDefine> m_definitions;
131 std::unordered_map<std::string, UDQAssign> m_assignments;
132 std::unordered_map<std::string, std::string> units;
136 std::map<UDQVarType, std::size_t> type_count;
Definition: DeckRecord.hpp:32
Definition: KeywordLocation.hpp:27
A map with iteration in the order of insertion.
Definition: OrderedMap.hpp:114
Class for (de-)serializing.
Definition: Serializer.hpp:75
bool isSerializing() const
Returns true if we are currently doing a serialization operation.
Definition: Serializer.hpp:174
Definition: SummaryState.hpp:69
Definition: UDQAssign.hpp:34
Definition: UDQConfig.hpp:51
Definition: UDQContext.hpp:39
Definition: UDQDefine.hpp:43
Definition: UDQFunctionTable.hpp:31
Definition: UDQParams.hpp:31
Definition: UDQState.hpp:36
Definition: WellMatcher.hpp:32
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29