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, BuildType > |
| 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.