|
Mundy: Multibody Nonlocal Dynamics Version of the Day
|
STK coarse-search neighbor list with compressed owner-pair storage and per-object periodic image shifts. More...
#include <STKSearchNeighborList.hpp>
Public Types | |
Aliases | |
| using | memory_space = MemorySpace |
| using | execution_space = typename MemorySpace::execution_space |
| using | image_shift_scalar = ImageShiftScalar |
| using | size_type = size_t |
| using | source_index_type = size_type |
| using | image_shift_type = mundy::Vector3<image_shift_scalar> |
| using | entity_view_t = Kokkos::View<stk::mesh::Entity*, memory_space> |
| using | source_index_view_t = Kokkos::View<source_index_type*, memory_space> |
| using | offset_view_t = Kokkos::View<size_type*, memory_space> |
| using | image_shift_view_t = Kokkos::View<image_shift_type*, memory_space> |
Public Member Functions | |
Constructors | |
| PeriodicSTKSearchNeighborList ()=default | |
| Default constructor. | |
| PeriodicSTKSearchNeighborList (const PeriodicSTKSearchNeighborList &)=default | |
| Default copy and move constructors/operators. | |
| PeriodicSTKSearchNeighborList (PeriodicSTKSearchNeighborList &&)=default | |
| PeriodicSTKSearchNeighborList & | operator= (const PeriodicSTKSearchNeighborList &)=default |
| PeriodicSTKSearchNeighborList & | operator= (PeriodicSTKSearchNeighborList &&)=default |
| PeriodicSTKSearchNeighborList (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 image_shift_view_t &target_image_shifts, const source_index_view_t &source_owner_indices, const image_shift_view_t &source_image_shifts, const offset_view_t &offsets) | |
| Construct a periodic list from already-built compressed storage. | |
Accessors | |
| size_type | num_targets () const noexcept |
| Get the number of enumerable target owners. | |
| size_type | num_sources () const noexcept |
| Get the number of enumerable source owners. | |
| const stk::mesh::Selector & | target_selector () const noexcept |
| Get the selector defining the target owner chunk. | |
| const stk::mesh::Selector & | source_selector () const noexcept |
| Get the selector defining the source owner chunk. | |
| size_type | size () const noexcept |
| Get the total number of stored periodic neighbor pairs. | |
| size_type | num_neighbors (size_type target_index) const |
| Get the number of neighbors for a target owner ordinal. | |
| source_index_type | source_index (size_type target_index, size_type neighbor_ordinal) const |
| Get the source owner ordinal for a target owner and neighbor ordinal. | |
| image_shift_type | source_image_shift (size_type target_index, size_type neighbor_ordinal) const |
| Get the source owner's image shift for a stored pair (original → imaged reference point). | |
| image_shift_type | target_image_shift (size_type target_index) const |
| Get a target owner's image shift: the displacement from its original to its imaged reference point. | |
| stk::mesh::Entity | get_neighbor (size_type target_index, size_type neighbor_ordinal) const |
| Get the neighbor owner entity for a target owner and neighbor ordinal. | |
| stk::mesh::Entity | target_entity (size_type target_index) const |
| Get the target owner entity for a target owner ordinal. | |
| stk::mesh::Entity | source_entity (source_index_type source_index) const |
| Get the source owner entity for a source owner ordinal. | |
| entity_view_t | target_entities () const noexcept |
| Get the raw target owner entity view. | |
| entity_view_t | source_entities () const noexcept |
| Get the raw source owner entity view. | |
| source_index_view_t | source_owner_indices () const noexcept |
| Get the raw flattened source-owner ordinal view. | |
| image_shift_view_t | source_image_shifts () const noexcept |
| Get the raw flattened source-image-shift view. | |
| image_shift_view_t | target_image_shifts () const noexcept |
| Get the raw per-target-owner image-shift view. | |
| offset_view_t | offsets () const noexcept |
| Get the raw target-offset view. | |
Consumes periodic STK coarse-search image pairs, collapses them to owner ordinals, and retains the per-object image shifts: a target shift per owner and a source shift per stored pair. target_image_shift(target_index) and source_image_shift(target_index, neighbor_ordinal) give the per-object shifts; a kernel that wants the pairwise relative shift computes source_image_shift − target_image_shift itself.
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::memory_space = MemorySpace |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::execution_space = typename MemorySpace::execution_space |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::image_shift_scalar = ImageShiftScalar |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::size_type = size_t |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::source_index_type = size_type |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::image_shift_type = mundy::Vector3<image_shift_scalar> |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::entity_view_t = Kokkos::View<stk::mesh::Entity*, memory_space> |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::source_index_view_t = Kokkos::View<source_index_type*, memory_space> |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::offset_view_t = Kokkos::View<size_type*, memory_space> |
| using mundy::search::PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar >::image_shift_view_t = Kokkos::View<image_shift_type*, memory_space> |
|
default |
|
default |
|
default |
|
inline |
| target_selector | [in] Selector defining the target owner chunk used during the build. |
| source_selector | [in] Selector defining the source owner chunk used during the build. |
| target_entities | [in] Target owner entities indexed by dense target owner ordinal. |
| source_entities | [in] Source owner entities indexed by dense source owner ordinal. |
| target_image_shifts | [in] Per-target-owner image shift (target's original → imaged reference point). |
| source_owner_indices | [in] Dense source owner ordinal for every stored pair. |
| source_image_shifts | [in] Per-pair source owner image shift (original → imaged reference point). |
| offsets | [in] Target owner offsets into source_owner_indices; extent must be num_targets + 1. |
|
default |
|
default |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
| target_index | [in] Dense target owner ordinal. |
|
inline |
| target_index | [in] Dense target owner ordinal. |
| neighbor_ordinal | [in] Ordinal in the target's neighbor range. |
|
inline |
| target_index | [in] Dense target owner ordinal. |
| neighbor_ordinal | [in] Ordinal in the target's neighbor range. |
|
inline |
| target_index | [in] Dense target owner ordinal. |
|
inline |
| target_index | [in] Dense target owner ordinal. |
| neighbor_ordinal | [in] Ordinal in the target's neighbor range. |
|
inline |
| target_index | [in] Dense target owner ordinal. |
|
inline |
| source_index | [in] Dense source owner ordinal. |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |