Wildmeshing Toolkit
wmtk::multimesh::MultiMeshManager Class Reference

Implementation details for how the Mesh class implements multiple meshes. More...

#include <MultiMeshManager.hpp>

Inheritance diagram for wmtk::multimesh::MultiMeshManager:
[legend]
Collaboration diagram for wmtk::multimesh::MultiMeshManager:
[legend]

Classes

struct  ChildData
 

Public Member Functions

 MultiMeshManager (int64_t dimension)
 
 ~MultiMeshManager ()
 
 MultiMeshManager (const MultiMeshManager &o)
 
 MultiMeshManager (MultiMeshManager &&o)
 
MultiMeshManageroperator= (const MultiMeshManager &o)
 
MultiMeshManageroperator= (MultiMeshManager &&o)
 
std::map< std::string, const wmtk::utils::Hashable * > child_hashables () const override
 
std::map< std::string, std::size_t > child_hashes () const override
 
void detach_children ()
 
std::vector< TypedAttributeHandle< int64_t > > map_handles () const
 
bool is_root () const
 Specifies whether this structure is the root of a multi-mesh tree. More...
 
int64_t child_id () const
 Specifies the child id of this mesh if it a child mesh in a mult-mesh tree. More...
 
std::vector< int64_t > absolute_id () const
 
Meshget_mesh (Mesh &m, const std::vector< int64_t > &absolute_id)
 
const Meshget_mesh (const Mesh &m, const std::vector< int64_t > &absolute_id) const
 
Meshget_child_mesh (Mesh &m, const std::vector< int64_t > &relative_id)
 
const Meshget_child_mesh (const Mesh &m, const std::vector< int64_t > &relative_id) const
 
void register_child_mesh (Mesh &my_mesh, const std::shared_ptr< Mesh > &child_mesh, const std::vector< std::array< Tuple, 2 >> &child_tuple_my_tuple_map)
 register a another mesh as a child of this mesh. More...
 
void deregister_child_mesh (Mesh &my_mesh, const std::shared_ptr< Mesh > &child_mesh_ptr)
 Deregister a child mesh. More...
 
void update_child_handles (Mesh &my_mesh)
 Clean up child data after deleting attributes. More...
 
