Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder > Class Template Reference

Type-state fluent neighbor-list builder. More...

#include <NeighborListBuilder.hpp>

Public Types

Aliases
using neighbor_list_type = ListType
using execution_space = ExecutionSpace
using target_input_type = TargetInput
using source_input_type = SourceInput
using broad_excluder_type = BroadExcluder
using narrow_excluder_type = NarrowExcluder
using build_args_type = typename NeighborListBuildTraits<neighbor_list_type>::args_type
 Shorthand for the build-specific parameter struct of this list type.

Public Member Functions

Constructors
 NeighborListBuilder ()=default
 Construct an empty builder.
Builder modifiers
template<typename NewExecutionSpace>
auto exec_space (const NewExecutionSpace &exec_space) const
 Return a new builder with the execution space supplied.
template<NeighborListInputType NewTargetInput>
auto target_input (const NewTargetInput &target_input) const
 Return a new builder with the target input supplied.
template<NeighborListInputType NewSourceInput>
auto source_input (const NewSourceInput &source_input) const
 Return a new builder with the source input supplied.
template<ExcluderType NextExcluder>
auto broad_phase (const NextExcluder &next_excluder) const
 Return a new builder type with an appended broad-phase excluder.
template<ExcluderType NextExcluder>
auto narrow_phase (const NextExcluder &next_excluder) const
 Return a new builder type with an appended narrow-phase excluder.
auto sort_neighbors (bool sort) const
 Return a new builder with the neighbor-sort flag set.
Accessors
const execution_spaceexec_space () const noexcept
 Get the execution space used by the eventual build.
const target_input_typetarget_input () const noexcept
 Get the selected target input.
const source_input_typesource_input () const noexcept
 Get the selected source input.
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.
const broad_excluder_typebroad_excluder () const noexcept
 Get the broad-phase excluder stored by the builder.
const narrow_excluder_typenarrow_excluder () const noexcept
 Get the narrow-phase excluder stored by the builder.
bool sort_neighbors () const noexcept
 Whether neighbor rows will be sorted by source ordinal after construction.
broad_excluder_type setup_broad_excluder (const stk::mesh::BulkData &bulk_data) const
 Return a prepared copy of the broad-phase excluder.
narrow_excluder_type setup_narrow_excluder (const stk::mesh::BulkData &bulk_data) const
 Return a prepared copy of the narrow-phase excluder.

Static Public Attributes

State
static constexpr bool has_exec_space = !std::same_as<execution_space, impl::UnsetNeighborListBuilderField>
 Whether the execution space has been supplied.
static constexpr bool has_target_input = NeighborListInputType<target_input_type>
 Whether the target input has been supplied.
static constexpr bool has_source_input = NeighborListInputType<source_input_type>
 Whether the source input has been supplied.
static constexpr bool has_selected_inputs = has_target_input && has_source_input
 Whether both selected inputs have been supplied.
static constexpr bool is_complete = has_exec_space && has_selected_inputs
 Whether all fields required by build() have been supplied.
static constexpr bool has_broad_phase = !std::same_as<broad_excluder_type, NoExcluder>
 Whether a broad-phase excluder has been supplied.
static constexpr bool has_narrow_phase = !std::same_as<narrow_excluder_type, NoExcluder>
 Whether a narrow-phase excluder has been supplied.

Actions

template<typename, typename, typename, typename, ExcluderType, ExcluderType>
class NeighborListBuilder
neighbor_list_type build (const stk::mesh::BulkData &bulk_data, const build_args_type &args={}) const
 Build the concrete neighbor list.
template<RebuilderType Rebuilder>
auto manage (Rebuilder rebuilder) const
 Wrap this builder in a ManagedNeighborList driven by a stateful rebuilder policy.

Detailed Description

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
class mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >

A builder starts empty. Calls to exec_space(...), target_input(...), and source_input(...) return new builder types carrying the supplied field. Calls to .broad_phase(...) and .narrow_phase(...) may be made at any point and append excluders to the broad or narrow filter chain, respectively, without changing the selected inputs. build(bulk_data) delegates to NeighborListBuildTraits<ListType>::build.

Build arguments
Every concrete list type publishes a NeighborListBuildTraits<ListType>::args_type struct for its backend-specific parameters (e.g., buffer_size for ArborX types). At a call site, pass the args inline using designated aggregate initialization — the type is deduced from the function parameter and need not be spelled out:
builder.build(bulk_data, {.buffer_size = 16});
When the args type must be named explicitly (pre-declaring, storing, forwarding), use the build_args_type alias exposed directly on the builder:
MyBuilder::build_args_type args{};
args.buffer_size = 16;
friend class NeighborListBuilder
Definition NeighborListBuilder.hpp:354
List types that require no extra parameters (e.g., STKSearchNeighborList) have an empty args_type; omit the second argument entirely and call build(bulk_data).
Example — ArborX 1D list with broad and narrow phase excluders
// target_input and source_input are SearchInput<AABBFieldComponent<...>> (selector + AABB component).
.exec_space(Kokkos::DefaultExecutionSpace{})
.source_input(source_input)
.broad_phase(ExcludeSelfInteraction{})
.narrow_phase(ExcludeNonIntersectingOBBs{obb_component})
.build(bulk_data, {.buffer_size = 16});
const source_input_type & source_input() const noexcept
Get the selected source input.
Definition NeighborListBuilder.hpp:255
neighbor_list_type build(const stk::mesh::BulkData &bulk_data, const build_args_type &args={}) const
Build the concrete neighbor list.
Definition NeighborListBuilder.hpp:314
auto narrow_phase(const NextExcluder &next_excluder) const
Return a new builder type with an appended narrow-phase excluder.
Definition NeighborListBuilder.hpp:213
const target_input_type & target_input() const noexcept
Get the selected target input.
Definition NeighborListBuilder.hpp:248
const execution_space & exec_space() const noexcept
Get the execution space used by the eventual build.
Definition NeighborListBuilder.hpp:241
NeighborListBuilder< ListType > make_neighbor_list_builder()
Create an empty fluent builder for a concrete neighbor-list type.
Definition NeighborListBuilder.hpp:407
Exclude degenerate (self) interactions.
Definition Excluder.hpp:211
Example — STK search list (no build args)
.target_input(target_input)
.source_input(source_input)
.build(bulk_data);
auto source_input(const NewSourceInput &source_input) const
Return a new builder with the source input supplied.
Definition NeighborListBuilder.hpp:187
auto exec_space(const NewExecutionSpace &exec_space) const
Return a new builder with the execution space supplied.
Definition NeighborListBuilder.hpp:169
auto target_input(const NewTargetInput &target_input) const
Return a new builder with the target input supplied.
Definition NeighborListBuilder.hpp:178
Example — managed list with rebuilder (manage() at any position)
// Each time-step:
const auto& nl = managed.update(bulk_data, targets, sources);
auto manage(Rebuilder rebuilder) const
Wrap this builder in a ManagedNeighborList driven by a stateful rebuilder policy.
Definition NeighborListBuilder.hpp:345
Rebuilder that triggers when any box corner moves beyond a displacement threshold.
Definition NeighborListRebuilder.hpp:454
Rebuilder that triggers when the target or source entity sequence changes.
Definition NeighborListRebuilder.hpp:314

Member Typedef Documentation

◆ neighbor_list_type

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
using mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::neighbor_list_type = ListType

◆ execution_space

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
using mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::execution_space = ExecutionSpace

◆ target_input_type

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
using mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::target_input_type = TargetInput

◆ source_input_type

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
using mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::source_input_type = SourceInput

◆ broad_excluder_type

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
using mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::broad_excluder_type = BroadExcluder

◆ narrow_excluder_type

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
using mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::narrow_excluder_type = NarrowExcluder

◆ build_args_type

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
using mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::build_args_type = typename NeighborListBuildTraits<neighbor_list_type>::args_type

Equivalent to NeighborListBuildTraits<neighbor_list_type>::args_type. Use this alias when the args type must be named explicitly; at a call site, prefer passing {.field = value} inline instead.

Constructor & Destructor Documentation

◆ NeighborListBuilder()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::NeighborListBuilder ( )
default

Member Function Documentation

◆ exec_space() [1/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
template<typename NewExecutionSpace>
auto mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::exec_space ( const NewExecutionSpace & exec_space) const
inline
Parameters
exec_space[in] Execution space used by the eventual build.

◆ target_input() [1/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
template<NeighborListInputType NewTargetInput>
auto mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::target_input ( const NewTargetInput & target_input) const
inline
Parameters
target_input[in] Selected target input.

◆ source_input() [1/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
template<NeighborListInputType NewSourceInput>
auto mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::source_input ( const NewSourceInput & source_input) const
inline
Parameters
source_input[in] Selected source input.

◆ broad_phase()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
template<ExcluderType NextExcluder>
auto mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::broad_phase ( const NextExcluder & next_excluder) const
inline

Broad-phase excluders are applied during the broad phase to reject candidate pairs early.

Parameters
next_excluder[in] Excluder to append to the broad-phase chain.

◆ narrow_phase()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
template<ExcluderType NextExcluder>
auto mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::narrow_phase ( const NextExcluder & next_excluder) const
inline

Narrow-phase excluders are applied after the broad phase for fine-grained pair filtering.

Parameters
next_excluder[in] Excluder to append to the narrow-phase chain.

◆ sort_neighbors() [1/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
auto mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::sort_neighbors ( bool sort) const
inline

When true, each target's neighbor row is sorted by ascending source ordinal after construction. Sorting improves spatial locality when kernels access per-source data (positions, radii, …) for multiple targets that share neighbors. Periodic list variants keep the associated image-shift data consistent with the sorted order.

Default is false (the order produced by the search is preserved).

Parameters
sort[in] Whether to sort neighbor rows by source ordinal after construction.

◆ exec_space() [2/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
const execution_space & mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::exec_space ( ) const
inlinenoexcept

◆ target_input() [2/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
const target_input_type & mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::target_input ( ) const
inlinenoexcept

◆ source_input() [2/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
const source_input_type & mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::source_input ( ) const
inlinenoexcept

◆ target_selector()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
const stk::mesh::Selector & mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::target_selector ( ) const
inlinenoexcept

◆ source_selector()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
const stk::mesh::Selector & mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::source_selector ( ) const
inlinenoexcept

◆ broad_excluder()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
const broad_excluder_type & mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::broad_excluder ( ) const
inlinenoexcept

◆ narrow_excluder()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
const narrow_excluder_type & mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::narrow_excluder ( ) const
inlinenoexcept

◆ sort_neighbors() [2/2]

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::sort_neighbors ( ) const
inlinenoexcept

◆ setup_broad_excluder()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
broad_excluder_type mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::setup_broad_excluder ( const stk::mesh::BulkData & bulk_data) const
inline
Parameters
bulk_data[in] STK bulk data used for mesh-dependent excluder setup.

◆ setup_narrow_excluder()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
narrow_excluder_type mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::setup_narrow_excluder ( const stk::mesh::BulkData & bulk_data) const
inline
Parameters
bulk_data[in] STK bulk data used for mesh-dependent excluder setup.

◆ build()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
neighbor_list_type mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::build ( const stk::mesh::BulkData & bulk_data,
const build_args_type & args = {} ) const
inline

Delegates to NeighborListBuildTraits<neighbor_list_type>::build(*this, bulk_data, args). Specialize NeighborListBuildTraits<ListType> to define build behavior and type-specific parameters for a new concrete neighbor-list type.

Parameters
bulk_data[in] STK bulk data used for excluder setup.
args[in] Build-specific parameters; defaults to default-constructed args_type.

◆ manage()

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
template<RebuilderType Rebuilder>
auto mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::manage ( Rebuilder rebuilder) const
inline

Captures the current builder state (execution space, broad and narrow excluders, sort flag) into a ManagedNeighborList. The remaining fluent methods — exec_space, broad_phase, narrow_phase, and sort_neighbors — remain available on the returned object, so this call may appear at any position in the chain:

// manage() first, then finish configuring:
.exec_space(exec)
.broad_phase(ExcludeSelfInteraction{});
// Each time-step:
const auto& nl = managed.update(bulk, targets, sources);
Parameters
rebuilder[in] Rebuilder instance moved into the returned ManagedNeighborList.

◆ NeighborListBuilder

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
template<typename, typename, typename, typename, ExcluderType, ExcluderType>
friend class NeighborListBuilder
friend

Member Data Documentation

◆ has_exec_space

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::has_exec_space = !std::same_as<execution_space, impl::UnsetNeighborListBuilderField>
staticconstexpr

◆ has_target_input

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::has_target_input = NeighborListInputType<target_input_type>
staticconstexpr

◆ has_source_input

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::has_source_input = NeighborListInputType<source_input_type>
staticconstexpr

◆ has_selected_inputs

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::has_selected_inputs = has_target_input && has_source_input
staticconstexpr

◆ is_complete

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::is_complete = has_exec_space && has_selected_inputs
staticconstexpr

◆ has_broad_phase

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::has_broad_phase = !std::same_as<broad_excluder_type, NoExcluder>
staticconstexpr

◆ has_narrow_phase

template<typename ListType, typename ExecutionSpace = impl::UnsetNeighborListBuilderField, typename TargetInput = impl::UnsetNeighborListBuilderField, typename SourceInput = impl::UnsetNeighborListBuilderField, ExcluderType BroadExcluder = NoExcluder, ExcluderType NarrowExcluder = NoExcluder>
bool mundy::search::NeighborListBuilder< ListType, ExecutionSpace, TargetInput, SourceInput, BroadExcluder, NarrowExcluder >::has_narrow_phase = !std::same_as<narrow_excluder_type, NoExcluder>
staticconstexpr