core
Shared MPI block decomposition + asynchronous ghost-layer exchange (header-only C++20)
Loading...
Searching...
No Matches
peclet::core::amr::DistributedGatherHalo< Dim, Bits > Class Template Reference

Value-only, device-resident face-neighbour gather over a fixed topology (C2). More...

#include <distributed_view.hpp>

Public Types

using DO = DistributedOctree< Dim, Bits >
 

Public Member Functions

void init (const DO &d, const typename DO::GatherHaloTopology &t)
 
Index nFaces () const
 
void gather (View< const double > x, View< double > g, int tag=41) const
 g (size nFaces) := the face-neighbour values of x.
 

Detailed Description

template<int Dim, unsigned Bits>
class peclet::core::amr::DistributedGatherHalo< Dim, Bits >

Value-only, device-resident face-neighbour gather over a fixed topology (C2).

Built once from a DistributedOctree::GatherHaloTopology; thereafter gather(x, g) moves only the compact send/recv double buffers across MPI (host-staged), with device pack/scatter kernels.

Definition at line 46 of file distributed_view.hpp.

Member Typedef Documentation

◆ DO

Definition at line 48 of file distributed_view.hpp.

Member Function Documentation

◆ init()

template<int Dim, unsigned Bits>
void peclet::core::amr::DistributedGatherHalo< Dim, Bits >::init ( const DO d,
const typename DO::GatherHaloTopology &  t 
)
inline

◆ nFaces()

template<int Dim, unsigned Bits>
Index peclet::core::amr::DistributedGatherHalo< Dim, Bits >::nFaces ( ) const
inline

Definition at line 78 of file distributed_view.hpp.

◆ gather()

template<int Dim, unsigned Bits>
void peclet::core::amr::DistributedGatherHalo< Dim, Bits >::gather ( View< const double x,
View< double g,
int  tag = 41 
) const
inline

g (size nFaces) := the face-neighbour values of x.

Local faces fill on device; cross-rank faces cross MPI as a compact host-staged values buffer (no coords). Bit-identical to the host faceNeighborGather over the same field (periodic ⇒ every slot is filled; no sentinels).

Definition at line 83 of file distributed_view.hpp.

References peclet::core::halo::detail::gpuAwareMpi(), MPI_BYTE, MPI_Irecv(), MPI_Isend(), MPI_STATUSES_IGNORE, and MPI_Waitall().


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