23#include <opm/input/eclipse/Schedule/UDQ/UDQAssign.hpp>
24#include <opm/input/eclipse/Schedule/UDQ/UDQDefine.hpp>
25#include <opm/input/eclipse/Schedule/UDQ/UDQEnums.hpp>
26#include <opm/input/eclipse/Schedule/UDQ/UDQFunctionTable.hpp>
27#include <opm/input/eclipse/Schedule/UDQ/UDQInput.hpp>
28#include <opm/input/eclipse/Schedule/UDQ/UDQParams.hpp>
30#include <opm/input/eclipse/EclipseState/Util/OrderedMap.hpp>
31#include <opm/input/eclipse/EclipseState/Util/IOrderSet.hpp>
36#include <unordered_map>
37#include <unordered_set>
45 class KeywordLocation;
50namespace Opm {
namespace RestartIO {
63 static UDQConfig serializationTestObject();
65 const std::string& unit(
const std::string& key)
const;
66 bool has_unit(
const std::string& keyword)
const;
67 bool has_keyword(
const std::string& keyword)
const;
70 void add_unit(
const std::string& keyword,
const std::string& unit);
71 void add_update(
const std::string& keyword, std::size_t report_step,
const KeywordLocation& location,
const std::vector<std::string>& data);
72 void add_assign(
const std::string& quantity,
const std::vector<std::string>& selector,
double value, std::size_t report_step);
73 void add_assign(
const std::string& quantity,
const std::unordered_set<std::string>& selector,
double value, std::size_t report_step);
74 void add_define(
const std::string& quantity,
const KeywordLocation& location,
const std::vector<std::string>& expression, std::size_t report_step);
78 const UDQDefine& define(
const std::string& key)
const;
79 const UDQAssign& assign(
const std::string& key)
const;
80 std::vector<UDQDefine> definitions()
const;
81 std::vector<UDQDefine> definitions(UDQVarType var_type)
const;
82 std::vector<UDQInput> input()
const;
89 UDQInput operator[](
const std::string& keyword)
const;
90 UDQInput operator[](std::size_t insert_index)
const;
92 std::vector<UDQAssign> assignments()
const;
93 std::vector<UDQAssign> assignments(UDQVarType var_type)
const;
97 bool operator==(
const UDQConfig& config)
const;
98 void required_summary(std::unordered_set<std::string>& summary_keys)
const;
100 template<
class Serializer>
103 serializer(udq_params);
104 serializer(m_definitions);
105 serializer(m_assignments);
107 serializer(input_index);
108 serializer(type_count);
116 void add_node(
const std::string& quantity, UDQAction action);
117 UDQAction action_type(
const std::string& udq_key)
const;
119 void eval_define(std::size_t report_step,
UDQState& udq_state,
UDQContext& context)
const;
131 std::unordered_map<std::string, UDQDefine> m_definitions;
132 std::unordered_map<std::string, UDQAssign> m_assignments;
133 std::unordered_map<std::string, std::string> units;
137 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:84
bool isSerializing() const
Returns true if we are currently doing a serialization operation.
Definition: Serializer.hpp:183
Definition: SummaryState.hpp:68
Definition: UDQAssign.hpp:35
Definition: UDQConfig.hpp:57
Definition: UDQContext.hpp:40
Definition: UDQDefine.hpp:51
Definition: UDQFunctionTable.hpp:32
Definition: UDQParams.hpp:31
Definition: UDQState.hpp:38
Definition: WellMatcher.hpp:32
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30