| 195 | } |
| 196 | |
| 197 | ParallelEnvironment::ParallelEnvironment() |
| 198 | { |
| 199 | RegisterDataCommunicatorDetail("Serial", DataCommunicator::Create(), MakeDefault); |
| 200 | |
| 201 | RegisterCommunicatorFactoryDetail<const std::string>([](ModelPart& rModelPart, const std::string& rDataCommunicatorName)->Communicator::UniquePointer{ |
| 202 | const auto& r_data_communicator = ParallelEnvironment::GetDataCommunicator("Serial"); |
| 203 | return Kratos::make_unique<Communicator>(r_data_communicator); |
| 204 | }); |
| 205 | RegisterCommunicatorFactoryDetail<const DataCommunicator>([](ModelPart& rModelPart, const DataCommunicator& rDataCommunicator)->Communicator::UniquePointer{ |
| 206 | KRATOS_ERROR_IF(rDataCommunicator.IsDistributed()) << "Trying to create an serial communicator with a distributed data communicator." << std::endl; |
| 207 | return Kratos::make_unique<Communicator>(rDataCommunicator); |
| 208 | }); |
| 209 | |
| 210 | RegisterFillCommunicatorFactoryDetail<const std::string>([](ModelPart& rModelPart, const std::string& rDataCommunicatorName)->FillCommunicator::Pointer{ |
| 211 | const auto& r_data_communicator = ParallelEnvironment::GetDataCommunicator("Serial"); |
| 212 | return Kratos::make_shared<FillCommunicator>(rModelPart, r_data_communicator); |
| 213 | }); |
| 214 | RegisterFillCommunicatorFactoryDetail<const DataCommunicator>([](ModelPart& rModelPart, const DataCommunicator& rDataCommunicator)->FillCommunicator::Pointer{ |
| 215 | KRATOS_ERROR_IF(rDataCommunicator.IsDistributed()) << "Trying to create an serial communicator with a distributed data communicator." << std::endl; |
| 216 | return Kratos::make_shared<FillCommunicator>(rModelPart, rDataCommunicator); |
| 217 | }); |
| 218 | } |
| 219 | |
| 220 | ParallelEnvironment::~ParallelEnvironment() |
| 221 | { |
nothing calls this directly
no test coverage detected