41 WellGuideRateTarget target;
42 double scaling_factor;
44 bool operator==(
const WellTarget& data)
const {
45 return guide_rate == data.guide_rate &&
46 target == data.target &&
47 scaling_factor == data.scaling_factor;
50 template<
class Serializer>
53 serializer(guide_rate);
55 serializer(scaling_factor);
61 Group::GuideRateProdTarget target;
64 return guide_rate == data.guide_rate &&
65 target == data.target;
68 template<
class Serializer>
71 serializer(guide_rate);
78 Group::GuideRateInjTarget target;
81 return guide_rate == data.guide_rate &&
82 target == data.target;
85 template<
class Serializer>
88 serializer(guide_rate);
96 bool has_model()
const;
98 void update_well(
const Well& well);
100 void update_production_group(
const Group& group);
101 const WellTarget& well(
const std::string& well)
const;
102 const GroupProdTarget& production_group(
const std::string& group)
const;
103 const GroupInjTarget& injection_group(
const Phase& phase,
const std::string& group)
const;
105 bool has_well(
const std::string& well)
const;
106 bool has_injection_group(
const Phase& phase,
const std::string& group)
const;
107 bool has_production_group(
const std::string& group)
const;
111 template<
class Serializer>
116 serializer(production_groups);
117 serializer(injection_groups);
122 typedef std::pair<Phase,std::string> pair;
126 template <
class T1,
class T2>
127 std::size_t operator() (
const std::pair<T1, T2> &pair)
const
129 return std::hash<T1>()(pair.first) ^ std::hash<T2>()(pair.second);
133 std::optional<GuideRateModel> m_model;
134 std::unordered_map<std::string, WellTarget> wells;
135 std::unordered_map<std::string, GroupProdTarget> production_groups;
136 std::unordered_map<pair, GroupInjTarget, pair_hash> injection_groups;
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30