35class ReservoirCouplingSlave {
37 using MessageTag = ReservoirCoupling::MessageTag;
40 ReservoirCouplingSlave(
41 const Parallel::Communication &comm,
const Schedule &schedule,
const SimulatorTimer &timer
43 bool activated()
const {
return activated_; }
44 void clearDeferredLogger() { logger_.clearDeferredLogger(); }
45 const Parallel::Communication& getComm()
const {
return comm_; }
46 const std::map<std::string, std::string>& getSlaveToMasterGroupNameMap()
const {
47 return slave_to_master_group_map_; }
48 void maybeActivate(
int report_step);
49 double receiveNextTimeStepFromMaster();
50 void sendAndReceiveInitialData();
51 void sendNextReportDateToMasterProcess()
const;
52 void sendPotentialsToMaster(
const std::vector<Potentials> &potentials)
const;
54 this->logger_.setDeferredLogger(deferred_logger);
58 void checkGrupSlavGroupNames_();
59 double getGrupSlavActivationDate_()
const;
60 void receiveMasterGroupNamesFromMasterProcess_();
61 void receiveSlaveNameFromMasterProcess_();
62 void saveMasterGroupNamesAsMap_(
const std::vector<char>& group_names);
63 void sendActivationDateToMasterProcess_()
const;
64 void sendActivationHandshakeToMasterProcess_()
const;
65 void sendSimulationStartDateToMasterProcess_()
const;
67 const Parallel::Communication &comm_;
68 const Schedule& schedule_;
71 MPI_Comm slave_master_comm_{MPI_COMM_NULL};
72 std::map<std::string, std::string> slave_to_master_group_map_;
73 bool activated_{
false};
74 std::string slave_name_;