peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
Loading...
Searching...
No Matches
peclet::voro::fv::GhostExchange< Real > Struct Template Reference

#include <distributed.hpp>

Public Types

using Mem = peclet::core::MemSpace
 
using Exec = peclet::core::ExecSpace
 

Public Member Functions

void init (peclet::voro::mpi::VoronoiHalo< Real > &h, int owned)
 
void exchange (const DV< Real > &f, int nc) const
 Refresh the ghost entries [nOwned, nOwned + nGhost) of an nc-component cell field.
 
void exchangeHost (const DV< Real > &f, int nc) const
 The host reference path: VoronoiHalo::forward per component through a host mirror.
 
Real sum (Real v) const
 
Real max (Real v) const
 

Public Attributes

peclet::voro::mpi::VoronoiHalo< Real > * halo = nullptr
 
int nOwned = 0
 
int nGhost = 0
 
bool devicePack = true
 
std::vector< int > sendRanks
 
std::vector< int > sendCounts
 
std::vector< int > sendOffsets
 
std::vector< int > recvRanks
 
std::vector< int > recvCounts
 
std::vector< int > recvOffsets
 
int nSend = 0
 
int nReceived = 0
 
Kokkos::View< int *, Mem > dSendIdx
 
Kokkos::View< int *, Mem > dSelfIdx
 
Kokkos::View< Real *, Mem > dSendBuf
 
Kokkos::View< Real *, Mem > dRecvBuf
 
std::vector< Real > hSendBuf
 
std::vector< Real > hRecvBuf
 

Member Typedef Documentation

◆ Exec

template<class Real >
using peclet::voro::fv::GhostExchange< Real >::Exec = peclet::core::ExecSpace

◆ Mem

template<class Real >
using peclet::voro::fv::GhostExchange< Real >::Mem = peclet::core::MemSpace

Member Function Documentation

◆ exchange()

template<class Real >
void peclet::voro::fv::GhostExchange< Real >::exchange ( const DV< Real > &  f,
int  nc 
) const
inline

Refresh the ghost entries [nOwned, nOwned + nGhost) of an nc-component cell field.

◆ exchangeHost()

template<class Real >
void peclet::voro::fv::GhostExchange< Real >::exchangeHost ( const DV< Real > &  f,
int  nc 
) const
inline

The host reference path: VoronoiHalo::forward per component through a host mirror.

◆ init()

template<class Real >
void peclet::voro::fv::GhostExchange< Real >::init ( peclet::voro::mpi::VoronoiHalo< Real > &  h,
int  owned 
)
inline

◆ max()

template<class Real >
Real peclet::voro::fv::GhostExchange< Real >::max ( Real  v) const
inline

◆ sum()

template<class Real >
Real peclet::voro::fv::GhostExchange< Real >::sum ( Real  v) const
inline

Member Data Documentation

◆ devicePack

template<class Real >
bool peclet::voro::fv::GhostExchange< Real >::devicePack = true

Device-packed path (default): the sends are gathered on the device from the flat topology's index list into one buffer, only the packed send/recv buffers cross to the host for MPI, and the receives land in the ghost slots by a device scatter — no whole-field round trip. The host path (devicePack = false, VoronoiHalo::forward per component) is the reference; the two are gated bitwise-equal in tests/kokkos_mpi/test_flow_mpi.

◆ dRecvBuf

template<class Real >
Kokkos::View<Real*, Mem> peclet::voro::fv::GhostExchange< Real >::dRecvBuf

◆ dSelfIdx

template<class Real >
Kokkos::View<int*, Mem> peclet::voro::fv::GhostExchange< Real >::dSelfIdx

◆ dSendBuf

template<class Real >
Kokkos::View<Real*, Mem> peclet::voro::fv::GhostExchange< Real >::dSendBuf

◆ dSendIdx

template<class Real >
Kokkos::View<int*, Mem> peclet::voro::fv::GhostExchange< Real >::dSendIdx

◆ halo

template<class Real >
peclet::voro::mpi::VoronoiHalo<Real>* peclet::voro::fv::GhostExchange< Real >::halo = nullptr

◆ hRecvBuf

template<class Real >
std::vector<Real> peclet::voro::fv::GhostExchange< Real >::hRecvBuf

◆ hSendBuf

template<class Real >
std::vector<Real> peclet::voro::fv::GhostExchange< Real >::hSendBuf

◆ nGhost

template<class Real >
int peclet::voro::fv::GhostExchange< Real >::nGhost = 0

◆ nOwned

template<class Real >
int peclet::voro::fv::GhostExchange< Real >::nOwned = 0

◆ nReceived

template<class Real >
int peclet::voro::fv::GhostExchange< Real >::nReceived = 0

◆ nSend

template<class Real >
int peclet::voro::fv::GhostExchange< Real >::nSend = 0

◆ recvCounts

template<class Real >
std::vector<int> peclet::voro::fv::GhostExchange< Real >::recvCounts

◆ recvOffsets

template<class Real >
std::vector<int> peclet::voro::fv::GhostExchange< Real >::recvOffsets

◆ recvRanks

template<class Real >
std::vector<int> peclet::voro::fv::GhostExchange< Real >::recvRanks

◆ sendCounts

template<class Real >
std::vector<int> peclet::voro::fv::GhostExchange< Real >::sendCounts

◆ sendOffsets

template<class Real >
std::vector<int> peclet::voro::fv::GhostExchange< Real >::sendOffsets

◆ sendRanks

template<class Real >
std::vector<int> peclet::voro::fv::GhostExchange< Real >::sendRanks

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