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>
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. | |
Multi-node particle scatter/gather.