20 #ifndef UDQASTNODE_HPP
21 #define UDQASTNODE_HPP
26 #include <unordered_set>
30 #include <opm/input/eclipse/Schedule/UDQ/UDQSet.hpp>
31 #include <opm/input/eclipse/Schedule/UDQ/UDQContext.hpp>
32 #include <opm/input/eclipse/Schedule/UDQ/UDQEnums.hpp>
43 UDQASTNode(UDQTokenType type_arg,
const std::variant<std::string, double>& value_arg,
const UDQASTNode& left_arg);
45 UDQASTNode(UDQTokenType type_arg,
const std::variant<std::string, double>& value_arg);
46 UDQASTNode(UDQTokenType type_arg,
const std::variant<std::string, double>& value_arg,
const std::vector<std::string>& selector);
53 UDQVarType var_type = UDQVarType::NONE;
54 std::set<UDQTokenType> func_tokens()
const;
60 void scale(
double sign_factor);
63 void required_summary(std::unordered_set<std::string>& summary_keys)
const;
65 template<
class Serializer>
79 void func_tokens(std::set<UDQTokenType>& tokens)
const;
81 std::variant<std::string, double> value;
83 std::vector<std::string> selector;
84 std::shared_ptr<UDQASTNode> left;
85 std::shared_ptr<UDQASTNode> right;
Class for (de-)serializing.
Definition: Serializer.hpp:75
Definition: UDQASTNode.hpp:38
Definition: UDQContext.hpp:39
Definition: UDQSet.hpp:63
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29