Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::search Namespace Reference

Classes

struct  AlwaysRebuild
 Rebuilder that unconditionally triggers a rebuild on every update. More...
class  ArborX1dNeighborList
 ArborX neighbor list with Cabana-style compressed 1D storage. More...
class  ArborX2dNeighborList
 ArborX neighbor list with Cabana-style dense 2D per-target storage. More...
class  ExcludeConnectedEntities
 Exclude candidate pairs that share a connected entity at a given rank. More...
class  ExcludeNonIntersectingOBBs
 Narrow-phase excluder that keeps only candidates whose OBBs intersect. More...
class  ExcluderChain
 Type-level chain of Kokkos-callable excluders. More...
struct  ExcludeSelfInteraction
 Exclude degenerate (self) interactions. More...
class  ExcludeSymmetricDuplicates
 Builder-prepared excluder that suppresses one orientation of symmetric target/source pairs. More...
class  ManagedNeighborList
 A neighbor list cache driven by a stateful rebuilder policy. More...
class  NeighborListBuilder
 Type-state fluent neighbor-list builder. More...
struct  NeighborListBuildTraits
 Traits that couple a concrete neighbor-list type to its build logic and type-specific parameters. More...
struct  NeighborListBuildTraits< ArborX1dNeighborList< MemorySpace > >
struct  NeighborListBuildTraits< ArborX2dNeighborList< MemorySpace > >
struct  NeighborListBuildTraits< PeriodicArborX1dNeighborList< MemorySpace, ImageShiftScalar > >
struct  NeighborListBuildTraits< PeriodicArborX2dNeighborList< MemorySpace, ImageShiftScalar > >
struct  NeighborListBuildTraits< PeriodicSTKSearchNeighborList< MemorySpace, ImageShiftScalar > >
struct  NeighborListBuildTraits< STKSearchNeighborList< MemorySpace > >
struct  NeighborListIterationTraits
 Traits class coupling a concrete neighbor-list type to its parallel dispatch strategy. More...
class  NeighborPair
 Lightweight neighbor-pair view. More...
class  Neighbors
 Lightweight neighbor-range view for one target. More...
class  NeighborSearchCandidate
 Non-periodic target/source candidate produced during neighbor-list construction. More...
struct  NeverRebuild
 Rebuilder that suppresses all rebuilds after the first. More...
class  NoExcluder
 Empty excluder used as the starting point for neighbor-list builders. More...
class  PeriodicArborX1dNeighborList
 ArborX compressed 1D neighbor list whose stored pairs carry per-object periodic image shifts. More...
class  PeriodicArborX2dNeighborList
 ArborX dense 2D neighbor list whose stored entries carry per-object periodic image shifts. More...
class  PeriodicNeighborSearchCandidate
 Periodic owner-pair candidate produced during neighbor-list construction. More...
class  PeriodicSearchInput
 A SearchInput augmented with a periodicity metric for periodic neighbor-list builds. More...
class  PeriodicSTKSearchNeighborList
 STK coarse-search neighbor list with compressed owner-pair storage and per-object periodic image shifts. More...
class  RebuilderChain
 Type-level OR chain of two rebuilders. More...
class  RebuildOnAABBDisplacement
 Rebuilder that triggers when any box corner moves beyond a displacement threshold. More...
class  RebuildOnEntityChange
 Rebuilder that triggers when the target or source entity sequence changes. More...
class  RebuildOnOBBDisplacement
 Rebuilder that triggers when any OBB escapes its inflated snapshot. More...
class  SearchInput
 A selector paired with a geometry-yielding component for a non-periodic neighbor-list build. More...
struct  STKBuildPhaseTimings
 Per-phase wall-time breakdown for one STKSearchNeighborList build call. More...
class  STKSearchNeighborList
 STK coarse-search neighbor list mapped into Mundy's common access surface. More...

Concepts

concept  AABBSearchInputType
 A NeighborListInputType whose component yields an AABB — the broad-phase volume expected by the AABB-based neighbor lists (STK and ArborX).
concept  AABBSearchInputTypeFor
 An AABBSearchInputType whose component yields an AABB in Scalar precision.
concept  ExcluderType
 Specifies a build-time excluder object that can prepare itself for selected target/source chunks.
concept  NeighborListInputType
 The fixed "identity" of a neighbor-list input, encoding which group of entities are searched and how to read their geometry.
concept  NeighborListType
 Specifies the protocol that all Mundy neighbor-list implementations must satisfy.
concept  PeriodicAABBSearchInputType
 An AABBSearchInputType that also carries a periodicity metric (PeriodicSearchInput).
concept  RebuilderType
 Specifies a stateful policy that decides when a neighbor list needs to be rebuilt.

Functions

template<NeighborListType ListType, typename Functor>
void for_each_neighbor_pair (const ListType &list, const Functor &functor)
 Run a callback for every stored neighbor pair using the list's default execution space.
template<NeighborListType ListType, typename ExecutionSpace, typename Functor>
void for_each_neighbor_pair (const ExecutionSpace &exec_space, const ListType &list, const Functor &functor)
 Run a callback for every stored neighbor pair using a provided execution space.
template<NeighborListType ListType, typename Functor>
void for_each_target_with_neighbors (const ListType &list, const Functor &functor)
 Run a callback for every target and its neighbors using the list's default execution space.
template<NeighborListType ListType, typename ExecutionSpace, typename Functor>
void for_each_target_with_neighbors (const ExecutionSpace &exec_space, const ListType &list, const Functor &functor)
 Run a callback for every target and its neighbors using a provided execution space.
template<NeighborListType ListType, typename Functor, typename ReducerType>
void for_each_neighbor_pair_reduce (const ListType &list, const Functor &functor, ReducerType &reducer)
 Run a Kokkos reduction over every stored neighbor pair using the list's default execution space.