std::vector< simplex::Simplexmap (const Mesh &my_mesh, const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh More...
 
std::vector< Tuplelub_map_tuples (const Mesh &my_mesh, const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh using the LUB as the root More...
 
std::vector< simplex::Simplexlub_map (const Mesh &my_mesh, const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh using the LUB as the root More...
 
std::vector< Tuplemap_tuples (const Mesh &my_mesh, const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh More...
 
simplex::Simplex map_to_parent (const Mesh &my_mesh, const simplex::Simplex &my_simplex) const
 optimized map from a simplex from this mesh to its direct parent More...
 
Tuple map_to_parent_tuple (const Mesh &my_mesh, const simplex::Simplex &my_simplex) const
 optimized map from a simplex from this mesh to its direct parent More...
 
simplex::Simplex map_to_root (const Mesh &my_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to the root mesh More...
 
Tuple map_to_root_tuple (const Mesh &my_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to the root mesh More...
 
std::vector< simplex::Simplexmap_to_child (const Mesh &my_mesh, const Mesh &child_mesh, const simplex::Simplex &my_simplex) const
 optimized map fromsimplex from this mesh to one of its direct children More...
 
std::vector< Tuplemap_to_child_tuples (const Mesh &my_mesh, const Mesh &child_mesh, const simplex::Simplex &my_simplex) const
 
bool can_map (const Mesh &my_mesh, const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 
bool can_map_child (const Mesh &my_mesh, const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 
const Meshget_root_mesh (const Mesh &my_mesh) const
 
Meshget_root_mesh (Mesh &my_mesh)
 
std::vector< std::shared_ptr< Mesh > > get_child_meshes () const
 
void serialize (MeshWriter &writer, const Mesh *local_root=nullptr) const
 
bool has_child_mesh_in_dimension (int64_t dimension) const
 
bool has_child_mesh () const
 
std::vector< int64_t > relative_id (const Mesh &my_mesh, const Mesh &parent_mesh) const
 
bool is_child (const Mesh &my_mesh, const Mesh &parent_mesh) const
 
void check_map_valid (const Mesh &my_mesh) const
 update all the hashes of the top-simplces of the parent mesh around a vertex hashes of the parent tuples in the maps for all child meshes More...
 
void check_child_map_valid (const Mesh &my_mesh, const ChildData &child_data) const
 
- Public Member Functions inherited from wmtk::utils::MerkleTreeInteriorNode
std::map< std::string, std::size_t > child_hashes () const override
 
- Public Member Functions inherited from wmtk::utils::Hashable
 Hashable ()
 
 Hashable (const Hashable &)
 
 Hashable (Hashable &&)
 
Hashableoperator= (const Hashable &)
 
Hashableoperator= (Hashable &&)
 
virtual ~Hashable ()
 
virtual std::size_t hash () const
 

Static Public Member Functions

static std::vector< int64_t > least_upper_bound_id (const std::vector< int64_t > &a, const std::vector< int64_t > &b)
 
static std::vector< int64_t > relative_id (const std::vector< int64_t > &parent, const std::vector< int64_t > &child)
 
static bool is_child (const std::vector< int64_t > &child, const std::vector< int64_t > &parent)
 

Protected Member Functions

Tuple map_tuple_to_parent_tuple (const Mesh &my_mesh, const Tuple &my_tuple) const
 
Tuple map_tuple_to_root_tuple (const Mesh &my_mesh, const Tuple &my_tuple) const
 
std::vector< Tuplemap_to_child_tuples (const Mesh &my_mesh, const ChildData &child_data, const simplex::Simplex &simplex) const
 
std::vector< Tuplemap_to_child_tuples (const Mesh &my_mesh, int64_t child_id, const simplex::Simplex &simplex) const
 
const std::vector< ChildData > & children () const
 
std::vector< ChildData > & children ()
 
std::array< wmtk::attribute::Accessor< int64_t >, 2 > get_map_accessors (Mesh &my_mesh, ChildData &c)
 
std::array< const wmtk::attribute::Accessor< int64_t >, 2 > get_map_const_accessors (const Mesh &my_mesh, const ChildData &c) const
 
void update_map_tuple_hashes (Mesh &my_mesh, PrimitiveType primitive_type, const std::vector< std::tuple< int64_t, std::vector< Tuple >>> &simplices_to_update, const std::vector< std::tuple< int64_t, std::array< int64_t, 2 >>> &split_cell_maps={})
 
void update_maps_from_edge_operation (Mesh &my_mesh, PrimitiveType primitive_type, const operations::EdgeOperationData &operation_data)
 
std::optional< Tuplefind_valid_tuple (Mesh &my_mesh, const simplex::Simplex &old_simplex, const int64_t old_gid, const std::vector< Tuple > &tuple_alternatives, const std::vector< std::tuple< int64_t, std::array< int64_t, 2 >>> &split_cell_maps={}) const
 
std::optional< Tuplefind_valid_tuple_from_alternatives (Mesh &my_mesh, PrimitiveType primitive_type, const std::vector< Tuple > &tuple_alternatives) const
 
std::optional< Tuplefind_valid_tuple_from_split (Mesh &my_mesh, const simplex::Simplex &old_simplex, const int64_t old_gid, const std::vector< Tuple > &tuple_alternatives, const std::vector< std::tuple< int64_t, std::array< int64_t, 2 >>> &split_cell_maps) const
 
std::optional< Tupletry_updating_map_tuple_from_split (Mesh &my_mesh, const simplex::Simplex &old_simplex, const int64_t old_gid, const std::vector< Tuple > &tuple_alternatives, const std::tuple< int64_t, std::array< int64_t, 2 >> &split_cell_maps) const
 
std::pair< const Mesh &, Tuplemap_up_to_tuples (const Mesh &my_mesh, const simplex::Simplex &simplex, int64_t depth) const
 
std::vector< Tuplemap_down_relative_tuples (const Mesh &my_mesh, const simplex::Simplex &my_simplex, const std::vector< int64_t > &local_id_path) const
 

Static Protected Member Functions

static Tuple map_tuple_between_meshes (const Mesh &source_mesh, const Mesh &target_mesh, const wmtk::attribute::Accessor< int64_t > &source_to_target_map_accessor, const Tuple &source_tuple)
 
static std::string parent_to_child_map_attribute_name (int64_t index)
 
static std::string child_to_parent_map_attribute_name ()
 
static std::optional< Tuplefind_tuple_from_gid (const Mesh &my_mesh, PrimitiveType primitive_type, const std::vector< Tuple > &tuples, int64_t gid)
 
static int64_t child_global_cid (const wmtk::attribute::Accessor< int64_t > &parent_to_child, int64_t parent_gid)
 
static int64_t parent_global_cid (const wmtk::attribute::Accessor< int64_t > &child_to_parent, int64_t child_gid)
 
static int64_t parent_local_fid (const wmtk::attribute::Accessor< int64_t > &child_to_parent, int64_t child_gid)
 

Protected Attributes

Meshm_parent = nullptr
 
TypedAttributeHandle< int64_t > map_to_parent_handle
 
int64_t m_child_id = -1
 
std::vector< ChildDatam_children
 
std::vector< bool > m_has_child_mesh_in_dimension
 

Static Private Member Functions

static std::vector< std::array< Tuple, 2 > > same_simplex_dimension_surjection (const Mesh &parent, const Mesh &child, const std::vector< int64_t > &parent_simplices)
 

Friends

template<int64_t cell_dimension, typename NodeFunctor >
class multimesh::MultiMeshSimplexVisitor
 
class wmtk::Mesh
 
template<typename Visitor >
class multimesh::MultiMeshSimplexVisitorExecutor
 
class operations::utils::UpdateEdgeOperationMultiMeshMapFunctor
 
template<typename NodeFunctor >
class multimesh::MultiMeshVisitor
 
template<typename Visitor >
class multimesh::MultiMeshVisitorExecutor
 
class wmtk::HDF5Reader
 
class utils::MapValidator
 
std::vector< std::array< Tuple, 2 > > multimesh::same_simplex_dimension_surjection (const Mesh &parent, const Mesh &child, const std::vector< int64_t > &parent_simplices)
 

Detailed Description

Implementation details for how the Mesh class implements multiple meshes.

Definition at line 56 of file MultiMeshManager.hpp.

Constructor & Destructor Documentation

◆ MultiMeshManager() [1/3]

wmtk::multimesh::MultiMeshManager::MultiMeshManager ( int64_t  dimension)

Definition at line 113 of file MultiMeshManager.cpp.

◆ ~MultiMeshManager()

wmtk::multimesh::MultiMeshManager::~MultiMeshManager ( )
default

◆ MultiMeshManager() [2/3]

wmtk::multimesh::MultiMeshManager::MultiMeshManager ( const MultiMeshManager o)
default

◆ MultiMeshManager() [3/3]

wmtk::multimesh::MultiMeshManager::MultiMeshManager ( MultiMeshManager &&  o)
default

Member Function Documentation

◆ absolute_id()

std::vector< int64_t > wmtk::multimesh::MultiMeshManager::absolute_id ( ) const

Definition at line 173 of file MultiMeshManager.cpp.

References absolute_id(), is_root(), m_child_id, wmtk::Mesh::m_multi_mesh_manager, and m_parent.

Referenced by absolute_id(), wmtk::Mesh::absolute_multi_mesh_id(), can_map_child(), check_child_map_valid(), get_mesh(), lub_map_tuples(), map_tuples(), and wmtk::Mesh::serialize().

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

◆ can_map()

bool wmtk::multimesh::MultiMeshManager::can_map ( const Mesh my_mesh,
const Mesh other_mesh,
const simplex::Simplex my_simplex 
) const

Definition at line 926 of file MultiMeshManager.cpp.

References wmtk::Mesh::get_multi_mesh_root(), map_to_root_tuple(), and wmtk::simplex::Simplex::primitive_type().

Referenced by wmtk::Mesh::can_map().

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

◆ can_map_child()

bool wmtk::multimesh::MultiMeshManager::can_map_child ( const Mesh my_mesh,
const Mesh other_mesh,
const simplex::Simplex my_simplex 
) const

Definition at line 938 of file MultiMeshManager.cpp.

References absolute_id(), wmtk::Mesh::absolute_multi_mesh_id(), map_up_to_tuples(), wmtk::simplex::Simplex::primitive_type(), and wmtk::Mesh::top_simplex_type().

Here is the call graph for this function:

◆ check_child_map_valid()

void wmtk::multimesh::MultiMeshManager::check_child_map_valid ( const Mesh my_mesh,
const ChildData child_data 
) const

◆ check_map_valid()

void wmtk::multimesh::MultiMeshManager::check_map_valid ( const Mesh my_mesh) const

update all the hashes of the top-simplces of the parent mesh around a vertex hashes of the parent tuples in the maps for all child meshes

Parameters
mmesh the tuple belongs to
vertexoperating vertex tuple
hash_accessorhash accessor of m

Definition at line 741 of file MultiMeshManager.cpp.

References check_child_map_valid(), and children().

Here is the call graph for this function:

◆ child_global_cid()

int64_t wmtk::multimesh::MultiMeshManager::child_global_cid ( const wmtk::attribute::Accessor< int64_t > &  parent_to_child,
int64_t  parent_gid 
)
staticprotected

Definition at line 386 of file MultiMeshManager_map_updates.cpp.

References wmtk::Mesh::get_index_access().

Referenced by wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::child_global_cid().

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

◆ child_hashables()

std::map< std::string, const wmtk::utils::Hashable * > wmtk::multimesh::MultiMeshManager::child_hashables ( ) const
overridevirtual

Implements wmtk::utils::MerkleTreeInteriorNode.

Definition at line 124 of file MultiMeshManager.cpp.

References m_children.

◆ child_hashes()

std::map< std::string, std::size_t > wmtk::multimesh::MultiMeshManager::child_hashes ( ) const
overridevirtual

Reimplemented from wmtk::utils::Hashable.

Definition at line 135 of file MultiMeshManager.cpp.

References wmtk::Mesh::absolute_multi_mesh_id(), wmtk::utils::MerkleTreeInteriorNode::child_hashes(), m_child_id, m_children, m_parent, map_to_parent_handle, and wmtk::utils::vector_hash().

Here is the call graph for this function:

◆ child_id()

int64_t wmtk::multimesh::MultiMeshManager::child_id ( ) const

Specifies the child id of this mesh if it a child mesh in a mult-mesh tree.

throws if it not a child

Returns
the local index of this manager's mesh in its parent's array

Definition at line 165 of file MultiMeshManager.cpp.

References is_root(), and m_child_id.

Referenced by deregister_child_mesh(), map_to_child_tuples(), and wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_ear_replacement().

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

◆ child_to_parent_map_attribute_name()

std::string wmtk::multimesh::MultiMeshManager::child_to_parent_map_attribute_name ( )
staticprotected

Definition at line 734 of file MultiMeshManager.cpp.

Referenced by check_child_map_valid(), and register_child_mesh().

Here is the caller graph for this function:

◆ children() [1/2]

std::vector<ChildData>& wmtk::multimesh::MultiMeshManager::children ( )
inlineprotected

Definition at line 421 of file MultiMeshManager.hpp.

References m_children.

◆ children() [2/2]

const std::vector<ChildData>& wmtk::multimesh::MultiMeshManager::children ( ) const
inlineprotected

Definition at line 420 of file MultiMeshManager.hpp.

References m_children.

Referenced by check_map_valid(), deregister_child_mesh(), update_child_handles(), update_map_tuple_hashes(), and update_maps_from_edge_operation().

Here is the caller graph for this function:

◆ deregister_child_mesh()

void wmtk::multimesh::MultiMeshManager::deregister_child_mesh ( Mesh my_mesh,
const std::shared_ptr< Mesh > &  child_mesh_ptr 
)

Deregister a child mesh.

The child mesh is not deleted. It is only detached from the multi-mesh structure. The child mesh becomes the new root for its own children. Attribute handles for the child and parent mesh will be invalidated by deregistration.

Definition at line 267 of file MultiMeshManager.cpp.

References child_id(), children(), wmtk::attribute::AttributeManager::get(), wmtk::Mesh::m_attribute_manager, m_child_id, m_children, wmtk::Mesh::m_multi_mesh_manager, m_parent, wmtk::multimesh::MultiMeshManager::ChildData::map_handle, map_to_parent_handle, wmtk::multimesh::MultiMeshManager::ChildData::mesh, wmtk::Mesh::top_simplex_type(), and update_child_handles().

Referenced by wmtk::Mesh::deregister_child_mesh().

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

◆ detach_children()

void wmtk::multimesh::MultiMeshManager::detach_children ( )

Definition at line 25 of file MultiMeshManager.cpp.

References m_children.

Referenced by wmtk::Mesh::~Mesh().

Here is the caller graph for this function:

◆ find_tuple_from_gid()

std::optional< Tuple > wmtk::multimesh::MultiMeshManager::find_tuple_from_gid ( const Mesh my_mesh,
PrimitiveType  primitive_type,
const std::vector< Tuple > &  tuples,
int64_t  gid 
)
staticprotected

Definition at line 367 of file MultiMeshManager_map_updates.cpp.

Referenced by find_valid_tuple_from_split(), and update_map_tuple_hashes().

Here is the caller graph for this function:

◆ find_valid_tuple()

std::optional< Tuple > wmtk::multimesh::MultiMeshManager::find_valid_tuple ( Mesh my_mesh,
const simplex::Simplex old_simplex,
const int64_t  old_gid,
const std::vector< Tuple > &  tuple_alternatives,
const std::vector< std::tuple< int64_t, std::array< int64_t, 2 >>> &  split_cell_maps = {} 
) const
protected

Definition at line 282 of file MultiMeshManager_map_updates.cpp.

References find_valid_tuple_from_alternatives(), find_valid_tuple_from_split(), and wmtk::Mesh::top_simplex_type().

Referenced by update_map_tuple_hashes().

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

◆ find_valid_tuple_from_alternatives()

std::optional< Tuple > wmtk::multimesh::MultiMeshManager::find_valid_tuple_from_alternatives ( Mesh my_mesh,
PrimitiveType  primitive_type,
const std::vector< Tuple > &  tuple_alternatives 
) const
protected

Definition at line 309 of file MultiMeshManager_map_updates.cpp.

References wmtk::Mesh::get_const_flag_accessor().

Referenced by find_valid_tuple().

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

◆ find_valid_tuple_from_split()

std::optional< Tuple > wmtk::multimesh::MultiMeshManager::find_valid_tuple_from_split ( Mesh my_mesh,
const simplex::Simplex old_simplex,
const int64_t  old_gid,
const std::vector< Tuple > &  tuple_alternatives,
const std::vector< std::tuple< int64_t, std::array< int64_t, 2 >>> &  split_cell_maps 
) const
protected

Definition at line 327 of file MultiMeshManager_map_updates.cpp.

References find_tuple_from_gid(), wmtk::Mesh::id(), wmtk::Mesh::is_removed(), wmtk::Mesh::is_valid(), wmtk::Tuple::m_global_cid, wmtk::Tuple::m_local_eid, wmtk::Tuple::m_local_fid, wmtk::Tuple::m_local_vid, wmtk::simplex::Simplex::primitive_type(), wmtk::Mesh::top_simplex_type(), and wmtk::simplex::Simplex::tuple().

Referenced by find_valid_tuple().

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

◆ get_child_mesh() [1/2]

const Mesh & wmtk::multimesh::MultiMeshManager::get_child_mesh ( const Mesh m,
const std::vector< int64_t > &  relative_id 
) const

Definition at line 359 of file MultiMeshManager.cpp.

References m_child_id, m_children, wmtk::Mesh::m_multi_mesh_manager, wmtk::multimesh::MultiMeshManager::ChildData::mesh, and relative_id().

Here is the call graph for this function:

◆ get_child_mesh() [2/2]

Mesh & wmtk::multimesh::MultiMeshManager::get_child_mesh ( Mesh m,
const std::vector< int64_t > &  relative_id 
)

Definition at line 380 of file MultiMeshManager.cpp.

References relative_id().

Referenced by get_mesh(), and wmtk::Mesh::get_multi_mesh_child_mesh().

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

◆ get_child_meshes()

std::vector< std::shared_ptr< Mesh > > wmtk::multimesh::MultiMeshManager::get_child_meshes ( ) const

Definition at line 396 of file MultiMeshManager.cpp.

References m_children.

Referenced by wmtk::Mesh::get_child_meshes().

Here is the caller graph for this function:

◆ get_map_accessors()

std::array< wmtk::attribute::Accessor< int64_t >, 2 > wmtk::multimesh::MultiMeshManager::get_map_accessors ( Mesh my_mesh,
ChildData c 
)
protected

Definition at line 708 of file MultiMeshManager.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::m_multi_mesh_manager, wmtk::multimesh::MultiMeshManager::ChildData::map_handle, map_to_parent_handle, and wmtk::multimesh::MultiMeshManager::ChildData::mesh.

Referenced by update_map_tuple_hashes(), and update_maps_from_edge_operation().

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

◆ get_map_const_accessors()

std::array< const wmtk::attribute::Accessor< int64_t >, 2 > wmtk::multimesh::MultiMeshManager::get_map_const_accessors ( const Mesh my_mesh,
const ChildData c 
) const
protected

Definition at line 721 of file MultiMeshManager.cpp.

References wmtk::Mesh::create_const_accessor(), wmtk::Mesh::m_multi_mesh_manager, wmtk::multimesh::MultiMeshManager::ChildData::map_handle, map_to_parent_handle, and wmtk::multimesh::MultiMeshManager::ChildData::mesh.

Here is the call graph for this function:

◆ get_mesh() [1/2]

const Mesh & wmtk::multimesh::MultiMeshManager::get_mesh ( const Mesh m,
const std::vector< int64_t > &  absolute_id 
) const

Definition at line 384 of file MultiMeshManager.cpp.

References absolute_id(), get_child_mesh(), get_root_mesh(), and wmtk::Mesh::m_multi_mesh_manager.

Here is the call graph for this function:

◆ get_mesh() [2/2]

Mesh & wmtk::multimesh::MultiMeshManager::get_mesh ( Mesh m,
const std::vector< int64_t > &  absolute_id 
)

Definition at line 391 of file MultiMeshManager.cpp.

References absolute_id(), get_child_mesh(), get_root_mesh(), and wmtk::Mesh::m_multi_mesh_manager.

Referenced by wmtk::Mesh::get_multi_mesh_mesh().

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

◆ get_root_mesh() [1/2]

const Mesh & wmtk::multimesh::MultiMeshManager::get_root_mesh ( const Mesh my_mesh) const

Definition at line 342 of file MultiMeshManager.cpp.

References get_root_mesh(), is_root(), wmtk::Mesh::m_multi_mesh_manager, and m_parent.

Referenced by get_mesh(), wmtk::Mesh::get_multi_mesh_root(), get_root_mesh(), and map_to_root_tuple().

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

◆ get_root_mesh() [2/2]

Mesh & wmtk::multimesh::MultiMeshManager::get_root_mesh ( Mesh my_mesh)

Definition at line 350 of file MultiMeshManager.cpp.

References get_root_mesh(), is_root(), wmtk::Mesh::m_multi_mesh_manager, and m_parent.

Here is the call graph for this function:

◆ has_child_mesh()

bool wmtk::multimesh::MultiMeshManager::has_child_mesh ( ) const

Definition at line 916 of file MultiMeshManager.cpp.

References m_has_child_mesh_in_dimension.

Referenced by wmtk::Mesh::has_child_mesh().

Here is the caller graph for this function:

◆ has_child_mesh_in_dimension()

bool wmtk::multimesh::MultiMeshManager::has_child_mesh_in_dimension ( int64_t  dimension) const
inline

Definition at line 353 of file MultiMeshManager.hpp.

References m_has_child_mesh_in_dimension.

Referenced by wmtk::Mesh::has_child_mesh_in_dimension().

Here is the caller graph for this function:

◆ is_child() [1/2]

bool wmtk::multimesh::MultiMeshManager::is_child ( const Mesh my_mesh,
const Mesh parent_mesh 
) const

Definition at line 196 of file MultiMeshManager.cpp.

References is_child(), is_root(), wmtk::Mesh::m_multi_mesh_manager, and m_parent.

Here is the call graph for this function:

◆ is_child() [2/2]

bool wmtk::multimesh::MultiMeshManager::is_child ( const std::vector< int64_t > &  child,
const std::vector< int64_t > &  parent 
)
static

Definition at line 894 of file MultiMeshManager.cpp.

Referenced by is_child(), lub_map_tuples(), and relative_id().

Here is the caller graph for this function:

◆ is_root()

bool wmtk::multimesh::MultiMeshManager::is_root ( ) const

Specifies whether this structure is the root of a multi-mesh tree.

Returns
true if this is the root, false otherwise

Definition at line 160 of file MultiMeshManager.cpp.

References m_parent.

Referenced by absolute_id(), child_id(), get_root_mesh(), is_child(), wmtk::Mesh::is_multi_mesh_root(), map_tuple_to_parent_tuple(), map_tuple_to_root_tuple(), and relative_id().

Here is the caller graph for this function:

◆ least_upper_bound_id()

std::vector< int64_t > wmtk::multimesh::MultiMeshManager::least_upper_bound_id ( const std::vector< int64_t > &  a,
const std::vector< int64_t > &  b 
)
static

Definition at line 870 of file MultiMeshManager.cpp.

Referenced by lub_map_tuples().

Here is the caller graph for this function:

◆ lub_map()

std::vector< simplex::Simplex > wmtk::multimesh::MultiMeshManager::lub_map ( const Mesh my_mesh,
const Mesh other_mesh,
const simplex::Simplex my_simplex 
) const

maps a simplex from this mesh to any other mesh using the LUB as the root

Satisfies the same properties of standard map, but uses a the LUB as the root

Parameters
my_meshthe mesh that this structure is owned by
themesh a simplex should be mapped to
thesimplex being mapped to the child mesh
Returns
every simplex that could correspond to this simplex, without the dimension encoded

Definition at line 417 of file MultiMeshManager.cpp.

References lub_map_tuples(), wmtk::simplex::Simplex::primitive_type(), and wmtk::simplex::utils::tuple_vector_to_homogeneous_simplex_vector().

Referenced by wmtk::Mesh::lub_map().

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

◆ lub_map_tuples()

std::vector< Tuple > wmtk::multimesh::MultiMeshManager::lub_map_tuples ( const Mesh my_mesh,
const Mesh other_mesh,
const simplex::Simplex my_simplex 
) const

maps a simplex from this mesh to any other mesh using the LUB as the root

Satisfies the same properties of standard map, but uses a the LUB as the root

Parameters
my_meshthe mesh that this structure is owned by
themesh a simplex should be mapped to
thesimplex being mapped to the child mesh
Returns
every simplex that could correspond to this simplex, without the dimension encoded

Definition at line 513 of file MultiMeshManager.cpp.

References absolute_id(), wmtk::Mesh::absolute_multi_mesh_id(), is_child(), least_upper_bound_id(), wmtk::Mesh::m_multi_mesh_manager, map_up_to_tuples(), wmtk::simplex::Simplex::primitive_type(), relative_id(), and wmtk::simplex::Simplex::tuple().

Referenced by lub_map(), and wmtk::Mesh::lub_map_tuples().

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

◆ map()

std::vector< simplex::Simplex > wmtk::multimesh::MultiMeshManager::map ( const Mesh my_mesh,
const Mesh other_mesh,
const simplex::Simplex my_simplex 
) const

maps a simplex from this mesh to any other mesh

Generic interface for mapping between two arbitrary meshes in a multi-mesh structure Note that this finds ALL versions of a simplex, potentially crossing over topological features above the pairs of simplices being mapped. For instance, if we map a trimesh seam edge to itself using this interface it will find the edge on the other side of the seam. If more granular mappings are required consider manually navigating the tree with map_to_parent and map_to_child, which of course require a more particular understanding on how a simplex is mapped. throws if two meshes are not part of the same multi-mesh structure

Parameters
my_meshthe mesh that this structure is owned by
themesh a simplex should be mapped to
thesimplex being mapped to the child mesh
Returns
every simplex that could correspond to this simplex

Definition at line 406 of file MultiMeshManager.cpp.

References map_tuples(), wmtk::simplex::Simplex::primitive_type(), and wmtk::simplex::utils::tuple_vector_to_homogeneous_simplex_vector().

Referenced by wmtk::Mesh::map().

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

◆ map_down_relative_tuples()

std::vector< Tuple > wmtk::multimesh::MultiMeshManager::map_down_relative_tuples ( const Mesh my_mesh,
const simplex::Simplex my_simplex,
const std::vector< int64_t > &  local_id_path 
) const
protected

Definition at line 455 of file MultiMeshManager.cpp.

References m_child_id, m_children, wmtk::Mesh::m_multi_mesh_manager, map_to_child_tuples(), wmtk::multimesh::MultiMeshManager::ChildData::mesh, wmtk::simplex::Simplex::primitive_type(), relative_id(), and wmtk::simplex::Simplex::tuple().

Here is the call graph for this function:

◆ map_handles()

std::vector< wmtk::attribute::TypedAttributeHandle< int64_t > > wmtk::multimesh::MultiMeshManager::map_handles ( ) const

Definition at line 309 of file MultiMeshManager.cpp.

References wmtk::attribute::TypedAttributeHandle< T >::is_valid(), m_children, and map_to_parent_handle.

Referenced by wmtk::Mesh::builtin_attributes().

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

◆ map_to_child()

std::vector< simplex::Simplex > wmtk::multimesh::MultiMeshManager::map_to_child ( const Mesh my_mesh,
const Mesh child_mesh,
const simplex::Simplex my_simplex 
) const

optimized map fromsimplex from this mesh to one of its direct children

Cannot be used outside of applications with guaranteed multi-mesh structures

Parameters
my_meshthe mesh that this structure is owned by
childmesh the simplex shoudl be mapped to
thesimplex being mapped to the child mesh
theset of child mesh's simplices that are equivalent to the input simplex

Definition at line 654 of file MultiMeshManager.cpp.

References map_to_child_tuples(), wmtk::simplex::Simplex::primitive_type(), and wmtk::simplex::utils::tuple_vector_to_homogeneous_simplex_vector().

Referenced by wmtk::Mesh::map_to_child().

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

◆ map_to_child_tuples() [1/3]

std::vector< Tuple > wmtk::multimesh::MultiMeshManager::map_to_child_tuples ( const Mesh my_mesh,
const ChildData child_data,
const simplex::Simplex simplex 
) const
protected

◆ map_to_child_tuples() [2/3]

std::vector< Tuple > wmtk::multimesh::MultiMeshManager::map_to_child_tuples ( const Mesh my_mesh,
const Mesh child_mesh,
const simplex::Simplex my_simplex 
) const

Definition at line 636 of file MultiMeshManager.cpp.

References child_id(), and wmtk::Mesh::m_multi_mesh_manager.

Referenced by map_down_relative_tuples(), map_to_child(), wmtk::Mesh::map_to_child_tuples(), and map_to_child_tuples().

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

◆ map_to_child_tuples() [3/3]

std::vector< Tuple > wmtk::multimesh::MultiMeshManager::map_to_child_tuples ( const Mesh my_mesh,
int64_t  child_id,
const simplex::Simplex simplex 
) const
protected

Definition at line 644 of file MultiMeshManager.cpp.

References child_id(), m_children, and map_to_child_tuples().

Here is the call graph for this function:

◆ map_to_parent()

simplex::Simplex wmtk::multimesh::MultiMeshManager::map_to_parent ( const Mesh my_mesh,
const simplex::Simplex my_simplex 
) const

optimized map from a simplex from this mesh to its direct parent

Maps a simplex to its direct parent in the multi-mesh structure. Cannot be used outside of applications with guaranteed multi-mesh structures

throws if this is the root

Parameters
my_meshthe mesh that this structure is owned by
thesimplex being mapped to the parent mesh
Returns
the unique parent mesh's simplex that is parent to the input one

Definition at line 567 of file MultiMeshManager.cpp.

References map_tuple_to_parent_tuple(), wmtk::simplex::Simplex::primitive_type(), and wmtk::simplex::Simplex::tuple().

Referenced by wmtk::Mesh::map_to_parent().

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

◆ map_to_parent_tuple()

Tuple wmtk::multimesh::MultiMeshManager::map_to_parent_tuple ( const Mesh my_mesh,
const simplex::Simplex my_simplex 
) const

optimized map from a simplex from this mesh to its direct parent

Maps a simplex to its direct parent in the multi-mesh structure. Cannot be used outside of applications with guaranteed multi-mesh structures

throws if this is the root

Parameters
my_meshthe mesh that this structure is owned by
thesimplex being mapped to the parent mesh
Returns
the unique parent mesh's simplex that is parent to the input one, without the dimension encoded

Definition at line 575 of file MultiMeshManager.cpp.

References map_tuple_to_parent_tuple(), and wmtk::simplex::Simplex::tuple().

Referenced by wmtk::Mesh::map_to_parent_tuple().

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

◆ map_to_root()

simplex::Simplex wmtk::multimesh::MultiMeshManager::map_to_root ( const Mesh my_mesh,
const simplex::Simplex my_simplex 
) const

maps a simplex from this mesh to the root mesh

Cannot be used outside of applications with guaranteed multi-mesh structures

Parameters
my_meshthe mesh that this structure is owned by
thesimplex being mapped to the parent mesh
Returns
the unique root mesh's simplex that is the root to the input one

Definition at line 539 of file MultiMeshManager.cpp.

References map_to_root_tuple(), and wmtk::simplex::Simplex::primitive_type().

Referenced by wmtk::Mesh::map_to_root().

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

◆ map_to_root_tuple()

Tuple wmtk::multimesh::MultiMeshManager::map_to_root_tuple ( const Mesh my_mesh,
const simplex::Simplex my_simplex 
) const

maps a simplex from this mesh to the root mesh

Cannot be used outside of applications with guaranteed multi-mesh structures

Parameters
my_meshthe mesh that this structure is owned by
thesimplex being mapped to the parent mesh
Returns
the unique root mesh's simplex that is the root to the input one, without the dimension encoded

Definition at line 546 of file MultiMeshManager.cpp.

References get_root_mesh(), map_tuple_to_root_tuple(), and wmtk::simplex::Simplex::tuple().

Referenced by can_map(), map_to_root(), and wmtk::Mesh::map_to_root_tuple().

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

◆ map_tuple_between_meshes()

Tuple wmtk::multimesh::MultiMeshManager::map_tuple_between_meshes ( const Mesh source_mesh,
const Mesh target_mesh,
const wmtk::attribute::Accessor< int64_t > &  source_to_target_map_accessor,
const Tuple source_tuple 
)
staticprotected

Definition at line 37 of file MultiMeshManager.cpp.

References wmtk::Edge, wmtk::Mesh::is_valid(), wmtk::Tuple::m_global_cid, wmtk::Tuple::m_local_fid, wmtk::multimesh::utils::read_tuple_map_attribute(), wmtk::Mesh::switch_tuple(), wmtk::Tetrahedron, wmtk::simplex::top_dimension_cofaces_tuples(), wmtk::Mesh::top_simplex_type(), wmtk::multimesh::utils::transport_tuple(), and wmtk::Triangle.

Referenced by check_child_map_valid(), map_to_child_tuples(), and map_tuple_to_parent_tuple().

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

◆ map_tuple_to_parent_tuple()

Tuple wmtk::multimesh::MultiMeshManager::map_tuple_to_parent_tuple ( const Mesh my_mesh,
const Tuple my_tuple 
) const
protected

Definition at line 581 of file MultiMeshManager.cpp.

References wmtk::Mesh::create_const_accessor(), is_root(), wmtk::Mesh::m_multi_mesh_manager, m_parent, map_to_parent_handle, and map_tuple_between_meshes().

Referenced by map_to_parent(), map_to_parent_tuple(), map_tuple_to_root_tuple(), and map_up_to_tuples().

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

◆ map_tuple_to_root_tuple()

Tuple wmtk::multimesh::MultiMeshManager::map_tuple_to_root_tuple ( const Mesh my_mesh,
const Tuple my_tuple 
) const
protected

Definition at line 553 of file MultiMeshManager.cpp.

References is_root(), wmtk::Mesh::is_valid(), wmtk::Mesh::m_multi_mesh_manager, m_parent, map_tuple_to_parent_tuple(), and map_tuple_to_root_tuple().

Referenced by map_to_root_tuple(), and map_tuple_to_root_tuple().

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

◆ map_tuples()

std::vector< Tuple > wmtk::multimesh::MultiMeshManager::map_tuples ( const Mesh my_mesh,
const Mesh other_mesh,
const simplex::Simplex my_simplex 
) const

maps a simplex from this mesh to any other mesh

Generic interface for mapping between two arbitrary meshes in a multi-mesh structure Note that this finds ALL versions of a simplex, potentially crossing over topological features above the pairs of simplices being mapped. For instance, if we map a trimesh seam edge to itself using this interface it will find the edge on the other side of the seam. If more granular mappings are required consider manually navigating the tree with map_to_parent and map_to_child, which of course require a more particular understanding on how a simplex is mapped. throws if two meshes are not part of the same multi-mesh structure

Parameters
my_meshthe mesh that this structure is owned by
themesh a simplex should be mapped to
thesimplex being mapped to the child mesh
Returns
every simplex that could correspond to this simplex, without the dimension encoded

Definition at line 497 of file MultiMeshManager.cpp.

References absolute_id(), wmtk::Mesh::absolute_multi_mesh_id(), map_up_to_tuples(), and wmtk::simplex::Simplex::primitive_type().

Referenced by map(), and wmtk::Mesh::map_tuples().

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

◆ map_up_to_tuples()

std::pair< const Mesh &, Tuple > wmtk::multimesh::MultiMeshManager::map_up_to_tuples ( const Mesh my_mesh,
const simplex::Simplex simplex,
int64_t  depth 
) const
protected

Definition at line 432 of file MultiMeshManager.cpp.

References wmtk::Mesh::m_multi_mesh_manager, m_parent, map_tuple_to_parent_tuple(), wmtk::simplex::Simplex::primitive_type(), and wmtk::simplex::Simplex::tuple().

Referenced by can_map_child(), lub_map_tuples(), and map_tuples().

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

◆ operator=() [1/2]

MultiMeshManager & wmtk::multimesh::MultiMeshManager::operator= ( const MultiMeshManager o)
default

◆ operator=() [2/2]

MultiMeshManager & wmtk::multimesh::MultiMeshManager::operator= ( MultiMeshManager &&  o)
default

◆ parent_global_cid()

int64_t wmtk::multimesh::MultiMeshManager::parent_global_cid ( const wmtk::attribute::Accessor< int64_t > &  child_to_parent,
int64_t  child_gid 
)
staticprotected

Definition at line 397 of file MultiMeshManager_map_updates.cpp.

References wmtk::Mesh::get_index_access().

Referenced by wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::parent_global_cid().

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

◆ parent_local_fid()

int64_t wmtk::multimesh::MultiMeshManager::parent_local_fid ( const wmtk::attribute::Accessor< int64_t > &  child_to_parent,
int64_t  child_gid 
)
staticprotected

Definition at line 409 of file MultiMeshManager_map_updates.cpp.

References wmtk::Mesh::get_index_access().

Referenced by wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::parent_local_fid().

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

◆ parent_to_child_map_attribute_name()

std::string wmtk::multimesh::MultiMeshManager::parent_to_child_map_attribute_name ( int64_t  index)
staticprotected

Definition at line 704 of file MultiMeshManager.cpp.

Referenced by register_child_mesh(), and update_child_handles().

Here is the caller graph for this function:

◆ register_child_mesh()

void wmtk::multimesh::MultiMeshManager::register_child_mesh ( Mesh my_mesh,
const std::shared_ptr< Mesh > &  child_mesh,
const std::vector< std::array< Tuple, 2 >> &  child_tuple_my_tuple_map 
)

register a another mesh as a child of this mesh.

Parameters
my_meshthe mesh that this structure is owned by
child_meshthe mesh that will be added a child of this mesh
theset of tuples {A,B} where A is from "this mesh" and B represents a top-dimension simplex in the child_mesh. Every top dimension tuple of the child mesh must be represented here

Definition at line 210 of file MultiMeshManager.cpp.

References child_to_parent_map_attribute_name(), wmtk::Mesh::create_accessor(), wmtk::Mesh::is_valid(), m_child_id, m_children, m_has_child_mesh_in_dimension, wmtk::Mesh::m_multi_mesh_manager, m_parent, map_to_parent_handle, parent_to_child_map_attribute_name(), wmtk::Mesh::register_attribute_typed(), wmtk::multimesh::utils::symmetric_write_tuple_map_attributes(), wmtk::Mesh::top_cell_dimension(), and wmtk::Mesh::top_simplex_type().

Referenced by wmtk::Mesh::register_child_mesh().

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

◆ relative_id() [1/2]

std::vector< int64_t > wmtk::multimesh::MultiMeshManager::relative_id ( const Mesh my_mesh,
const Mesh parent_mesh 
) const

Definition at line 183 of file MultiMeshManager.cpp.

References is_child(), is_root(), m_child_id, wmtk::Mesh::m_multi_mesh_manager, m_parent, and relative_id().

Here is the call graph for this function:

◆ relative_id() [2/2]

std::vector< int64_t > wmtk::multimesh::MultiMeshManager::relative_id ( const std::vector< int64_t > &  parent,
const std::vector< int64_t > &  child 
)
static

Definition at line 885 of file MultiMeshManager.cpp.

References is_child().

Referenced by wmtk::components::multimesh::NamedMultiMesh::append_child_mesh_names(), get_child_mesh(), wmtk::components::multimesh::NamedMultiMesh::get_id(), lub_map_tuples(), map_down_relative_tuples(), relative_id(), and wmtk::Mesh::serialize().

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

◆ same_simplex_dimension_surjection()

std::vector< std::array< Tuple, 2 > > wmtk::multimesh::MultiMeshManager::same_simplex_dimension_surjection ( const Mesh parent,
const Mesh child,
const std::vector< int64_t > &  parent_simplices 
)
staticprivate

Definition at line 668 of file MultiMeshManager.cpp.

References wmtk::Mesh::capacity(), wmtk::Mesh::get_const_flag_accessor(), wmtk::Mesh::top_simplex_type(), and wmtk::Mesh::tuple_from_id().

Referenced by wmtk::multimesh::same_simplex_dimension_surjection().

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

◆ serialize()

void wmtk::multimesh::MultiMeshManager::serialize ( MeshWriter writer,
const Mesh local_root = nullptr 
) const

Definition at line 909 of file MultiMeshManager.cpp.

References m_children.

Referenced by wmtk::Mesh::serialize().

Here is the caller graph for this function:

◆ try_updating_map_tuple_from_split()

std::optional<Tuple> wmtk::multimesh::MultiMeshManager::try_updating_map_tuple_from_split ( Mesh my_mesh,
const simplex::Simplex old_simplex,
const int64_t  old_gid,
const std::vector< Tuple > &  tuple_alternatives,
const std::tuple< int64_t, std::array< int64_t, 2 >> &  split_cell_maps 
) const
protected

◆ update_child_handles()

void wmtk::multimesh::MultiMeshManager::update_child_handles ( Mesh my_mesh)

Clean up child data after deleting attributes.

When attributes are deleted, all attribute handles are invalidated. This method goes through all child data and updates the handles.

Definition at line 39 of file MultiMeshManager_map_updates.cpp.

References children(), wmtk::Mesh::get_attribute_handle_typed(), wmtk::Mesh::m_attribute_manager, m_children, wmtk::Mesh::m_multi_mesh_manager, parent_to_child_map_attribute_name(), and wmtk::attribute::AttributeManager::set_name().

Referenced by deregister_child_mesh(), and wmtk::Mesh::update_child_handles().

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

◆ update_map_tuple_hashes()

void wmtk::multimesh::MultiMeshManager::update_map_tuple_hashes ( Mesh my_mesh,
PrimitiveType  primitive_type,
const std::vector< std::tuple< int64_t, std::vector< Tuple >>> &  simplices_to_update,
const std::vector< std::tuple< int64_t, std::array< int64_t, 2 >>> &  split_cell_maps = {} 
)
protected

Definition at line 149 of file MultiMeshManager_map_updates.cpp.

References children(), find_tuple_from_gid(), find_valid_tuple(), wmtk::Mesh::get_const_flag_accessor(), wmtk::Mesh::get_index_access(), get_map_accessors(), wmtk::Tuple::is_null(), wmtk::Mesh::is_valid(), wmtk::Tuple::m_global_cid, wmtk::Mesh::parent_scope(), wmtk::multimesh::utils::symmetric_write_tuple_map_attributes(), wmtk::Mesh::top_simplex_type(), wmtk::multimesh::utils::transport_tuple(), wmtk::simplex::Simplex::tuple(), and wmtk::multimesh::utils::vectors_to_tuples().

Referenced by wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_all_hashes().

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

◆ update_maps_from_edge_operation()

void wmtk::multimesh::MultiMeshManager::update_maps_from_edge_operation ( Mesh my_mesh,
PrimitiveType  primitive_type,
const operations::EdgeOperationData operation_data 
)
protected

Definition at line 60 of file MultiMeshManager_map_updates.cpp.

References children(), wmtk::Mesh::get_const_flag_accessor(), wmtk::Mesh::get_index_access(), get_map_accessors(), wmtk::Tuple::is_null(), wmtk::Mesh::is_removed(), wmtk::logger(), wmtk::multimesh::utils::symmetric_write_tuple_map_attributes(), and wmtk::multimesh::utils::vectors_to_tuples().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ multimesh::MultiMeshSimplexVisitor

template<int64_t cell_dimension, typename NodeFunctor >
friend class multimesh::MultiMeshSimplexVisitor
friend

Definition at line 67 of file MultiMeshManager.hpp.

◆ multimesh::MultiMeshSimplexVisitorExecutor

template<typename Visitor >
friend class multimesh::MultiMeshSimplexVisitorExecutor
friend

Definition at line 70 of file MultiMeshManager.hpp.

◆ multimesh::MultiMeshVisitor

template<typename NodeFunctor >
friend class multimesh::MultiMeshVisitor
friend

Definition at line 74 of file MultiMeshManager.hpp.

◆ multimesh::MultiMeshVisitorExecutor

template<typename Visitor >
friend class multimesh::MultiMeshVisitorExecutor
friend

Definition at line 76 of file MultiMeshManager.hpp.

◆ multimesh::same_simplex_dimension_surjection

std::vector<std::array<Tuple, 2> > multimesh::same_simplex_dimension_surjection ( const Mesh parent,
const Mesh child,
const std::vector< int64_t > &  parent_simplices 
)
friend

◆ operations::utils::UpdateEdgeOperationMultiMeshMapFunctor

◆ utils::MapValidator

friend class utils::MapValidator
friend

Definition at line 79 of file MultiMeshManager.hpp.

◆ wmtk::HDF5Reader

friend class wmtk::HDF5Reader
friend

Definition at line 77 of file MultiMeshManager.hpp.

◆ wmtk::Mesh

friend class wmtk::Mesh
friend

Definition at line 68 of file MultiMeshManager.hpp.

Member Data Documentation

◆ m_child_id

int64_t wmtk::multimesh::MultiMeshManager::m_child_id = -1
protected

◆ m_children

◆ m_has_child_mesh_in_dimension

std::vector<bool> wmtk::multimesh::MultiMeshManager::m_has_child_mesh_in_dimension
protected

◆ m_parent

◆ map_to_parent_handle


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