Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::search::NeighborListIterationTraits< ListType > Struct Template Reference

Traits class coupling a concrete neighbor-list type to its parallel dispatch strategy. More...

#include <NeighborListIterationTraits.hpp>

Public Types

using size_type = typename ListType::size_type
 Size type used by the list.

Static Public Member Functions

template<typename ExecutionSpace, typename Functor>
static void dispatch_pair (const ExecutionSpace &exec, const ListType &list, const Functor &f)
 Dispatch a pair callback over all stored pairs.
template<typename ExecutionSpace, typename Functor, typename ReducerType>
static void dispatch_pair_reduce (const ExecutionSpace &exec, const ListType &list, const Functor &f, ReducerType &r)
 Dispatch a pair reduction over all stored pairs.
template<typename ExecutionSpace, typename Functor>
static void dispatch_target (const ExecutionSpace &exec, const ListType &list, const Functor &f)
 Dispatch a target-neighbors callback over all targets.
template<typename ExecutionSpace, typename Functor, typename ReducerType>
static void dispatch_target_reduce (const ExecutionSpace &exec, const ListType &list, const Functor &f, ReducerType &r)
 Dispatch a target-neighbors reduction over all targets.

Detailed Description

template<typename ListType>
struct mundy::search::NeighborListIterationTraits< ListType >

The primary template implements the default target-parallel strategy. Specialize for list types that support a more efficient decomposition.

Member Typedef Documentation

◆ size_type

template<typename ListType>
using mundy::search::NeighborListIterationTraits< ListType >::size_type = typename ListType::size_type

Member Function Documentation

◆ dispatch_pair()

template<typename ListType>
template<typename ExecutionSpace, typename Functor>
void mundy::search::NeighborListIterationTraits< ListType >::dispatch_pair ( const ExecutionSpace & exec,
const ListType & list,
const Functor & f )
inlinestatic
Parameters
exec[in] Execution space instance.
list[in] Concrete neighbor list.
f[in] User callback: f(NeighborPair<ListType>)

◆ dispatch_pair_reduce()

template<typename ListType>
template<typename ExecutionSpace, typename Functor, typename ReducerType>
void mundy::search::NeighborListIterationTraits< ListType >::dispatch_pair_reduce ( const ExecutionSpace & exec,
const ListType & list,
const Functor & f,
ReducerType & r )
inlinestatic
Parameters
exec[in] Execution space instance.
list[in] Concrete neighbor list.
f[in] User callback: f(NeighborPair<ListType>, value_type&)
r[in,out] Kokkos reducer (e.g. Kokkos::Sum<double>) that owns the result and defines join/init.

◆ dispatch_target()

template<typename ListType>
template<typename ExecutionSpace, typename Functor>
void mundy::search::NeighborListIterationTraits< ListType >::dispatch_target ( const ExecutionSpace & exec,
const ListType & list,
const Functor & f )
inlinestatic
Parameters
exec[in] Execution space instance.
list[in] Concrete neighbor list.
f[in] User callback: f(Neighbors<ListType>)

◆ dispatch_target_reduce()

template<typename ListType>
template<typename ExecutionSpace, typename Functor, typename ReducerType>
void mundy::search::NeighborListIterationTraits< ListType >::dispatch_target_reduce ( const ExecutionSpace & exec,
const ListType & list,
const Functor & f,
ReducerType & r )
inlinestatic
Parameters
exec[in] Execution space instance.
list[in] Concrete neighbor list.
f[in] User callback: f(Neighbors<ListType>, value_type&)
r[in,out] Kokkos reducer (e.g. Kokkos::Sum<double>) that owns the result and defines join/init.