Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::search::ArborX2dNeighborList< MemorySpace > Class Template Reference

ArborX neighbor list with Cabana-style dense 2D per-target storage. More...

#include <ArborX2dNeighborList.hpp>

Inheritance diagram for mundy::search::ArborX2dNeighborList< MemorySpace >:
[legend]

Public Types

Aliases
using memory_space = MemorySpace
using execution_space = typename MemorySpace::execution_space
using size_type = size_t
using source_index_type = size_type
using entity_view_t = Kokkos::View<stk::mesh::Entity*, memory_space>
using count_view_t = Kokkos::View<size_type*, memory_space>
using source_index_view_t = Kokkos::View<source_index_type**, memory_space>

Public Member Functions

Constructors
 ArborX2dNeighborList ()=default
 Default constructor.
 ArborX2dNeighborList (const ArborX2dNeighborList &)=default
 Default copy and move constructors/operators.
 ArborX2dNeighborList (ArborX2dNeighborList &&)=default
ArborX2dNeighborListoperator= (const ArborX2dNeighborList &)=default
ArborX2dNeighborListoperator= (ArborX2dNeighborList &&)=default
 ArborX2dNeighborList (const stk::mesh::Selector &target_selector, const stk::mesh::Selector &source_selector, const entity_view_t &target_entities, const entity_view_t &source_entities, const count_view_t &neighbor_counts, const source_index_view_t &source_indices)
 Construct a list from already-built dense storage.
Accessors
size_type num_targets () const noexcept
 Get the number of enumerable targets.
size_type num_sources () const noexcept
 Get the number of enumerable sources.
const stk::mesh::Selector & target_selector () const noexcept
 Get the selector defining the target chunk.
const stk::mesh::Selector & source_selector () const noexcept
 Get the selector defining the source chunk.
size_type size () const noexcept
 Get the total number of stored neighbor pairs.
size_type max_neighbors_per_target () const noexcept
 Get the allocated row width for each target.
size_type num_neighbors (size_type target_index) const
 Get the number of neighbors for a target ordinal.
source_index_type source_index (size_type target_index, size_type neighbor_ordinal) const
 Get the source ordinal for a target and neighbor ordinal.
stk::mesh::Entity get_neighbor (size_type target_index, size_type neighbor_ordinal) const
 Get the neighbor entity for a target and neighbor ordinal.
stk::mesh::Entity target_entity (size_type target_index) const
 Get the target entity for a target ordinal.
stk::mesh::Entity source_entity (source_index_type source_index) const
 Get the source entity for a source ordinal.
entity_view_t target_entities () const noexcept
 Get the raw target entity view.
entity_view_t source_entities () const noexcept
 Get the raw source entity view.
count_view_t neighbor_counts () const noexcept
 Get the raw per-target neighbor count view.
source_index_view_t source_indices () const noexcept
 Get the raw dense source-index view.

Detailed Description

template<typename MemorySpace = stk::ngp::MemSpace>
class mundy::search::ArborX2dNeighborList< MemorySpace >

The uniform per-target row width suits GPU pair-parallel dispatch.

Member Typedef Documentation

◆ memory_space

template<typename MemorySpace = stk::ngp::MemSpace>
using mundy::search::ArborX2dNeighborList< MemorySpace >::memory_space = MemorySpace

◆ execution_space

template<typename MemorySpace = stk::ngp::MemSpace>
using mundy::search::ArborX2dNeighborList< MemorySpace >::execution_space = typename MemorySpace::execution_space

◆ size_type

template<typename MemorySpace = stk::ngp::MemSpace>
using mundy::search::ArborX2dNeighborList< MemorySpace >::size_type = size_t

◆ source_index_type

template<typename MemorySpace = stk::ngp::MemSpace>
using mundy::search::ArborX2dNeighborList< MemorySpace >::source_index_type = size_type

◆ entity_view_t

template<typename MemorySpace = stk::ngp::MemSpace>
using mundy::search::ArborX2dNeighborList< MemorySpace >::entity_view_t = Kokkos::View<stk::mesh::Entity*, memory_space>

◆ count_view_t

template<typename MemorySpace = stk::ngp::MemSpace>
using mundy::search::ArborX2dNeighborList< MemorySpace >::count_view_t = Kokkos::View<size_type*, memory_space>

◆ source_index_view_t

template<typename MemorySpace = stk::ngp::MemSpace>
using mundy::search::ArborX2dNeighborList< MemorySpace >::source_index_view_t = Kokkos::View<source_index_type**, memory_space>

Constructor & Destructor Documentation

◆ ArborX2dNeighborList() [1/4]

template<typename MemorySpace = stk::ngp::MemSpace>
mundy::search::ArborX2dNeighborList< MemorySpace >::ArborX2dNeighborList ( )
default

◆ ArborX2dNeighborList() [2/4]

template<typename MemorySpace = stk::ngp::MemSpace>
mundy::search::ArborX2dNeighborList< MemorySpace >::ArborX2dNeighborList ( const ArborX2dNeighborList< MemorySpace > & )
default

◆ ArborX2dNeighborList() [3/4]

template<typename MemorySpace = stk::ngp::MemSpace>
mundy::search::ArborX2dNeighborList< MemorySpace >::ArborX2dNeighborList ( ArborX2dNeighborList< MemorySpace > && )
default

