Loading...
Searching...
No Matches
terra::communication::shell::FVGhostLayerBuffers< ScalarType > Class Template Reference

Pre-allocated send/recv buffers and sorted face-pair lists for FV ghost layer comm. More...

#include <fv_communication.hpp>

Classes

struct  FacePair
 All metadata needed to drive communication for one subdomain face. More...
 

Public Types

using Buffer = grid::Grid2DDataScalar< ScalarType >
 

Public Member Functions

 FVGhostLayerBuffers (const grid::shell::DistributedDomain &domain)
 Allocates all send/recv buffers and builds the sorted face pair lists.
 
const std::vector< FacePair > & recv_ordered () const
 Face pairs sorted for consistent MPI_Irecv posting order (by sending subdomain).
 
const std::vector< FacePair > & send_ordered () const
 Face pairs sorted for consistent MPI_Isend / local-comm packing order.
 
Buffersend_buf (const FacePair &fp)
 
Bufferrecv_buf (const FacePair &fp)
 

Detailed Description

template<typename ScalarType>
class terra::communication::shell::FVGhostLayerBuffers< ScalarType >

Pre-allocated send/recv buffers and sorted face-pair lists for FV ghost layer comm.

Construct once per operator (or wherever ghost layer updates are needed), then pass to update_fv_ghost_layers on every call. No heap allocation happens after construction.

Member Typedef Documentation

◆ Buffer

template<typename ScalarType >
using terra::communication::shell::FVGhostLayerBuffers< ScalarType >::Buffer = grid::Grid2DDataScalar< ScalarType >

Constructor & Destructor Documentation

◆ FVGhostLayerBuffers()

template<typename ScalarType >
terra::communication::shell::FVGhostLayerBuffers< ScalarType >::FVGhostLayerBuffers ( const grid::shell::DistributedDomain domain)
inlineexplicit

Allocates all send/recv buffers and builds the sorted face pair lists.

Member Function Documentation

◆ recv_buf()

template<typename ScalarType >
Buffer & terra::communication::shell::FVGhostLayerBuffers< ScalarType >::recv_buf ( const FacePair fp)
inline

◆ recv_ordered()

template<typename ScalarType >
const std::vector< FacePair > & terra::communication::shell::FVGhostLayerBuffers< ScalarType >::recv_ordered ( ) const
inline

Face pairs sorted for consistent MPI_Irecv posting order (by sending subdomain).

◆ send_buf()

template<typename ScalarType >
Buffer & terra::communication::shell::FVGhostLayerBuffers< ScalarType >::send_buf ( const FacePair fp)
inline

◆ send_ordered()

template<typename ScalarType >
const std::vector< FacePair > & terra::communication::shell::FVGhostLayerBuffers< ScalarType >::send_ordered ( ) const
inline

Face pairs sorted for consistent MPI_Isend / local-comm packing order.


The documentation for this class was generated from the following file: