61 template <
typename Comm>
62 void communicate(
const Comm& comm) {
63 auto size = this->m_in_injecting_group.size();
64 comm.sum( this->m_in_injecting_group.data(), size);
65 comm.sum( this->m_in_producing_group.data(), size);
66 comm.sum( this->m_is_open.data(), size);
71 GlobalWellInfo(
const Schedule& sched, std::size_t report_step,
const std::vector<Well>& local_wells);
72 bool in_producing_group(
const std::string& wname)
const;
73 bool in_injecting_group(
const std::string& wname)
const;
74 bool is_open(
const std::string& wname)
const;
75 std::size_t well_index(
const std::string& wname)
const;
76 const std::string& well_name(std::size_t well_index)
const;
77 void update_injector(std::size_t well_index, WellStatus well_status, WellInjectorCMode injection_cmode);
78 void update_producer(std::size_t well_index, WellStatus well_status, WellProducerCMode production_cmode);
82 std::vector<std::size_t> local_map;
84 std::map<std::string, std::size_t> name_map;
85 std::vector<int> m_in_injecting_group;
86 std::vector<int> m_in_producing_group;
87 std::vector<int> m_is_open;