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/UDQSet.hpp>
30#include <unordered_set>
39 UDQVarType var_type = UDQVarType::NONE;
44 UDQASTNode(UDQTokenType type_arg,
const std::variant<std::string, double>& value_arg,
const UDQASTNode& left_arg);
46 UDQASTNode(UDQTokenType type_arg,
const std::variant<std::string, double>& value_arg);
47 UDQASTNode(UDQTokenType type_arg,
const std::variant<std::string, double>& value_arg,
const std::vector<std::string>& selector);
53 std::set<UDQTokenType> func_tokens()
const;
58 void scale(
double sign_factor);
63 void required_summary(std::unordered_set<std::string>& summary_keys)
const;
65 template <
class Serializer>
80 std::variant<std::string, double> value;
82 std::vector<std::string> selector;
83 std::shared_ptr<UDQASTNode> left;
84 std::shared_ptr<UDQASTNode> right;
88 UDQSet eval_well_expression(
const std::string& string_value,
91 UDQSet eval_group_expression(
const std::string& string_value,
94 UDQSet eval_scalar_function(
const UDQVarType target_type,
97 UDQSet eval_elemental_unary_function(
const UDQVarType target_type,
100 UDQSet eval_binary_function(
const UDQVarType target_type,
103 UDQSet eval_number(
const UDQVarType target_type,
106 void func_tokens(std::set<UDQTokenType>& tokens)
const;
Class for (de-)serializing.
Definition: Serializer.hpp:84
Definition: UDQASTNode.hpp:37
Definition: UDQContext.hpp:40
Definition: UDQSet.hpp:182
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:30