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{};