Wildmeshing Toolkit
wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ > Class Template Reference

#include <MultiMeshSimplexVisitor.hpp>

Public Types

using MeshVariantTraits = wmtk::utils::metaprogramming::MeshVariantTraits
 
using NodeFunctor = NodeFunctor_
 
using ReturnDataType = wmtk::utils::metaprogramming::ReferenceWrappedFunctorReturnCacheCustomComparator< NodeFunctor, MeshVariantTraits, wmtk::simplex::utils::MeshSimplexComparator, simplex::NavigatableSimplex >
 
using CacheType = ReturnDataType
 
using TypeHelper = wmtk::utils::metaprogramming::detail::ReferenceWrappedFunctorReturnType< NodeFunctor, MeshVariantTraits::AllReferenceTuple, wmtk::simplex::Simplex >
 
template<typename MeshType >
using GetReturnType_t = typename TypeHelper::template ReturnType< MeshType >
 
using Executor = MultiMeshSimplexVisitorExecutor< MultiMeshSimplexVisitor< cell_dimension, NodeFunctor > >
 

Public Member Functions

 MultiMeshSimplexVisitor (NodeFunctor &&f)
 
 MultiMeshSimplexVisitor (std::integral_constant< int64_t, cell_dimension >, NodeFunctor &&f)
 
template<typename MeshType >
void execute_mesh (MeshType &&mesh, const simplex::NavigatableSimplex &simplex)
 
void execute_from_root (Mesh &mesh, const simplex::NavigatableSimplex &simplex)
 
const CacheTypecache () const
 
CacheType take_cache ()
 
auto node_events () const
 
const auto & edge_events () const
 

Static Public Attributes

constexpr static int64_t cell_dimension = cell_dimension_
 
constexpr static bool HasReturnCache
 
template<typename MeshType >
constexpr static bool HasReturnValue_v = !std::is_void_v<GetReturnType_t<MeshType>>
 

Protected Types

using KeyType = std::conditional_t< HasReturnCache, typename ReturnDataType::KeyType, std::tuple< const Mesh * > >
 

Protected Attributes

NodeFunctor m_node_functor
 
CacheType m_cache
 
std::vector< std::tuple< KeyType, KeyType > > m_edge_events
 

Friends

template<typename MMVisitor_ >
class MultiMeshSimplexVisitorExecutor
 

Detailed Description

template<int64_t cell_dimension_, typename NodeFunctor_>
class wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >

Definition at line 29 of file MultiMeshSimplexVisitor.hpp.

Member Typedef Documentation

◆ CacheType

template<int64_t cell_dimension_, typename NodeFunctor_ >
using wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::CacheType = ReturnDataType

Definition at line 45 of file MultiMeshSimplexVisitor.hpp.

◆ Executor

template<int64_t cell_dimension_, typename NodeFunctor_ >
using wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::Executor = MultiMeshSimplexVisitorExecutor<MultiMeshSimplexVisitor<cell_dimension, NodeFunctor> >

Definition at line 83 of file MultiMeshSimplexVisitor.hpp.

◆ GetReturnType_t

template<int64_t cell_dimension_, typename NodeFunctor_ >
template<typename MeshType >
using wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::GetReturnType_t = typename TypeHelper::template ReturnType<MeshType>

Definition at line 53 of file MultiMeshSimplexVisitor.hpp.

◆ KeyType

template<int64_t cell_dimension_, typename NodeFunctor_ >
using wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::KeyType = std:: conditional_t<HasReturnCache, typename ReturnDataType::KeyType, std::tuple<const Mesh*> >
protected

Definition at line 137 of file MultiMeshSimplexVisitor.hpp.

◆ MeshVariantTraits

template<int64_t cell_dimension_, typename NodeFunctor_ >
using wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::MeshVariantTraits = wmtk::utils::metaprogramming::MeshVariantTraits

Definition at line 32 of file MultiMeshSimplexVisitor.hpp.

◆ NodeFunctor

template<int64_t cell_dimension_, typename NodeFunctor_ >
using wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::NodeFunctor = NodeFunctor_

Definition at line 33 of file MultiMeshSimplexVisitor.hpp.

◆ ReturnDataType

◆ TypeHelper

Constructor & Destructor Documentation

◆ MultiMeshSimplexVisitor() [1/2]

template<int64_t cell_dimension_, typename NodeFunctor_ >
wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::MultiMeshSimplexVisitor ( NodeFunctor &&  f)
inline

Definition at line 68 of file MultiMeshSimplexVisitor.hpp.

◆ MultiMeshSimplexVisitor() [2/2]

