Cabana 0.8.0-dev
 
Loading...
Searching...
No Matches
Cabana_Halo.hpp File Reference

Multi-node particle scatter/gather. More...

#include <Cabana_AoSoA.hpp>
#include <Cabana_CommunicationPlan.hpp>
#include <Cabana_Slice.hpp>
#include <Kokkos_Core.hpp>
#include <Kokkos_Profiling_ScopedRegion.hpp>
#include <mpi.h>
#include <exception>
#include <vector>
Include dependency graph for Cabana_Halo.hpp:

Go to the source code of this file.

Classes

class  Cabana::Halo< MemorySpace >
 A communication plan for scattering and gathering of ghosted data. More...
 
struct  Cabana::is_halo< T >
 Halo static type checker. More...
 
class  Cabana::Gather< HaloType, AoSoAType, typename std::enable_if< is_aosoa< AoSoAType >::value >::type >
 Synchronously gather data from the local decomposition to the ghosts using the halo forward communication plan. AoSoA version. This is a uniquely-owned to multiply-owned communication. More...
 
class  Cabana::Gather< HaloType, SliceType, typename std::enable_if< is_slice< SliceType >::value >::type >
 Synchronously gather data from the local decomposition to the ghosts using the halo forward communication plan. AoSoA version. This is a uniquely-owned to multiply-owned communication. More...
 
class  Cabana::Scatter< HaloType, SliceType >
 Synchronously scatter data from the ghosts to the local decomposition of a slice using the halo reverse communication plan. This is a multiply-owned to uniquely owned communication. More...
 

Namespaces

namespace  Cabana
 Core: particle data structures and algorithms.
 

Functions

template<class Halo, class ParticleData>
bool Cabana::haloCheckValidSize (const Halo &halo, const ParticleData &particles, typename std::enable_if<(is_halo< Halo >::value), int >::type *=0)
 Ensure the particle size matches the total halo (local and ghost) size.
 
template<class HaloType, class ParticleDataType>
auto Cabana::createGather (const HaloType &halo, const ParticleDataType &data, const double overallocation=1.0)
 Create the gather.
 
template<class HaloType, class ParticleDataType>
void Cabana::gather (const HaloType &halo, ParticleDataType &data)
 Synchronously gather data from the local decomposition to the ghosts using the halo forward communication plan. Slice version. This is a uniquely-owned to multiply-owned communication.
 
template<class HaloType, class SliceType>
auto Cabana::createScatter (const HaloType &halo, const SliceType &slice, const double overallocation=1.0, typename std::enable_if<(is_halo< HaloType >::value &&is_slice< SliceType >::value), int >::type *=0)
 Create the scatter.
 
template<class HaloType, class SliceType>
void Cabana::scatter (const HaloType &halo, SliceType &slice, typename std::enable_if<(is_halo< HaloType >::value &&is_slice< SliceType >::value), int >::type *=0)
 Synchronously scatter data from the ghosts to the local decomposition of a slice using the halo reverse communication plan. This is a multiply-owned to uniquely owned communication.
 

Detailed Description

Multi-node particle scatter/gather.