Data describing the bin sizes and offsets resulting from a binning operation on a 3d regular Cartesian grid.
More...
|
|
| LinkedCellList ()=default |
| | Default constructor.
|
| |
| template<class PositionType, template< class, std::size_t, class... > class ArrayType, class... Args> |
| | LinkedCellList (PositionType positions, const ArrayType< Scalar, num_space_dim > grid_delta, const ArrayType< Scalar, num_space_dim > grid_min, const ArrayType< Scalar, num_space_dim > grid_max, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Simple constructor.
|
| |
| template<class PositionType, template< class, std::size_t, class... > class ArrayType, class... Args> |
| | LinkedCellList (PositionType positions, const std::size_t begin, const std::size_t end, const ArrayType< Scalar, num_space_dim > grid_delta, const ArrayType< Scalar, num_space_dim > grid_min, const ArrayType< Scalar, num_space_dim > grid_max, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Partial range constructor.
|
| |
| template<class PositionType, template< class, std::size_t, class... > class ArrayType, class... Args> |
| | LinkedCellList (PositionType positions, const ArrayType< Scalar, num_space_dim > grid_delta, const ArrayType< Scalar, num_space_dim > grid_min, const ArrayType< Scalar, num_space_dim > grid_max, const Scalar neighborhood_radius, const Scalar cell_size_ratio=1, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Explicit stencil constructor.
|
| |
| template<class PositionType, template< class, std::size_t, class... > class ArrayType, class... Args> |
| | LinkedCellList (PositionType positions, const std::size_t begin, const std::size_t end, const ArrayType< Scalar, num_space_dim > grid_delta, const ArrayType< Scalar, num_space_dim > grid_min, const ArrayType< Scalar, num_space_dim > grid_max, const Scalar neighborhood_radius, const Scalar cell_size_ratio=1, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Explicit stencil and partial range constructor.
|
| |
| template<class PositionType> |
| | LinkedCellList (PositionType positions, const Scalar grid_delta[num_space_dim], const Scalar grid_min[num_space_dim], const Scalar grid_max[num_space_dim], typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Simple constructor.
|
| |
| template<class PositionType> |
| | LinkedCellList (PositionType positions, const std::size_t begin, const std::size_t end, const Scalar grid_delta[num_space_dim], const Scalar grid_min[num_space_dim], const Scalar grid_max[num_space_dim], typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Partial range constructor.
|
| |
| template<class PositionType> |
| | LinkedCellList (PositionType positions, const Scalar grid_delta[num_space_dim], const Scalar grid_min[num_space_dim], const Scalar grid_max[num_space_dim], const Scalar neighborhood_radius, const Scalar cell_size_ratio=1, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Explicit stencil constructor.
|
| |
| template<class PositionType> |
| | LinkedCellList (PositionType positions, const std::size_t begin, const std::size_t end, const Scalar grid_delta[num_space_dim], const Scalar grid_min[num_space_dim], const Scalar grid_max[num_space_dim], const Scalar neighborhood_radius, const Scalar cell_size_ratio=1, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0) |
| | Explicit stencil and partial range constructor.
|
| |
|
KOKKOS_INLINE_FUNCTION int | numParticles () const |
| | Number of binned particles.
|
| |
|
KOKKOS_INLINE_FUNCTION std::size_t | getParticleBegin () const |
| | Beginning of binned range.
|
| |
|
KOKKOS_INLINE_FUNCTION std::size_t | getParticleEnd () const |
| | End of binned range.
|
| |
| KOKKOS_INLINE_FUNCTION int | totalBins () const |
| | Get the total number of bins.
|
| |
| KOKKOS_INLINE_FUNCTION int | numBin (const int dim) const |
| | Get the number of bins in a given dimension.
|
| |
| template<std::size_t NSD = num_space_dim> |
| KOKKOS_INLINE_FUNCTION std::enable_if_t< 3==NSD, size_type > | cardinalBinIndex (const int i, const int j, const int k) const |
| | Given the ijk index of a bin get its cardinal index.
|
| |
| KOKKOS_INLINE_FUNCTION size_type | cardinalBinIndex (const Kokkos::Array< int, num_space_dim > &ijk) const |
| | Given the ijk index of a bin get its cardinal index.
|
| |
| KOKKOS_INLINE_FUNCTION void | ijkBinIndex (const int cardinal, int &i, int &j, int &k) const |
| | Given the cardinal index of a bin get its ijk indices.
|
| |
| KOKKOS_INLINE_FUNCTION void | ijkBinIndex (const int cardinal, Kokkos::Array< int, num_space_dim > &ijk) const |
| | Given the cardinal index of a bin get its ijk indices.
|
| |
| KOKKOS_INLINE_FUNCTION int | binSize (const Kokkos::Array< int, num_space_dim > ijk) const |
| | Given a bin get the number of particles it contains.
|
| |
| KOKKOS_INLINE_FUNCTION int | binSize (const int i, const int j, const int k) const |
| | Given a bin get the number of particles it contains.
|
| |
| KOKKOS_INLINE_FUNCTION size_type | binOffset (const int i, const int j, const int k) const |
| | Given a bin get the particle index at which it sorts.
|
| |
| KOKKOS_INLINE_FUNCTION size_type | binOffset (const Kokkos::Array< int, num_space_dim > ijk) const |
| | Given a bin get the particle index at which it sorts.
|
| |
| KOKKOS_INLINE_FUNCTION size_type | permutation (const int particle_id) const |
| | Given a local particle id in the binned layout, get the id of the particle in the old (unbinned) layout.
|
| |
|
KOKKOS_INLINE_FUNCTION std::size_t | rangeBegin () const |
| | The beginning particle index binned by the linked cell list.
|
| |
|
KOKKOS_INLINE_FUNCTION std::size_t | rangeEnd () const |
| | The ending particle index binned by the linked cell list.
|
| |
| KOKKOS_INLINE_FUNCTION stencil_type | cellStencil () const |
| | Get the linked cell stencil.
|
| |
| BinningData< MemorySpace > | binningData () const |
| | Get the 1d bin data.
|
| |
| template<class ExecutionSpace, class PositionType> |
| void | build (ExecutionSpace, PositionType positions, const std::size_t begin, const std::size_t end) |
| | Build the linked cell list with a subset of particles.
|
| |
| template<class PositionType> |
| void | build (PositionType positions, const std::size_t begin, const std::size_t end) |
| | Build the linked cell list with a subset of particles.
|
| |
| template<class PositionType> |
| void | build (PositionType positions) |
| | Build the linked cell list with all particles.
|
| |
|
void | storeParticleBins () |
| | Store the bin cell index for each binned particle.
|
| |
| auto | getParticleBins () const |
| | Get the bin cell index for each binned particle.
|
| |
|
KOKKOS_INLINE_FUNCTION auto | getParticleBin (const int particle_index) const |
| | Get the bin cell index of the input particle.
|
| |
| KOKKOS_FUNCTION void | operator() (const int i) const |
| | Determines which particles belong to bin i.
|
| |
| void | update (const bool sorted) |
| | Updates the status of the list sorting.
|
| |
|
KOKKOS_INLINE_FUNCTION auto | sorted () const |
| | Returns whether the list has been sorted or not.
|
| |
|
template<std::size_t NSD = num_space_dim> |
| KOKKOS_INLINE_FUNCTION std::enable_if_t< 3==NSD, void > | getStencilCells (const int cell, int &imin, int &imax, int &jmin, int &jmax, int &kmin, int &kmax) const |
| | Get the cell indices for the stencil about cell.
|
| |
|
KOKKOS_INLINE_FUNCTION void | getStencilCells (const int cell, Kokkos::Array< int, num_space_dim > &min, Kokkos::Array< int, num_space_dim > &max) const |
| | Get the cell indices for the stencil about cell.
|
| |
| KOKKOS_INLINE_FUNCTION auto | getParticle (const int offset) const |
| | Get a candidate neighbor particle at a given binned offset.
|
| |
template<class MemorySpace, class Scalar = double, std::size_t NumSpaceDim = 3>
class Cabana::LinkedCellList< MemorySpace, Scalar, NumSpaceDim >
Data describing the bin sizes and offsets resulting from a binning operation on a 3d regular Cartesian grid.
- Note
- Defaults to double precision for backwards compatibility.