template<int64_t cell_dimension_, typename NodeFunctor_ >
wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::MultiMeshSimplexVisitor ( std::integral_constant< int64_t, cell_dimension ,
NodeFunctor &&  f 
)
inline

Definition at line 76 of file MultiMeshSimplexVisitor.hpp.

Member Function Documentation

◆ cache()

template<int64_t cell_dimension_, typename NodeFunctor_ >
const CacheType& wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::cache ( ) const
inline

Definition at line 128 of file MultiMeshSimplexVisitor.hpp.

References wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::m_cache.

Referenced by wmtk::multimesh::MultiMeshSimplexEventVisitor< cell_dimension, Functor >::get_cached_return().

Here is the caller graph for this function:

◆ edge_events()

template<int64_t cell_dimension_, typename NodeFunctor_ >
const auto& wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::edge_events ( ) const
inline

Definition at line 131 of file MultiMeshSimplexVisitor.hpp.

References wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::m_edge_events.

Referenced by wmtk::multimesh::MultiMeshSimplexEventVisitor< cell_dimension, Functor >::edge_events().

Here is the caller graph for this function:

◆ execute_from_root()

template<int64_t cell_dimension_, typename NodeFunctor_ >
void wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::execute_from_root ( Mesh mesh,
const simplex::NavigatableSimplex simplex 
)
inline

Definition at line 114 of file MultiMeshSimplexVisitor.hpp.

References wmtk::utils::metaprogramming::as_mesh_variant(), wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::execute_mesh(), wmtk::Mesh::get_multi_mesh_root(), wmtk::Mesh::is_valid(), wmtk::Mesh::map_to_root(), wmtk::simplex::NavigatableSimplex::tuple(), and wmtk::simplex::Simplex::tuple().

Referenced by wmtk::invariants::MultiMeshLinkConditionInvariant::before(), wmtk::MultiMeshMapValidInvariant::before(), wmtk::operations::utils::multi_mesh_edge_collapse(), and wmtk::operations::utils::multi_mesh_edge_split().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ execute_mesh()

template<int64_t cell_dimension_, typename NodeFunctor_ >
template<typename MeshType >
void wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::execute_mesh ( MeshType &&  mesh,
const simplex::NavigatableSimplex simplex 
)
inline

◆ node_events()

template<int64_t cell_dimension_, typename NodeFunctor_ >
auto wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::node_events ( ) const
inline

Definition at line 130 of file MultiMeshSimplexVisitor.hpp.

References wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::m_cache.

Referenced by wmtk::multimesh::MultiMeshSimplexEventVisitor< cell_dimension, Functor >::node_events().

Here is the caller graph for this function:

◆ take_cache()

template<int64_t cell_dimension_, typename NodeFunctor_ >
CacheType wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::take_cache ( )
inline

Friends And Related Function Documentation

◆ MultiMeshSimplexVisitorExecutor

template<int64_t cell_dimension_, typename NodeFunctor_ >
template<typename MMVisitor_ >
friend class MultiMeshSimplexVisitorExecutor
friend

Definition at line 82 of file MultiMeshSimplexVisitor.hpp.

Member Data Documentation

◆ cell_dimension

template<int64_t cell_dimension_, typename NodeFunctor_ >
constexpr static int64_t wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::cell_dimension = cell_dimension_
staticconstexpr

Definition at line 34 of file MultiMeshSimplexVisitor.hpp.

◆ HasReturnCache

template<int64_t cell_dimension_, typename NodeFunctor_ >
constexpr static bool wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::HasReturnCache
staticconstexpr
Initial value:
=
!wmtk::utils::metaprogramming::
all_return_void_v<NodeFunctor, MeshVariantTraits, simplex::Simplex>

Definition at line 36 of file MultiMeshSimplexVisitor.hpp.

Referenced by wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::execute_mesh().

◆ HasReturnValue_v

template<int64_t cell_dimension_, typename NodeFunctor_ >
template<typename MeshType >
constexpr static bool wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::HasReturnValue_v = !std::is_void_v<GetReturnType_t<MeshType>>
staticconstexpr

Definition at line 55 of file MultiMeshSimplexVisitor.hpp.

◆ m_cache

◆ m_edge_events

template<int64_t cell_dimension_, typename NodeFunctor_ >
std::vector<std::tuple<KeyType, KeyType> > wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::m_edge_events
protected

◆ m_node_functor

template<int64_t cell_dimension_, typename NodeFunctor_ >
NodeFunctor wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::m_node_functor
protected

Definition at line 134 of file MultiMeshSimplexVisitor.hpp.


The documentation for this class was generated from the following files: