|
preCICE v3.3.0
|
contains the logic of the parallel communication between participants. More...
Classes | |
| class | BoundM2N |
| An M2N between participants with a configured direction. More... | |
| class | DistributedComFactory |
| class | DistributedCommunication |
| Interface for all distributed solver to solver communication classes. More... | |
| class | GatherScatterComFactory |
| class | GatherScatterCommunication |
| Implements DistributedCommunication by using a gathering/scattering methodology. Arrays of data are always gathered and scattered at the primary. No direct communication between secondary ranks is used. For more details see m2n/DistributedCommunication.hpp. More... | |
| class | M2N |
| M2N communication class. This layer is necessary since communication between two participants can be working via several meshes, each possibly with a different decomposition. In principle, this class is only a map from meshes to DistributedCommunications. More... | |
| class | M2NConfiguration |
| Configuration for communication channels between solvers. More... | |
| class | PointToPointComFactory |
| class | PointToPointCommunication |
| Point-to-point communication implementation of DistributedCommunication. More... | |
| struct | WhiteboxAccessor |
| struct giving access _useOnlyPrimaryCom More... | |
Typedefs | |
| using | PtrM2N = std::shared_ptr<M2N> |
contains the logic of the parallel communication between participants.
| using precice::m2n::PtrM2N = std::shared_ptr<M2N> |
Definition at line 9 of file SharedPointer.hpp.
| void precice::m2n::broadcast | ( | mesh::Mesh::VertexDistribution & | m | ) |
Definition at line 89 of file PointToPointCommunication.cpp.
| void precice::m2n::broadcastReceive | ( | mesh::Mesh::VertexDistribution & | m, |
| int | rankBroadcaster, | ||
| const com::PtrCommunication & | communication = utils::IntraComm::getCommunication() ) |
Definition at line 74 of file PointToPointCommunication.cpp.
| void precice::m2n::broadcastSend | ( | mesh::Mesh::VertexDistribution const & | m, |
| const com::PtrCommunication & | communication = utils::IntraComm::getCommunication() ) |
Definition at line 61 of file PointToPointCommunication.cpp.
| std::map< int, std::vector< int > > precice::m2n::buildCommunicationMap | ( | mesh::Mesh::VertexDistribution const & | thisVertexDistribution, |
| mesh::Mesh::VertexDistribution const & | otherVertexDistribution, | ||
| int | thisRank = utils::IntraComm::getRank() ) |
builds the communication map for a local distribution given the global distribution.
| [in] | thisVertexDistribution | the local vertex distribution |
| [in] | otherVertexDistribution | the total vertex distribution |
| [in] | thisRank | the rank to build the map for |
The worst case complexity of the function is: 
which consists of the computation of all intersections.
However, in case of a proper partitioning and communication between neighbor ranks (r), we would most likely end up with a factor r<<p 
Definition at line 261 of file PointToPointCommunication.cpp.
| void precice::m2n::print | ( | std::map< int, std::vector< int > > const & | m | ) |
Definition at line 100 of file PointToPointCommunication.cpp.
| void precice::m2n::printCommunicationPartnerCountStats | ( | std::map< int, std::vector< int > > const & | m | ) |
Definition at line 128 of file PointToPointCommunication.cpp.
| void precice::m2n::printLocalIndexCountStats | ( | std::map< int, std::vector< int > > const & | m | ) |
Definition at line 180 of file PointToPointCommunication.cpp.
| void precice::m2n::receive | ( | mesh::Mesh::VertexDistribution & | m, |
| int | rankSender, | ||
| const com::PtrCommunication & | communication ) |
Definition at line 46 of file PointToPointCommunication.cpp.
| void precice::m2n::send | ( | mesh::Mesh::VertexDistribution const & | m, |
| int | rankReceiver, | ||
| const com::PtrCommunication & | communication ) |
Definition at line 32 of file PointToPointCommunication.cpp.