Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::search::ExcluderChain< PriorExcluder, Excluder > Class Template Reference

Type-level chain of Kokkos-callable excluders. More...

#include <Excluder.hpp>

Public Types

Aliases
using prior_excluder_type = PriorExcluder
using appended_excluder_type = Excluder

Public Member Functions

Constructors
 ExcluderChain ()=default
 Default constructor.
 ExcluderChain (const prior_excluder_type &prior_excluder, const appended_excluder_type &appended_excluder)
 Construct a chain from a previous excluder and a newly appended excluder.
Setup
void setup (const stk::mesh::BulkData &bulk_data, const stk::mesh::Selector &target_selector, const stk::mesh::Selector &source_selector)
 Prepare every excluder in the chain for the selected source and target chunks.
Filtering
template<typename Candidate>
bool operator() (const Candidate &candidate) const
 Return whether any excluder in the chain rejects the candidate pair.
template<ExcluderType NextExcluder>
ExcluderChain< ExcluderChain, NextExcluder > exclude (const NextExcluder &next_excluder) const
 Return a new excluder chain with one additional appended excluder.
Accessors
prior_excluder_type prior_excluder () const
 Get the previous excluder.
appended_excluder_type appended_excluder () const
 Get the newly appended excluder.

Detailed Description

template<ExcluderType PriorExcluder, ExcluderType Excluder>
class mundy::search::ExcluderChain< PriorExcluder, Excluder >

Each .exclude(...) call returns a new ExcluderChain containing the previous filtering behavior plus the newly appended excluder.

Member Typedef Documentation

◆ prior_excluder_type

template<ExcluderType PriorExcluder, ExcluderType Excluder>
using mundy::search::ExcluderChain< PriorExcluder, Excluder >::prior_excluder_type = PriorExcluder

◆ appended_excluder_type

template<ExcluderType PriorExcluder, ExcluderType Excluder>
using mundy::search::ExcluderChain< PriorExcluder, Excluder >::appended_excluder_type = Excluder

Constructor & Destructor Documentation

◆ ExcluderChain() [1/2]

template<ExcluderType PriorExcluder, ExcluderType Excluder>
mundy::search::ExcluderChain< PriorExcluder, Excluder >::ExcluderChain ( )
default

◆ ExcluderChain() [2/2]

template<ExcluderType PriorExcluder, ExcluderType Excluder>
mundy::search::ExcluderChain< PriorExcluder, Excluder >::ExcluderChain ( const prior_excluder_type & prior_excluder,
const appended_excluder_type & appended_excluder )
inline
Parameters
prior_excluder[in] Previous excluder.
appended_excluder[in] Newly appended excluder.

Member Function Documentation

◆ setup()

template<ExcluderType PriorExcluder, ExcluderType Excluder>
void mundy::search::ExcluderChain< PriorExcluder, Excluder >::setup ( const stk::mesh::BulkData & bulk_data,
const stk::mesh::Selector & target_selector,
const stk::mesh::Selector & source_selector )
inline
Parameters
bulk_data[in] STK bulk data used for mesh-dependent preparation.
target_selector[in] Selector defining the target chunk.
source_selector[in] Selector defining the source chunk.

◆ operator()()

template<ExcluderType PriorExcluder, ExcluderType Excluder>
template<typename Candidate>
bool mundy::search::ExcluderChain< PriorExcluder, Excluder >::operator() ( const Candidate & candidate) const
inline
Parameters
candidate[in] Candidate pair produced by a search backend.

◆ exclude()

template<ExcluderType PriorExcluder, ExcluderType Excluder>
template<ExcluderType NextExcluder>
ExcluderChain< ExcluderChain, NextExcluder > mundy::search::ExcluderChain< PriorExcluder, Excluder >::exclude ( const NextExcluder & next_excluder) const
inline
Parameters
next_excluder[in] Excluder to append to the chain.

◆ prior_excluder()

template<ExcluderType PriorExcluder, ExcluderType Excluder>
prior_excluder_type mundy::search::ExcluderChain< PriorExcluder, Excluder >::prior_excluder ( ) const
inline

◆ appended_excluder()

template<ExcluderType PriorExcluder, ExcluderType Excluder>
appended_excluder_type mundy::search::ExcluderChain< PriorExcluder, Excluder >::appended_excluder ( ) const
inline