20 #ifndef UDQ_DEFINE_HPP 21 #define UDQ_DEFINE_HPP 23 #include <opm/input/eclipse/Schedule/UDQ/UDQContext.hpp> 24 #include <opm/input/eclipse/Schedule/UDQ/UDQEnums.hpp> 25 #include <opm/input/eclipse/Schedule/UDQ/UDQFunctionTable.hpp> 26 #include <opm/input/eclipse/Schedule/UDQ/UDQSet.hpp> 27 #include <opm/input/eclipse/Schedule/UDQ/UDQToken.hpp> 29 #include <opm/common/OpmLog/KeywordLocation.hpp> 36 #include <unordered_set> 56 const std::string& keyword,
57 std::size_t report_step,
59 const std::vector<std::string>& deck_data);
62 const std::string& keyword,
63 std::size_t report_step,
65 const std::vector<std::string>& deck_data,
71 const std::string& keyword,
72 std::size_t report_step,
74 const std::vector<std::string>& deck_data,
78 static UDQDefine serializationTestObject();
88 const std::string& keyword()
const;
89 const std::string& input_string()
const {
return this->input_string_; }
91 UDQVarType var_type()
const;
92 std::set<UDQTokenType> func_tokens()
const;
93 void required_summary(std::unordered_set<std::string>& summary_keys)
const;
94 void update_status(UDQUpdate update_status, std::size_t report_step);
95 std::pair<UDQUpdate, std::size_t> status()
const;
96 const std::vector<Opm::UDQToken>& tokens()
const;
97 void clear_next()
const 99 if (this->m_update_status == UDQUpdate::NEXT) {
100 this->m_update_status = UDQUpdate::OFF;
121 if (this->m_update_status == UDQUpdate::NEXT) {
122 this->m_update_status = UDQUpdate::OFF;
130 bool operator==(
const UDQDefine& data)
const;
132 template <
class Serializer>
135 serializer(m_keyword);
136 serializer(input_string_);
137 serializer(m_tokens);
139 serializer(m_var_type);
140 serializer(m_location);
141 serializer(m_update_status);
142 serializer(m_report_step);
146 std::string m_keyword{};
147 std::string input_string_{};
148 std::vector<Opm::UDQToken> m_tokens{};
149 std::shared_ptr<UDQASTNode> ast{};
150 UDQVarType m_var_type{UDQVarType::NONE};
151 KeywordLocation m_location{};
152 std::size_t m_report_step{};
153 mutable UDQUpdate m_update_status{UDQUpdate::NEXT};
155 UDQSet scatter_scalar_value(UDQSet&& res,
const UDQContext& context)
const;
156 UDQSet scatter_scalar_well_value(
const UDQContext& context,
const std::optional<double>&
value)
const;
157 UDQSet scatter_scalar_group_value(
const UDQContext& context,
const std::optional<double>&
value)
const;
158 UDQSet scatter_scalar_segment_value(
const UDQContext& context,
const std::optional<double>&
value)
const;
163 #endif // UDQ_DEFINE_HPP Definition: UDQDefine.hpp:50
Definition: KeywordLocation.hpp:27
Definition: UDQContext.hpp:49
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30
Definition: UDQSet.hpp:186
UDQ::RequisiteEvaluationObjects requiredObjects() const
All specific objects required for the defining expression.
Definition: UDQDefine.cpp:317
Definition: UDQParams.hpp:30
Collection of specific Schedule objects named in a UDQ definition.
Definition: UDQEnums.hpp:205
Control parser behaviour in failure conditions.
Definition: ParseContext.hpp:114
bool clear_update_next_for_new_report_step()
Clear "UPDATE NEXT" flag.
Definition: UDQDefine.hpp:119
Class for (de-)serializing.
Definition: Serializer.hpp:94
Definition: ErrorGuard.hpp:30