Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::search::RebuilderChain< PriorRebuilder, Rebuilder > Class Template Reference

Type-level OR chain of two rebuilders. More...

#include <NeighborListRebuilder.hpp>

Public Types

Aliases
using prior_rebuilder_type = PriorRebuilder
using appended_rebuilder_type = Rebuilder

Public Member Functions

Constructors
 RebuilderChain ()=default
 RebuilderChain (const prior_rebuilder_type &prior, const appended_rebuilder_type &next)
Rebuild policy
void setup (const stk::mesh::BulkData &bulk, const stk::mesh::Selector &target_selector, const stk::mesh::Selector &source_selector)
 Forward per-update setup to both chain members.
template<typename TargetInput, typename SourceInput>
bool needs_rebuild (const stk::mesh::BulkData &bulk, const TargetInput &targets, const SourceInput &sources)
 Return true if either rebuilder in the chain signals a rebuild is needed.
template<typename TargetInput, typename SourceInput>
void snapshot (const stk::mesh::BulkData &bulk, const TargetInput &targets, const SourceInput &sources)
 Snapshot state in both chain members to keep all snapshots current.
Chaining
template<RebuilderType Next>
RebuilderChain< RebuilderChain, Next > rebuild_if (const Next &next) const
 Return a chain of this chain OR-combined with next.
template<RebuilderType Next>
RebuilderChain< RebuilderChain, Next > operator| (const Next &next) const
Accessors
prior_rebuilder_typeprior () noexcept
const prior_rebuilder_typeprior () const noexcept
appended_rebuilder_typenext () noexcept
const appended_rebuilder_typenext () const noexcept

Detailed Description

template<typename PriorRebuilder, typename Rebuilder>
class mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >

needs_rebuild short-circuits: if prior_ triggers, next_ is not consulted. snapshot always fires on both members so that every rebuilder's snapshot stays current.

Build chains with any rebuilder's .rebuild_if(next) or operator| method.

Member Typedef Documentation

◆ prior_rebuilder_type

template<typename PriorRebuilder, typename Rebuilder>
using mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::prior_rebuilder_type = PriorRebuilder

◆ appended_rebuilder_type

template<typename PriorRebuilder, typename Rebuilder>
using mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::appended_rebuilder_type = Rebuilder

Constructor & Destructor Documentation

◆ RebuilderChain() [1/2]

template<typename PriorRebuilder, typename Rebuilder>
mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::RebuilderChain ( )
default

◆ RebuilderChain() [2/2]

template<typename PriorRebuilder, typename Rebuilder>
mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::RebuilderChain ( const prior_rebuilder_type & prior,
const appended_rebuilder_type & next )
inline

Member Function Documentation

◆ setup()

template<typename PriorRebuilder, typename Rebuilder>
void mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::setup ( const stk::mesh::BulkData & bulk,
const stk::mesh::Selector & target_selector,
const stk::mesh::Selector & source_selector )
inline

◆ needs_rebuild()

template<typename PriorRebuilder, typename Rebuilder>
template<typename TargetInput, typename SourceInput>
bool mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::needs_rebuild ( const stk::mesh::BulkData & bulk,
const TargetInput & targets,
const SourceInput & sources )
inline

◆ snapshot()

template<typename PriorRebuilder, typename Rebuilder>
template<typename TargetInput, typename SourceInput>
void mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::snapshot ( const stk::mesh::BulkData & bulk,
const TargetInput & targets,
const SourceInput & sources )
inline

◆ rebuild_if()

template<typename PriorRebuilder, typename Rebuilder>
template<RebuilderType Next>
RebuilderChain< RebuilderChain, Next > mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::rebuild_if ( const Next & next) const
inline

◆ operator|()

template<typename PriorRebuilder, typename Rebuilder>
template<RebuilderType Next>
RebuilderChain< RebuilderChain, Next > mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::operator| ( const Next & next) const
inline

◆ prior() [1/2]

template<typename PriorRebuilder, typename Rebuilder>
prior_rebuilder_type & mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::prior ( )
inlinenoexcept

◆ prior() [2/2]

template<typename PriorRebuilder, typename Rebuilder>
const prior_rebuilder_type & mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::prior ( ) const
inlinenoexcept

◆ next() [1/2]

template<typename PriorRebuilder, typename Rebuilder>
appended_rebuilder_type & mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::next ( )
inlinenoexcept

◆ next() [2/2]

template<typename PriorRebuilder, typename Rebuilder>
const appended_rebuilder_type & mundy::search::RebuilderChain< PriorRebuilder, Rebuilder >::next ( ) const
inlinenoexcept