26#include <unordered_map>
29#include <opm/input/eclipse/Schedule/UDQ/UDQEnums.hpp>
37 explicit UDQScalar(
const std::string& wgname);
40 void operator+=(
double rhs);
42 void operator*=(
double rhs);
44 void operator/=(
double rhs);
46 void operator-=(
double rhs);
48 operator bool()
const;
49 void assign(
const std::optional<double>& value);
50 void assign(
double value);
53 const std::optional<double>& value()
const;
54 const std::string& wgname()
const;
55 bool operator==(
const UDQScalar& other)
const;
58 std::optional<double> m_value;
65 UDQSet(
const std::string& name, UDQVarType var_type);
66 UDQSet(
const std::string& name, UDQVarType var_type,
const std::vector<std::string>& wgnames);
67 UDQSet(
const std::string& name, UDQVarType var_type, std::size_t size);
68 UDQSet(
const std::string& name, std::size_t size);
69 static UDQSet scalar(
const std::string& name,
const std::optional<double>& scalar_value);
70 static UDQSet scalar(
const std::string& name,
double value);
71 static UDQSet empty(
const std::string& name);
72 static UDQSet wells(
const std::string& name,
const std::vector<std::string>& wells);
73 static UDQSet wells(
const std::string& name,
const std::vector<std::string>& wells,
double scalar_value);
74 static UDQSet groups(
const std::string& name,
const std::vector<std::string>& groups);
75 static UDQSet groups(
const std::string& name,
const std::vector<std::string>& groups,
double scalar_value);
76 static UDQSet field(
const std::string& name,
double scalar_value);
78 void assign(
const std::optional<double>& value);
79 void assign(
const std::string& wgname,
const std::optional<double>& value);
81 void assign(
double value);
82 void assign(std::size_t index,
double value);
83 void assign(
const std::string& wgname,
double value);
85 bool has(
const std::string& name)
const;
86 std::size_t size()
const;
87 void operator+=(
const UDQSet& rhs);
88 void operator+=(
double rhs);
89 void operator-=(
const UDQSet& rhs);
90 void operator-=(
double rhs);
91 void operator*=(
const UDQSet& rhs);
92 void operator*=(
double rhs);
93 void operator/=(
const UDQSet& rhs);
94 void operator/=(
double rhs);
96 const UDQScalar& operator[](std::size_t index)
const;
97 const UDQScalar& operator[](
const std::string& wgname)
const;
98 std::vector<UDQScalar>::const_iterator begin()
const;
99 std::vector<UDQScalar>::const_iterator end()
const;
101 std::vector<std::string> wgnames()
const;
102 std::vector<double> defined_values()
const;
103 std::size_t defined_size()
const;
104 const std::string& name()
const;
105 void name(
const std::string& name);
106 UDQVarType var_type()
const;
107 bool operator==(
const UDQSet& other)
const;
112 UDQVarType m_var_type = UDQVarType::NONE;
113 std::vector<UDQScalar> values;
Definition: UDQSet.hpp:33
Definition: UDQSet.hpp:63
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition: Exceptions.hpp:29