template<NeighborListType ListType, typename ExecutionSpace, typename Functor, typename ReducerType>
void for_each_neighbor_pair_reduce (const ExecutionSpace &exec_space, const ListType &list, const Functor &functor, ReducerType &reducer)
 Run a Kokkos reduction over every stored neighbor pair using a provided execution space.
template<NeighborListType ListType, typename Functor, typename ReducerType>
void for_each_target_with_neighbors_reduce (const ListType &list, const Functor &functor, ReducerType &reducer)
 Run a Kokkos reduction over every target and its neighbors using the list's default execution space.
template<NeighborListType ListType, typename ExecutionSpace, typename Functor, typename ReducerType>
void for_each_target_with_neighbors_reduce (const ExecutionSpace &exec_space, const ListType &list, const Functor &functor, ReducerType &reducer)
 Run a Kokkos reduction over every target and its neighbors using a provided execution space.
template<typename ListType>
NeighborListBuilder< ListType > make_neighbor_list_builder ()
 Create an empty fluent builder for a concrete neighbor-list type.

Variables

bool enable_stk_build_profiling {false}
 Set to true before calling build() to enable per-phase timing.
STKBuildPhaseTimings stk_build_last_timings {}
 Populated by the most recent build() call when enable_stk_build_profiling is true.

Function Documentation

◆ for_each_neighbor_pair() [1/2]

template<NeighborListType ListType, typename Functor>
void mundy::search::for_each_neighbor_pair ( const ListType & list,
const Functor & functor )
Parameters
list[in] Concrete neighbor list.
functor[in] Callback invoked once per stored neighbor pair: functor(NeighborPair<ListType>).

◆ for_each_neighbor_pair() [2/2]

template<NeighborListType ListType, typename ExecutionSpace, typename Functor>
void mundy::search::for_each_neighbor_pair ( const ExecutionSpace & exec_space,
const ListType & list,
const Functor & functor )
Parameters
exec_space[in] Execution space for the outer target-parallel loop.
list[in] Concrete neighbor list.
functor[in] Callback invoked once per stored neighbor pair: functor(NeighborPair<ListType>).

◆ for_each_target_with_neighbors() [1/2]

template<NeighborListType ListType, typename Functor>
void mundy::search::for_each_target_with_neighbors ( const ListType & list,
const Functor & functor )
Parameters
list[in] Concrete neighbor list.
functor[in] Callback invoked once per target: functor(Neighbors<ListType>).

◆ for_each_target_with_neighbors() [2/2]

template<NeighborListType ListType, typename ExecutionSpace, typename Functor>
void mundy::search::for_each_target_with_neighbors ( const ExecutionSpace & exec_space,
const ListType & list,
const Functor & functor )
Parameters
exec_space[in] Execution space for the target-parallel loop.
list[in] Concrete neighbor list.
functor[in] Callback invoked once per target: functor(Neighbors<ListType>).

◆ for_each_neighbor_pair_reduce() [1/2]

template<NeighborListType ListType, typename Functor, typename ReducerType>
void mundy::search::for_each_neighbor_pair_reduce ( const ListType & list,
const Functor & functor,
ReducerType & reducer )
Parameters
list[in] Concrete neighbor list.
functor[in] Callback invoked once per stored neighbor pair: functor(NeighborPair<ListType>, value_type&).
reducer[in,out] Kokkos reducer (e.g. Kokkos::Sum<double>) that owns the result and defines join/init.

◆ for_each_neighbor_pair_reduce() [2/2]

template<NeighborListType ListType, typename ExecutionSpace, typename Functor, typename ReducerType>
void mundy::search::for_each_neighbor_pair_reduce ( const ExecutionSpace & exec_space,
const ListType & list,
const Functor & functor,
ReducerType & reducer )
Parameters
exec_space[in] Execution space for the outer target-parallel loop.
list[in] Concrete neighbor list.
functor[in] Callback invoked once per stored neighbor pair: functor(NeighborPair<ListType>, value_type&).
reducer[in,out] Kokkos reducer (e.g. Kokkos::Sum<double>) that owns the result and defines join/init.

◆ for_each_target_with_neighbors_reduce() [1/2]

template<NeighborListType ListType, typename Functor, typename ReducerType>
void mundy::search::for_each_target_with_neighbors_reduce ( const ListType & list,
const Functor & functor,
ReducerType & reducer )
Parameters
list[in] Concrete neighbor list.
functor[in] Callback invoked once per target: functor(Neighbors<ListType>, value_type&).
reducer[in,out] Kokkos reducer (e.g. Kokkos::Sum<double>) that owns the result and defines join/init.

◆ for_each_target_with_neighbors_reduce() [2/2]

template<NeighborListType ListType, typename ExecutionSpace, typename Functor, typename ReducerType>
void mundy::search::for_each_target_with_neighbors_reduce ( const ExecutionSpace & exec_space,
const ListType & list,
const Functor & functor,
ReducerType & reducer )
Parameters
exec_space[in] Execution space for the target-parallel loop.
list[in] Concrete neighbor list.
functor[in] Callback invoked once per target: functor(Neighbors<ListType>, value_type&).
reducer[in,out] Kokkos reducer (e.g. Kokkos::Sum<double>) that owns the result and defines join/init.

◆ make_neighbor_list_builder()

template<typename ListType>
NeighborListBuilder< ListType > mundy::search::make_neighbor_list_builder ( )

Variable Documentation

◆ enable_stk_build_profiling

bool mundy::search::enable_stk_build_profiling {false}
inline

◆ stk_build_last_timings

STKBuildPhaseTimings mundy::search::stk_build_last_timings {}
inline