19 #ifndef OPM_RESERVOIR_COUPLING_INFO_HPP 20 #define OPM_RESERVOIR_COUPLING_INFO_HPP 22 #include <opm/input/eclipse/Deck/DeckKeyword.hpp> 23 #include <opm/input/eclipse/Schedule/ResCoup/Slaves.hpp> 24 #include <opm/input/eclipse/Schedule/ResCoup/GrupSlav.hpp> 25 #include <opm/input/eclipse/Schedule/ResCoup/MasterGroup.hpp> 26 #include <opm/io/eclipse/rst/group.hpp> 27 #include <opm/io/eclipse/rst/well.hpp> 36 enum class CouplingFileFlag {
48 const GrupSlav& grupSlav(
const std::string& name)
const {
49 return m_grup_slavs.at(name);
51 const std::map<std::string, GrupSlav>& grupSlavs()
const {
52 return this->m_grup_slavs;
54 std::map<std::string, GrupSlav>& grupSlavs() {
55 return this->m_grup_slavs;
57 int grupSlavCount()
const {
58 return this->m_grup_slavs.size();
61 bool hasGrupSlav(
const std::string& name)
const {
62 return m_grup_slavs.find(name) != m_grup_slavs.end();
65 bool hasMasterGroup(
const std::string& name)
const {
66 return m_master_groups.find(name) != m_master_groups.end();
68 bool hasSlave(
const std::string& name)
const {
69 return m_slaves.find(name) != m_slaves.end();
72 const std::map<std::string, MasterGroup>& masterGroups()
const {
73 return this->m_master_groups;
75 std::map<std::string, MasterGroup>& masterGroups() {
76 return this->m_master_groups;
78 const MasterGroup& masterGroup(
const std::string& name)
const {
79 return m_master_groups.at(name);
82 int masterGroupCount()
const {
83 return m_master_groups.size();
86 double masterMinTimeStep()
const {
87 return m_master_min_time_step;
90 CouplingFileFlag readCouplingFileFlag()
const {
91 return m_read_coupling_file_flag;
94 const std::string& readCouplingFileName()
const {
95 return m_read_coupling_file_name;
98 void setMasterMinTimeStep(
double tstep) {
99 m_master_min_time_step = tstep;
102 void setReadCouplingFileFlag(CouplingFileFlag flag) {
103 m_read_coupling_file_flag = flag;
106 void setReadCouplingFileName(
const std::string& file_name) {
107 m_read_coupling_file_name = file_name;
110 void setWriteCouplingFileFlag(CouplingFileFlag flag) {
111 m_write_coupling_file_flag = flag;
114 const std::map<std::string, Slave>& slaves()
const {
115 return this->m_slaves;
117 std::map<std::string, Slave>& slaves() {
118 return this->m_slaves;
120 const Slave& slave(
const std::string& name)
const {
121 return m_slaves.at(name);
123 int slaveCount()
const {
124 return m_slaves.size();
129 template<
class Serializer>
132 serializer(m_slaves);
133 serializer(m_master_groups);
134 serializer(m_grup_slavs);
135 serializer(m_master_min_time_step);
136 serializer(m_write_coupling_file_flag);
137 serializer(m_read_coupling_file_flag);
138 serializer(m_read_coupling_file_name);
141 CouplingFileFlag writeCouplingFileFlag()
const {
142 return m_write_coupling_file_flag;
148 static CouplingFileFlag couplingFileFlagFromString(
149 const std::string& flag_str,
const DeckKeyword& keyword);
152 std::map<std::string, Slave> m_slaves;
153 std::map<std::string, MasterGroup> m_master_groups;
154 std::map<std::string, GrupSlav> m_grup_slavs;
155 double m_master_min_time_step{0.0};
156 CouplingFileFlag m_write_coupling_file_flag{CouplingFileFlag::NONE};
157 CouplingFileFlag m_read_coupling_file_flag{CouplingFileFlag::NONE};
158 std::string m_read_coupling_file_name{};
163 #endif // OPM_RESERVOIR_COUPLING_INFO_HPP Definition: GrupSlav.hpp:32
Definition: GrupSlav.cpp:69
Definition: Slaves.hpp:30
Definition: ReservoirCouplingInfo.hpp:34
Definition: MasterGroup.hpp:32
Class for (de-)serializing.
Definition: Serializer.hpp:94
Definition: DeckKeyword.hpp:36