◆ ArborX2dNeighborList() [4/4]

template<typename MemorySpace = stk::ngp::MemSpace>
mundy::search::ArborX2dNeighborList< MemorySpace >::ArborX2dNeighborList ( const stk::mesh::Selector & target_selector,
const stk::mesh::Selector & source_selector,
const entity_view_t & target_entities,
const entity_view_t & source_entities,
const count_view_t & neighbor_counts,
const source_index_view_t & source_indices )
inline
Parameters
target_selector[in] Selector defining the target chunk used during the build.
source_selector[in] Selector defining the source chunk used during the build.
target_entities[in] Target entities indexed by dense target ordinal.
source_entities[in] Source entities indexed by dense source ordinal.
neighbor_counts[in] Number of valid entries in each target row.
source_indices[in] Dense target-by-neighbor source ordinal view.

Member Function Documentation

◆ operator=() [1/2]

template<typename MemorySpace = stk::ngp::MemSpace>
ArborX2dNeighborList & mundy::search::ArborX2dNeighborList< MemorySpace >::operator= ( const ArborX2dNeighborList< MemorySpace > & )
default

◆ operator=() [2/2]

template<typename MemorySpace = stk::ngp::MemSpace>
ArborX2dNeighborList & mundy::search::ArborX2dNeighborList< MemorySpace >::operator= ( ArborX2dNeighborList< MemorySpace > && )
default

◆ num_targets()

template<typename MemorySpace = stk::ngp::MemSpace>
size_type mundy::search::ArborX2dNeighborList< MemorySpace >::num_targets ( ) const
inlinenoexcept

◆ num_sources()

template<typename MemorySpace = stk::ngp::MemSpace>
size_type mundy::search::ArborX2dNeighborList< MemorySpace >::num_sources ( ) const
inlinenoexcept

◆ target_selector()

template<typename MemorySpace = stk::ngp::MemSpace>
const stk::mesh::Selector & mundy::search::ArborX2dNeighborList< MemorySpace >::target_selector ( ) const
inlinenoexcept

◆ source_selector()

template<typename MemorySpace = stk::ngp::MemSpace>
const stk::mesh::Selector & mundy::search::ArborX2dNeighborList< MemorySpace >::source_selector ( ) const
inlinenoexcept

◆ size()

template<typename MemorySpace = stk::ngp::MemSpace>
size_type mundy::search::ArborX2dNeighborList< MemorySpace >::size ( ) const
inlinenoexcept

◆ max_neighbors_per_target()

template<typename MemorySpace = stk::ngp::MemSpace>
size_type mundy::search::ArborX2dNeighborList< MemorySpace >::max_neighbors_per_target ( ) const
inlinenoexcept

◆ num_neighbors()

template<typename MemorySpace = stk::ngp::MemSpace>
size_type mundy::search::ArborX2dNeighborList< MemorySpace >::num_neighbors ( size_type target_index) const
inline
Parameters
target_index[in] Dense target ordinal.

◆ source_index()

template<typename MemorySpace = stk::ngp::MemSpace>
source_index_type mundy::search::ArborX2dNeighborList< MemorySpace >::source_index ( size_type target_index,
size_type neighbor_ordinal ) const
inline
Parameters
target_index[in] Dense target ordinal.
neighbor_ordinal[in] Ordinal in the target's neighbor range.

◆ get_neighbor()

template<typename MemorySpace = stk::ngp::MemSpace>
stk::mesh::Entity mundy::search::ArborX2dNeighborList< MemorySpace >::get_neighbor ( size_type target_index,
size_type neighbor_ordinal ) const
inline
Parameters
target_index[in] Dense target ordinal.
neighbor_ordinal[in] Ordinal in the target's neighbor range.

◆ target_entity()

template<typename MemorySpace = stk::ngp::MemSpace>
stk::mesh::Entity mundy::search::ArborX2dNeighborList< MemorySpace >::target_entity ( size_type target_index) const
inline
Parameters
target_index[in] Dense target ordinal.

◆ source_entity()

template<typename MemorySpace = stk::ngp::MemSpace>
stk::mesh::Entity mundy::search::ArborX2dNeighborList< MemorySpace >::source_entity ( source_index_type source_index) const
inline
Parameters
source_index[in] Dense source ordinal.

◆ target_entities()

template<typename MemorySpace = stk::ngp::MemSpace>
entity_view_t mundy::search::ArborX2dNeighborList< MemorySpace >::target_entities ( ) const
inlinenoexcept

◆ source_entities()

template<typename MemorySpace = stk::ngp::MemSpace>
entity_view_t mundy::search::ArborX2dNeighborList< MemorySpace >::source_entities ( ) const
inlinenoexcept

◆ neighbor_counts()

template<typename MemorySpace = stk::ngp::MemSpace>
count_view_t mundy::search::ArborX2dNeighborList< MemorySpace >::neighbor_counts ( ) const
inlinenoexcept

◆ source_indices()

template<typename MemorySpace = stk::ngp::MemSpace>
source_index_view_t mundy::search::ArborX2dNeighborList< MemorySpace >::source_indices ( ) const
inlinenoexcept