|
| | SubdomainNeighborhoodSendRecvBuffer (const grid::shell::DistributedDomain &domain) |
| | Constructs a SubdomainNeighborhoodSendRecvBuffer for the passed distributed domain object.
|
| |
| const grid::Grid0DDataVec< ScalarType, VecDim > & | buffer_vertex (const grid::shell::SubdomainInfo &local_subdomain, const grid::BoundaryVertex local_boundary_vertex, const grid::shell::SubdomainInfo &neighbor_subdomain, const grid::BoundaryVertex neighbor_boundary_vertex) const |
| | Const reference to the view that is a buffer for a vertex of a subdomain.
|
| |
| const grid::Grid1DDataVec< ScalarType, VecDim > & | buffer_edge (const grid::shell::SubdomainInfo &local_subdomain, const grid::BoundaryEdge local_boundary_edge, const grid::shell::SubdomainInfo &neighbor_subdomain, const grid::BoundaryEdge neighbor_boundary_edge) const |
| | Const reference to the view that is a buffer for an edge of a subdomain.
|
| |
| const grid::Grid2DDataVec< ScalarType, VecDim > & | buffer_face (const grid::shell::SubdomainInfo &local_subdomain, const grid::BoundaryFace local_boundary_face, const grid::shell::SubdomainInfo &neighbor_subdomain, const grid::BoundaryFace neighbor_boundary_face) const |
| | Const reference to the view that is a buffer for a face of a subdomain.
|
| |
| grid::Grid0DDataVec< ScalarType, VecDim > & | buffer_vertex (const grid::shell::SubdomainInfo &local_subdomain, const grid::BoundaryVertex local_boundary_vertex, const grid::shell::SubdomainInfo &neighbor_subdomain, const grid::BoundaryVertex neighbor_boundary_vertex) |
| | Mutable reference to the view that is a buffer for a vertex of a subdomain.
|
| |
| grid::Grid1DDataVec< ScalarType, VecDim > & | buffer_edge (const grid::shell::SubdomainInfo &local_subdomain, const grid::BoundaryEdge local_boundary_edge, const grid::shell::SubdomainInfo &neighbor_subdomain, const grid::BoundaryEdge neighbor_boundary_edge) |
| | Mutable reference to the view that is a buffer for an edge of a subdomain.
|
| |
| grid::Grid2DDataVec< ScalarType, VecDim > & | buffer_face (const grid::shell::SubdomainInfo &local_subdomain, const grid::BoundaryFace local_boundary_face, const grid::shell::SubdomainInfo &neighbor_subdomain, const grid::BoundaryFace neighbor_boundary_face) |
| | Mutable reference to the view that is a buffer for a face of a subdomain.
|
| |
template<typename ScalarType, int VecDim = 1>
class terra::communication::shell::SubdomainNeighborhoodSendRecvBuffer< ScalarType, VecDim >
Send and receive buffers for all process-local subdomain boundaries.
Allocates views for all boundaries of local subdomains. Those are the nodes that overlap with values from neighboring subdomains.
One buffer per local boundary + neighbor is allocated. So, for instance, for an edge shared with several neighbors, just as many buffers as neighbors are allocated. This facilitates the receiving step since all neighbors that a subdomain receives data from can send their data simultaneously.
Can be reused after communication (send + recv) has been completed to avoid unnecessary reallocation.