|
| GlobalParticleComm (const LocalGridType local_grid) |
| Constructor.
|
|
template<class LocalMeshType> |
void | storeRanks (LocalMeshType local_mesh) |
| Store local rank boundaries from the local mesh.
|
|
void | scaleRanks () |
| Scale local rank boundaries based on double counting from MPI reduction.
|
|
template<std::size_t NSD = num_space_dim> |
std::enable_if_t< 3==NSD, Kokkos::Array< int, num_space_dim > > | getScaling () |
| Scaling factors due to double counting from MPI reduction.
|
|
template<std::size_t NSD = num_space_dim> |
std::enable_if_t< 2==NSD, Kokkos::Array< int, num_space_dim > > | getScaling () |
| Scaling factors due to double counting from MPI reduction.
|
|
template<class GlobalGridType, std::size_t NSD = num_space_dim> |
std::enable_if_t< 3==NSD, void > | copyRanks (GlobalGridType global_grid) |
| Store all cartesian MPI ranks.
|
|
template<class GlobalGridType, std::size_t NSD = num_space_dim> |
std::enable_if_t< 2==NSD, void > | copyRanks (GlobalGridType global_grid) |
| Store all cartesian MPI ranks.
|
|
template<class ExecutionSpace, class PositionType> |
void | build (ExecutionSpace exec_space, PositionType positions, const std::size_t begin, const std::size_t end) |
| Bin particles across the global grid.
|
|
template<class ExecutionSpace, class PositionType> |
void | build (ExecutionSpace exec_space, PositionType positions) |
| Bin particles across the global grid.
|
|
template<class PositionType> |
void | build (PositionType positions) |
| Bin particles across the global grid.
|
|
template<class AoSoAType> |
void | migrate (MPI_Comm comm, AoSoAType &aosoa) |
| Migrate particles to the correct rank.
|
|
template<class MemorySpace, class LocalGridType>
class Cabana::Grid::GlobalParticleComm< MemorySpace, LocalGridType >
Global particle communication based on the background grid.
template<class MemorySpace, class LocalGridType>
template<class ExecutionSpace, class PositionType>
void Cabana::Grid::GlobalParticleComm< MemorySpace, LocalGridType >::build |
( |
ExecutionSpace | exec_space, |
|
|
PositionType | positions, |
|
|
const std::size_t | begin, |
|
|
const std::size_t | end ) |
|
inline |
Bin particles across the global grid.
Because of MPI partitioning, this is not a perfect grid (as the Core LinkedCellList is), so we use binary search instead of direct 3d->1d indexing.