70 typedef std::unordered_map<std::string, double>::const_iterator const_iterator;
85 void set(
const std::string& key,
double value);
87 bool erase(
const std::string& key);
88 bool erase_well_var(
const std::string& well,
const std::string& var);
89 bool erase_group_var(
const std::string& group,
const std::string& var);
91 bool has(
const std::string& key)
const;
92 bool has_well_var(
const std::string& well,
const std::string& var)
const;
93 bool has_well_var(
const std::string& var)
const;
94 bool has_group_var(
const std::string& group,
const std::string& var)
const;
95 bool has_group_var(
const std::string& var)
const;
96 bool has_conn_var(
const std::string& well,
const std::string& var, std::size_t global_index)
const;
97 bool has_segment_var(
const std::string& well,
const std::string& var, std::size_t segment)
const;
98 bool has_region_var(
const std::string& regSet,
const std::string& var, std::size_t region)
const;
100 void update(
const std::string& key,
double value);
101 void update_well_var(
const std::string& well,
const std::string& var,
double value);
102 void update_group_var(
const std::string& group,
const std::string& var,
double value);
103 void update_elapsed(
double delta);
104 void update_udq(
const UDQSet& udq_set,
double undefined_value);
105 void update_conn_var(
const std::string& well,
const std::string& var, std::size_t global_index,
double value);
106 void update_segment_var(
const std::string& well,
const std::string& var, std::size_t segment,
double value);
107 void update_region_var(
const std::string& regSet,
const std::string& var, std::size_t region,
double value);
109 double get(
const std::string&)
const;
110 double get(
const std::string&,
double)
const;
111 double get_elapsed()
const;
112 double get_well_var(
const std::string& well,
const std::string& var)
const;
113 double get_group_var(
const std::string& group,
const std::string& var)
const;
114 double get_conn_var(
const std::string& conn,
const std::string& var, std::size_t global_index)
const;
115 double get_segment_var(
const std::string& well,
const std::string& var, std::size_t segment)
const;
116 double get_region_var(
const std::string& regSet,
const std::string& var, std::size_t region)
const;
117 double get_well_var(
const std::string& well,
const std::string& var,
double)
const;
118 double get_group_var(
const std::string& group,
const std::string& var,
double)
const;
119 double get_conn_var(
const std::string& conn,
const std::string& var, std::size_t global_index,
double)
const;
120 double get_segment_var(
const std::string& well,
const std::string& var, std::size_t segment,
double)
const;
121 double get_region_var(
const std::string& regSet,
const std::string& var, std::size_t region,
double)
const;
123 const std::vector<std::string>& wells()
const;
124 std::vector<std::string> wells(
const std::string& var)
const;
125 const std::vector<std::string>& groups()
const;
126 std::vector<std::string> groups(
const std::string& var)
const;
128 const_iterator begin()
const;
129 const_iterator end()
const;
130 std::size_t num_wells()
const;
131 std::size_t size()
const;
134 template<
class Serializer>
137 serializer(sim_start);
140 serializer(well_values);
142 serializer(well_names);
143 serializer(group_values);
144 serializer(m_groups);
145 serializer(group_names);
146 serializer(conn_values);
147 serializer(segment_values);
148 serializer(this->region_values);
154 time_point sim_start;
156 std::unordered_map<std::string,double> values;
159 std::unordered_map<std::string, std::unordered_map<std::string, double>> well_values;
160 std::set<std::string> m_wells;
161 mutable std::optional<std::vector<std::string>> well_names;
164 std::unordered_map<std::string, std::unordered_map<std::string, double>> group_values;
165 std::set<std::string> m_groups;
166 mutable std::optional<std::vector<std::string>> group_names;
170 std::unordered_map<std::string, std::unordered_map<std::string, std::unordered_map<std::size_t, double>>> conn_values;
174 std::unordered_map<std::string, std::unordered_map<std::string, std::unordered_map<std::size_t, double>>> segment_values;
178 std::unordered_map<std::string, std::unordered_map<std::string, std::unordered_map<std::size_t, double>>> region_values;