Wildmeshing Toolkit
wmtk::Mesh Class Referenceabstract

#include <Mesh.hpp>

Inheritance diagram for wmtk::Mesh:
[legend]
Collaboration diagram for wmtk::Mesh:
[legend]

Public Member Functions

int64_t top_cell_dimension () const
 
PrimitiveType top_simplex_type () const
 
bool is_free () const
 
std::map< std::string, const wmtk::utils::Hashable * > child_hashables () const override
 
std::map< std::string, std::size_t > child_hashes () const override
 
 Mesh (const int64_t &dimension)
 
 Mesh (const int64_t &dimension, const int64_t &max_primitive_type_id, PrimitiveType hash_type)
 
 Mesh (Mesh &&other)
 
 Mesh (const Mesh &other)=delete
 
Meshoperator= (const Mesh &other)=delete
 
Meshoperator= (Mesh &&other)
 
virtual ~Mesh ()
 
void serialize (MeshWriter &writer, const Mesh *local_root=nullptr) const
 
std::vector< Tupleget_all (PrimitiveType type) const
 Generate a vector of Tuples from global vertex/edge/triangle/tetrahedron index. More...
 
std::vector< simplex::IdSimplexget_all_id_simplex (PrimitiveType type) const
 
simplex::IdSimplex get_id_simplex (const Tuple &tuple, PrimitiveType pt) const
 Retrieve the IdSimplex that is represented by the tuple and primitive type. More...
 
simplex::IdSimplex get_id_simplex (const simplex::Simplex &s) const
 
simplex::Simplex get_simplex (const simplex::IdSimplex &s) const
 Convert an IdSimplex into a Simplex. More...
 
Tuple get_tuple_from_id_simplex (const simplex::IdSimplex &s) const
 
virtual std::tuple< std::vector< std::vector< int64_t > >, std::vector< std::vector< int64_t > > > consolidate ()
 Consolidate the attributes, moving all valid simplexes at the beginning of the corresponding vector. More...
 
virtual std::vector< std::vector< TypedAttributeHandle< int64_t > > > connectivity_attributes () const =0
 Returns a vector of vectors of attribute handles. More...
 
std::vector< attribute::MeshAttributeHandle::HandleVariantbuiltin_attributes () const
 
std::vector< attribute::MeshAttributeHandle::HandleVariantcustom_attributes () const
 
template<typename T >
attribute::MeshAttributeHandle register_attribute (const std::string &name, PrimitiveType type, int64_t size, bool replace=false, T default_value=T(0))
 
template<typename T >
attribute::TypedAttributeHandle< T > register_attribute_typed (const std::string &name, PrimitiveType type, int64_t size, bool replace=false, T default_value=T(0))
 
template<typename T >
bool has_attribute (const std::string &name, const PrimitiveType ptype) const
 
template<typename T >
attribute::MeshAttributeHandle get_attribute_handle (const std::string &name, const PrimitiveType ptype) const
 
template<typename T >
attribute::TypedAttributeHandle< T > get_attribute_handle_typed (const std::string &name, const PrimitiveType ptype) const
 
template<typename T , int D = Eigen::Dynamic>
attribute::Accessor< T, Mesh, D > create_accessor (const attribute::MeshAttributeHandle &handle)
 
template<typename T , int D = Eigen::Dynamic>
const attribute::Accessor< T, Mesh, D > create_const_accessor (const attribute::MeshAttributeHandle &handle) const
 
template<typename T , int D = Eigen::Dynamic>
attribute::Accessor< T, Mesh, D > create_accessor (const TypedAttributeHandle< T > &handle)
 
template<typename T , int D = Eigen::Dynamic>
const attribute::Accessor< T, Mesh, D > create_const_accessor (const TypedAttributeHandle< T > &handle) const
 
template<typename T >
int64_t get_attribute_dimension (const TypedAttributeHandle< T > &handle) const
 
template<typename T >
const T & get_attribute_default_value (const TypedAttributeHandle< T > &handle) const
 
template<typename T >
std::string get_attribute_name (const TypedAttributeHandle< T > &handle) const
 
std::string get_attribute_name (const attribute::MeshAttributeHandle::HandleVariant &handle) const
 
void clear_attributes (const std::vector< attribute::MeshAttributeHandle::HandleVariant > &keep_attributes)
 Remove all custom attributes besides the one passed in. More...
 
void clear_attributes ()
 
void clear_attributes (const std::vector< attribute::MeshAttributeHandle > &keep_attributes)
 
void delete_attribute (const attribute::MeshAttributeHandle &to_delete)
 
void delete_attribute (const attribute::MeshAttributeHandle::HandleVariant &to_delete)
 
multimesh::attribute::AttributeScopeHandle create_scope ()
 
template<typename Functor , typename... Args>
decltype(auto) parent_scope (Functor &&f, Args &&... args) const
 Evaluate the passed in function inside the parent scope. More...
 
const attribute::Accessor< char > get_flag_accessor (PrimitiveType type) const
 
const attribute::Accessor< char > get_const_flag_accessor (PrimitiveType type) const
 
bool operator== (const Mesh &other) const
 
void assert_capacity_valid () const
 
virtual bool is_connectivity_valid () const =0
 
virtual std::vector< Tupleorient_vertices (const Tuple &t) const =0
 
virtual Tuple switch_tuple (const Tuple &tuple, PrimitiveType type) const =0
 switch the orientation of the Tuple of the given dimension More...
 
template<typename ContainerType >
Tuple switch_tuples (const Tuple &tuple, const ContainerType &op_sequence) const
 
Tuple switch_tuples (const Tuple &tuple, const std::initializer_list< PrimitiveType > &op_sequence) const
 
template<typename ContainerType >
Tuple switch_tuples_unsafe (const Tuple &tuple, const ContainerType &op_sequence) const
 
Tuple switch_tuples_unsafe (const Tuple &tuple, const std::initializer_list< PrimitiveType > &op_sequence) const
 
void set_capacities_from_flags ()
 
int64_t capacity (PrimitiveType type) const
 read in the m_capacities return the upper bound for the number of entities of the given dimension More...
 
virtual bool is_ccw (const Tuple &tuple) const =0
 TODO this needs dimension? More...
 
bool is_boundary (const simplex::Simplex &tuple) const
 check if a simplex lies on a boundary or not More...
 
virtual bool is_boundary (PrimitiveType, const Tuple &tuple) const =0
 check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not More...
 
bool is_hash_valid (const Tuple &tuple, const attribute::Accessor< int64_t > &hash_accessor) const
 
bool is_hash_valid (const Tuple &tuple) const
 
virtual bool is_valid (const Tuple &tuple) const
 check validity of tuple including its hash More...
 
bool is_removed (const Tuple &tuple) const
 
bool is_removed (const Tuple &tuple, PrimitiveType pt) const
 
bool is_valid (const simplex::Simplex &s) const
 Check if the cached id in a simplex is up-to-date. More...
 
bool is_multi_mesh_root () const
 return true if this mesh is the root of a multimesh tree More...
 
Meshget_multi_mesh_root ()
 returns a reference to the root of a multimesh tree More...
 
const Meshget_multi_mesh_root () const
 returns a const reference to the root of a multimesh tree More...
 
Meshget_multi_mesh_mesh (const std::vector< int64_t > &absolute_id)
 
const Meshget_multi_mesh_mesh (const std::vector< int64_t > &absolute_id) const
 
Meshget_multi_mesh_child_mesh (const std::vector< int64_t > &relative_id)
 
const Meshget_multi_mesh_child_mesh (const std::vector< int64_t > &relative_id) const
 
std::vector< std::shared_ptr< Mesh > > get_child_meshes () const
 returns the direct multimesh child meshes for the current mesh More...
 
std::vector< std::shared_ptr< Mesh > > get_all_child_meshes () const
 returns all multimesh child meshes More...
 
std::vector< std::shared_ptr< const Mesh > > get_all_meshes () const
 returns all meshes in multimesh More...
 
std::vector< int64_t > absolute_multi_mesh_id () const
 returns a unique identifier for this mesh within a single multimesh structure More...
 
void register_child_mesh (const std::shared_ptr< Mesh > &child_mesh_ptr, const std::vector< std::array< Tuple, 2 >> &map_tuples)
 register a mesh as the child of this mesh More...
 
void deregister_child_mesh (const std::shared_ptr< Mesh > &child_mesh_ptr)
 Deregister a child mesh. More...
 
std::vector< simplex::Simplexmap (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh More...
 
std::vector< simplex::Simplexmap (const Mesh &other_mesh, const std::vector< simplex::Simplex > &my_simplices) const
 
std::vector< simplex::Simplexlub_map (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh using LUB mesh as root More...
 
std::vector< simplex::Simplexlub_map (const Mesh &other_mesh, const std::vector< simplex::Simplex > &my_simplices) const
 
simplex::Simplex map_to_parent (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 simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to the root mesh More...
 
std::vector< simplex::Simplexmap_to_child (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_tuples (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh More...
 
std::vector< Tuplemap_tuples (const Mesh &other_mesh, PrimitiveType pt, const std::vector< Tuple > &my_simplices) const
 
std::vector< Tuplelub_map_tuples (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to any other mesh using LUB mesh as root More...
 
std::vector< Tuplelub_map_tuples (const Mesh &other_mesh, PrimitiveType pt, const std::vector< Tuple > &my_simplices) const
 
Tuple map_to_parent_tuple (const simplex::Simplex &my_simplex) const
 optimized map from a simplex from this mesh to its direct parent More...
 
Tuple map_to_root_tuple (const simplex::Simplex &my_simplex) const
 maps a simplex from this mesh to the root mesh More...
 
std::vector< Tuplemap_to_child_tuples (const Mesh &child_mesh, const simplex::Simplex &my_simplex) const
 optimized map fromsimplex from this mesh to one of its direct children More...
 
bool can_map (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const
 
void update_vertex_operation_hashes (const Tuple &vertex, attribute::Accessor< int64_t > &hash_accessor)
 wrapper function to update hashes (for parent mesh *this and its child meshes) after vertex operations More...
 
bool has_child_mesh_in_dimension (int64_t dimension) const
 returns if the mesh has a child mesh in the given dimension More...
 
bool has_child_mesh () const
 
bool is_from_same_multi_mesh_structure (const Mesh &other) const
 
template<typename T , int D>
auto create_accessor (const TypedAttributeHandle< T > &handle) -> attribute::Accessor< T, Mesh, D >
 
template<typename T , int D>
auto create_const_accessor (const TypedAttributeHandle< T > &handle) const -> const attribute::Accessor< T, Mesh, D >
 
template<typename T , int D>
auto create_accessor (const attribute::MeshAttributeHandle &handle) -> attribute::Accessor< T, Mesh, D >
 
template<typename T , int D>
auto create_const_accessor (const attribute::MeshAttributeHandle &handle) const -> const attribute::Accessor< T, Mesh, D >
 
- 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
 

Protected Member Functions

attribute::Accessor< char > get_flag_accessor (PrimitiveType type)
 
virtual Tuple tuple_from_id (const PrimitiveType type, const int64_t gid) const =0
 internal function that returns the tuple of requested type, and has the global index cid More...
 
simplex::NavigatableSimplex simplex_from_id (const PrimitiveType type, const int64_t gid) const
 
std::vector< std::vector< int64_t > > simplices_to_gids (const std::vector< std::vector< simplex::Simplex >> &simplices) const
 
void reserve_attributes_to_fit ()
 reserve space for all attributes data types for all dimensional simplices More...
 
void reserve_attributes (PrimitiveType type, int64_t size)
 
void reserve_attributes (int64_t dimension, int64_t size)
 
void set_capacities (std::vector< int64_t > capacities)
 
void reserve_more_attributes (PrimitiveType type, int64_t size)
 
void reserve_more_attributes (const std::vector< int64_t > &sizes)
 
void guarantee_more_attributes (PrimitiveType type, int64_t size)
 
void guarantee_more_attributes (const std::vector< int64_t > &sizes)
 
void guarantee_at_least_attributes (PrimitiveType type, int64_t size)
 
void guarantee_at_least_attributes (const std::vector< int64_t > &sizes)
 
std::vector< int64_t > request_simplex_indices (PrimitiveType type, int64_t count)
 
bool is_removed (int64_t index) const
 
bool is_removed (int64_t index, PrimitiveType pt) const
 
attribute::AttributeScopeHandle create_single_mesh_scope ()
 
int64_t id (const Tuple &tuple, PrimitiveType type) const
 return the global id of the Tuple of the given dimension More...
 
int64_t id (const simplex::NavigatableSimplex &s) const
 
int64_t id (const simplex::IdSimplex &s) const
 
virtual int64_t id (const simplex::Simplex &s) const =0
 Forwarding version of id on simplices that does id caching. More...
 
virtual int64_t id_virtual (const Tuple &tuple, PrimitiveType type) const =0
 Internal utility to allow id to be virtual with a non-virtual overload in derived -Mesh classes. More...
 

Static Protected Member Functions

template<typename T , typename MeshType >
static auto & get_index_access (attribute::Accessor< T, MeshType > &attr)
 
template<typename T , typename MeshType >
static auto & get_index_access (const attribute::Accessor< T, MeshType > &attr)
 

Protected Attributes

attribute::AttributeManager m_attribute_manager
 
multimesh::MultiMeshManager m_multi_mesh_manager
 
int64_t m_top_cell_dimension = -1
 
bool m_is_free = false
 

Private Member Functions

void update_child_handles ()
 Update the child handles after clearing attributes. More...
 
std::vector< Tupleget_all (PrimitiveType type, const bool include_deleted) const
 Generate a vector of Tuples from global vertex/edge/triangle/tetrahedron index. More...
 
std::vector< simplex::IdSimplexget_all_id_simplex (PrimitiveType type, const bool include_deleted) const
 

Private Attributes

std::vector< TypedAttributeHandle< char > > m_flag_handles
 0x1 == true = simplex is active (simplex exists) all flag default to 0 More...
 
TypedAttributeHandle< int64_t > m_cell_hash_handle
 

Friends

class tests::tools::TestTools
 
class tests::DEBUG_Mesh
 
template<typename T , int Dim>
class attribute::AccessorBase
 
template<typename T , typename MeshType , int Dim>
class attribute::Accessor
 
class io::ParaviewWriter
 
class HDF5Reader
 
class multimesh::attribute::UseParentScopeRAII
 
class multimesh::MultiMeshManager
 
class attribute::AttributeManager
 
template<int64_t cell_dimension, typename NodeFunctor >
class multimesh::MultiMeshSimplexVisitor
 
template<typename Visitor >
class multimesh::MultiMeshSimplexVisitorExecutor
 
template<typename NodeFunctor >
class multimesh::MultiMeshVisitor
 
class multimesh::utils::MapValidator
 
template<typename Visitor >
class multimesh::MultiMeshVisitorExecutor
 
class multimesh::attribute::AttributeScopeHandle
 
class multimesh::utils::internal::TupleTag
 
class operations::utils::UpdateEdgeOperationMultiMeshMapFunctor
 
class simplex::RawSimplex
 
class simplex::Simplex
 
class simplex::IdSimplex
 
class simplex::SimplexCollection
 
class simplex::utils::SimplexComparisons
 
class operations::Operation
 
class operations::EdgeCollapse
 
class operations::EdgeSplit
 
class operations::EdgeOperationData
 
class operations::internal::CollapseAlternateFacetData
 

Detailed Description

Definition at line 105 of file Mesh.hpp.

Constructor & Destructor Documentation

◆ Mesh() [1/4]

wmtk::Mesh::Mesh ( const int64_t &  dimension)

Definition at line 35 of file Mesh_construction.cpp.

◆ Mesh() [2/4]

wmtk::Mesh::Mesh ( const int64_t &  dimension,
const int64_t &  max_primitive_type_id,
PrimitiveType  hash_type 
)

Definition at line 39 of file Mesh_construction.cpp.

References wmtk::get_primitive_type_from_id(), and m_flag_handles.

Here is the call graph for this function:

◆ Mesh() [3/4]

wmtk::Mesh::Mesh ( Mesh &&  other)

Definition at line 12 of file Mesh_construction.cpp.

References m_cell_hash_handle, and m_flag_handles.

◆ Mesh() [4/4]

wmtk::Mesh::Mesh ( const Mesh other)
delete

◆ ~Mesh()

wmtk::Mesh::~Mesh ( )
virtual

Definition at line 53 of file Mesh_construction.cpp.

References wmtk::multimesh::MultiMeshManager::detach_children(), and m_multi_mesh_manager.

Here is the call graph for this function:

Member Function Documentation

◆ absolute_multi_mesh_id()

std::vector< int64_t > wmtk::Mesh::absolute_multi_mesh_id ( ) const

returns a unique identifier for this mesh within a single multimesh structure

Typically the root node should have an empty vector as the id {} Its first child will have an id of {0} Its second child will have an id of {1} Its first child's second child will have an id of {0,1}

Definition at line 12 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::absolute_id(), and m_multi_mesh_manager.

Referenced by wmtk::components::multimesh::NamedMultiMesh::append_child_mesh_names(), wmtk::multimesh::MultiMeshManager::can_map_child(), wmtk::multimesh::utils::MapValidator::check_child_map_attributes_valid(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::multimesh::utils::MapValidator::check_parent_map_attribute_valid(), wmtk::multimesh::MultiMeshManager::child_hashes(), wmtk::components::multimesh::NamedMultiMesh::get_id(), wmtk::multimesh::MultiMeshManager::lub_map_tuples(), wmtk::multimesh::MultiMeshManager::map_tuples(), and wmtk::operations::utils::MultiMeshEdgeSplitFunctor::operator()().

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

◆ assert_capacity_valid()

void wmtk::Mesh::assert_capacity_valid ( ) const

Definition at line 217 of file Mesh.cpp.

References wmtk::attribute::AttributeManager::assert_capacity_valid(), and m_attribute_manager.

Here is the call graph for this function:

◆ builtin_attributes()

std::vector< attribute::MeshAttributeHandle::HandleVariant > wmtk::Mesh::builtin_attributes ( ) const

Definition at line 313 of file Mesh_attributes.cpp.

References connectivity_attributes(), m_cell_hash_handle, m_flag_handles, m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_handles().

Referenced by custom_attributes().

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

◆ can_map()

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

Definition at line 39 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::can_map(), is_from_same_multi_mesh_structure(), and m_multi_mesh_manager.

Referenced by wmtk::multimesh::BoundaryChecker::is_boundary().

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

◆ capacity()

int64_t wmtk::Mesh::capacity ( PrimitiveType  type) const

read in the m_capacities return the upper bound for the number of entities of the given dimension

Parameters
type
Returns
int

Definition at line 84 of file Mesh_attributes.cpp.

References wmtk::get_primitive_type_id(), m_attribute_manager, and wmtk::attribute::AttributeManager::m_capacities.

Referenced by consolidate(), get_all(), get_all_id_simplex(), wmtk::EdgeMesh::initialize(), wmtk::TriMesh::initialize(), wmtk::TetMesh::initialize(), wmtk::PointMesh::initialize(), wmtk::TetMesh::is_connectivity_valid(), wmtk::TriMesh::is_connectivity_valid(), wmtk::EdgeMesh::is_connectivity_valid(), wmtk::components::multimesh::multimesh(), request_simplex_indices(), wmtk::multimesh::utils::internal::TupleTag::run(), wmtk::multimesh::same_simplex_dimension_bijection(), and wmtk::multimesh::MultiMeshManager::same_simplex_dimension_surjection().

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::Mesh::child_hashables ( ) const
overridevirtual

Implements wmtk::utils::MerkleTreeInteriorNode.

Definition at line 5 of file Mesh_hash.cpp.

References m_attribute_manager, and m_multi_mesh_manager.

◆ child_hashes()

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

Reimplemented from wmtk::utils::Hashable.

Definition at line 12 of file Mesh_hash.cpp.

References wmtk::utils::MerkleTreeInteriorNode::child_hashes(), m_cell_hash_handle, and m_flag_handles.

Here is the call graph for this function:

◆ clear_attributes() [1/3]

void wmtk::Mesh::clear_attributes ( )

Definition at line 165 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::clear_attributes(), custom_attributes(), and m_attribute_manager.

Here is the call graph for this function:

◆ clear_attributes() [2/3]

void wmtk::Mesh::clear_attributes ( const std::vector< attribute::MeshAttributeHandle > &  keep_attributes)

Definition at line 178 of file Mesh_attributes.cpp.

◆ clear_attributes() [3/3]

void wmtk::Mesh::clear_attributes ( const std::vector< attribute::MeshAttributeHandle::HandleVariant > &  keep_attributes)

Remove all custom attributes besides the one passed in.

Parameters
custom_attributesVector of attributes that should be kept

Definition at line 170 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::clear_attributes(), custom_attributes(), m_attribute_manager, and update_child_handles().

Referenced by wmtk::components::regular_space(), and wmtk::components::tag_intersection().

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

◆ connectivity_attributes()

virtual std::vector<std::vector<TypedAttributeHandle<int64_t> > > wmtk::Mesh::connectivity_attributes ( ) const
pure virtual

Returns a vector of vectors of attribute handles.

The first index denotes the type of simplex pointed by the attribute (i.e. the index type). As an example, the FV relationship points to vertices so it should be returned in the slot [0].

Implemented in wmtk::TriMesh, wmtk::PointMesh, wmtk::EdgeMesh, and wmtk::TetMesh.

Referenced by builtin_attributes(), and consolidate().

Here is the caller graph for this function:

◆ consolidate()

std::tuple< std::vector< std::vector< int64_t > >, std::vector< std::vector< int64_t > > > wmtk::Mesh::consolidate ( )
virtual

Consolidate the attributes, moving all valid simplexes at the beginning of the corresponding vector.

Definition at line 209 of file Mesh_attributes.cpp.

References wmtk::attribute::Accessor< T, MeshType, Dim >::attribute(), capacity(), connectivity_attributes(), get_flag_accessor(), wmtk::get_primitive_type_from_id(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), m_attribute_manager, wmtk::attribute::AttributeManager::m_capacities, wmtk::attribute::AttributeManager::m_char_attributes, wmtk::attribute::AttributeManager::m_double_attributes, wmtk::attribute::AttributeManager::m_long_attributes, wmtk::attribute::AttributeManager::m_rational_attributes, wmtk::attribute::CachingAccessor< T, Dim >::scalar_attribute(), and top_cell_dimension().

Referenced by wmtk::components::internal::edge_insertion().

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

◆ create_accessor() [1/4]

template<typename T , int D = Eigen::Dynamic>
attribute::Accessor<T, Mesh, D> wmtk::Mesh::create_accessor ( const attribute::MeshAttributeHandle handle)

Referenced by wmtk::components::internal::adjust_sizing_field(), wmtk::components::adjust_sizing_field(), wmtk::components::internal::MultiMeshFromTag::build_adjacency_matrix(), wmtk::components::internal::MultiMeshFromTag::compute_substructure_ids(), wmtk::operations::AMIPSOptimizationSmoothing::execute(), wmtk::operations::AMIPSOptimizationSmoothingPeriodic::execute(), wmtk::operations::OptimizationSmoothing::execute(), wmtk::operations::Rounding::execute(), wmtk::operations::TetWildTangentialLaplacianSmoothing::execute(), wmtk::io::MshReader::extract_element_attribute(), wmtk::components::multimesh::from_boundary(), get_flag_accessor(), wmtk::multimesh::MultiMeshManager::get_map_accessors(), wmtk::components::longest_edge_split::longest_edge_split(), wmtk::components::multimesh::multimesh(), wmtk::operations::VertexLaplacianSmooth::operator()(), wmtk::operations::VertexTangentialLaplacianSmooth::operator()(), wmtk::components::internal::periodic_optimization(), wmtk::components::Marching::process(), wmtk::multimesh::MultiMeshManager::register_child_mesh(), wmtk::components::internal::RegularSpace::regularize_tags(), wmtk::Scheduler::run_operation_on_all(), wmtk::Scheduler::run_operation_on_all_coloring(), wmtk::mesh_utils::set_matrix_attribute(), wmtk::components::internal::set_operation_energy_filter(), wmtk::components::set_operation_energy_filter(), wmtk::components::internal::set_operation_energy_filter_after_sizing_field(), wmtk::components::set_operation_energy_filter_after_sizing_field(), wmtk::components::shortest_edge_collapse::shortest_edge_collapse(), wmtk::operations::SplitNewAttributeStrategy< T >::update(), wmtk::operations::CollapseNewAttributeStrategy< T >::update(), and wmtk::multimesh::utils::write_tuple_map_attribute_slow().

Here is the caller graph for this function:

◆ create_accessor() [2/4]

template<typename T , int D>
auto wmtk::Mesh::create_accessor ( const attribute::MeshAttributeHandle handle) -> attribute::Accessor<T, Mesh, D>
inline

Definition at line 898 of file Mesh.hpp.

◆ create_accessor() [3/4]

template<typename T , int D = Eigen::Dynamic>
attribute::Accessor<T, Mesh, D> wmtk::Mesh::create_accessor ( const TypedAttributeHandle< T > &  handle)

◆ create_accessor() [4/4]

template<typename T , int D>
auto wmtk::Mesh::create_accessor ( const TypedAttributeHandle< T > &  handle) -> attribute::Accessor<T, Mesh, D>
inline

Definition at line 885 of file Mesh.hpp.

◆ create_const_accessor() [1/4]

template<typename T , int D = Eigen::Dynamic>
const attribute::Accessor<T, Mesh, D> wmtk::Mesh::create_const_accessor ( const attribute::MeshAttributeHandle handle) const

Referenced by wmtk::components::internal::adjust_sizing_field(), wmtk::components::adjust_sizing_field(), wmtk::invariants::EnvelopeInvariant::after(), wmtk::invariants::TetMeshSubstructureTopologyPreservingInvariant::before(), wmtk::invariants::TriMeshSubstructureTopologyPreservingInvariant::before(), wmtk::invariants::CollapseEnergyBeforeInvariant::before(), wmtk::invariants::CollapseEnergyBeforeInvariantDouble::before(), wmtk::invariants::CollapseSoftEnergyBeforeInvariant::before(), wmtk::EnergyFilterInvariant::before(), wmtk::invariants::FrozenVertexInvariant::before(), wmtk::invariants::FrozenOppVertexInvariant::before(), wmtk::MaxEdgeLengthInvariant::before(), wmtk::invariants::MinEdgeLengthInvariant::before(), wmtk::RoundedInvariant::before(), wmtk::Swap23EnergyBeforeInvariant::before(), wmtk::Swap2dEdgeLengthInvariant::before(), wmtk::Swap2dUnroundedVertexInvariant::before(), wmtk::Swap32EnergyBeforeInvariant::before(), wmtk::Swap32EnergyBeforeInvariantDouble::before(), wmtk::Swap44EnergyBeforeInvariant::before(), wmtk::Swap44EnergyBeforeInvariantDouble::before(), wmtk::Swap56EnergyBeforeInvariant::before(), wmtk::Swap56EnergyBeforeInvariantDouble::before(), wmtk::TodoInvariant::before(), wmtk::TodoLargerInvariant::before(), wmtk::TodoSmallerInvariant::before(), wmtk::multimesh::utils::MapValidator::check_child_map_attributes_valid(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::multimesh::utils::MapValidator::check_parent_map_attribute_valid(), wmtk::multimesh::utils::internal::TupleTag::extract_and_register_child_mesh_from_tag_handle(), get_const_flag_accessor(), wmtk::function::PerSimplexAutodiffFunction::get_coordinates(), wmtk::multimesh::MultiMeshManager::get_map_const_accessors(), wmtk::function::AMIPS::get_raw_coordinates(), wmtk::components::longest_edge_split::longest_edge_split(), wmtk::multimesh::MultiMeshManager::map_to_child_tuples(), wmtk::multimesh::MultiMeshManager::map_tuple_to_parent_tuple(), wmtk::components::internal::periodic_optimization(), wmtk::components::Marching::process(), wmtk::multimesh::utils::read_tuple_map_attribute_slow(), wmtk::components::isotropic_remeshing::relative_to_absolute_length(), wmtk::components::internal::set_operation_energy_filter(), wmtk::components::set_operation_energy_filter(), wmtk::components::internal::set_operation_energy_filter_after_sizing_field(), wmtk::components::set_operation_energy_filter_after_sizing_field(), wmtk::components::shortest_edge_collapse::shortest_edge_collapse(), and wmtk::components::to_points().

Here is the caller graph for this function:

◆ create_const_accessor() [2/4]

template<typename T , int D>
auto wmtk::Mesh::create_const_accessor ( const attribute::MeshAttributeHandle handle) const -> const attribute::Accessor<T, Mesh, D>
inline

Definition at line 908 of file Mesh.hpp.

◆ create_const_accessor() [3/4]

template<typename T , int D = Eigen::Dynamic>
const attribute::Accessor<T, Mesh, D> wmtk::Mesh::create_const_accessor ( const TypedAttributeHandle< T > &  handle) const

◆ create_const_accessor() [4/4]

template<typename T , int D>
auto wmtk::Mesh::create_const_accessor ( const TypedAttributeHandle< T > &  handle) const -> const attribute::Accessor<T, Mesh, D>
inline

Definition at line 891 of file Mesh.hpp.

◆ create_scope()

multimesh::attribute::AttributeScopeHandle wmtk::Mesh::create_scope ( )

Definition at line 199 of file Mesh_attributes.cpp.

Referenced by wmtk::operations::Operation::operator()().

Here is the caller graph for this function:

◆ create_single_mesh_scope()

attribute::AttributeScopeHandle wmtk::Mesh::create_single_mesh_scope ( )
protected

Definition at line 204 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::create_scope(), and m_attribute_manager.

Here is the call graph for this function:

◆ custom_attributes()

std::vector< attribute::MeshAttributeHandle::HandleVariant > wmtk::Mesh::custom_attributes ( ) const

Definition at line 152 of file Mesh_attributes.cpp.

References builtin_attributes(), wmtk::attribute::AttributeManager::get_all_attributes(), and m_attribute_manager.

Referenced by clear_attributes(), wmtk::operations::EdgeCollapse::EdgeCollapse(), and wmtk::operations::EdgeSplit::EdgeSplit().

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

◆ delete_attribute() [1/2]

void wmtk::Mesh::delete_attribute ( const attribute::MeshAttributeHandle to_delete)

Definition at line 188 of file Mesh_attributes.cpp.

References wmtk::attribute::MeshAttributeHandle::handle(), and wmtk::attribute::MeshAttributeHandle::mesh().

Here is the call graph for this function:

◆ delete_attribute() [2/2]

void wmtk::Mesh::delete_attribute ( const attribute::MeshAttributeHandle::HandleVariant to_delete)

Definition at line 195 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::delete_attribute(), and m_attribute_manager.

Here is the call graph for this function:

◆ deregister_child_mesh()

void wmtk::Mesh::deregister_child_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 23 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::deregister_child_mesh(), and m_multi_mesh_manager.

Referenced by wmtk::components::internal::MultiMeshFromTag::remove_soup().

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

◆ get_all() [1/2]

std::vector< Tuple > wmtk::Mesh::get_all ( PrimitiveType  type) const

Generate a vector of Tuples from global vertex/edge/triangle/tetrahedron index.

Parameters
typethe type of tuple, can be vertex/edge/triangle/tetrahedron
Returns
vector of Tuples referring to each type

Definition at line 18 of file Mesh.cpp.

Referenced by wmtk::components::internal::adjust_sizing_field(), wmtk::components::adjust_sizing_field(), wmtk::components::multimesh::axis_aligned_fusion(), wmtk::components::internal::MultiMeshFromTag::build_adjacency_matrix(), wmtk::multimesh::utils::MapValidator::check_child_map_attributes_valid(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::multimesh::utils::MapValidator::check_parent_map_attribute_valid(), wmtk::components::TagIntersection::compute_intersection(), wmtk::components::internal::MultiMeshFromTag::compute_substructure_ids(), wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), wmtk::components::internal::MultiMeshFromTag::create_substructure_soup(), wmtk::components::internal::edge_insertion(), wmtk::multimesh::utils::internal::TupleTag::extract_and_register_child_mesh_from_tag_handle(), wmtk::io::MshReader::extract_element_attribute(), wmtk::components::multimesh::from_boundary(), wmtk::multimesh::utils::internal::TupleTag::initialize(), wmtk::components::longest_edge_split::longest_edge_split(), wmtk::components::mesh_info(), wmtk::components::multimesh::multimesh(), wmtk::io::ParaviewWriter::ParaviewWriter(), wmtk::components::internal::periodic_optimization(), wmtk::components::points_to_rowvectors(), wmtk::components::Marching::process(), wmtk::operations::composite::ProjectOperation::ProjectOperation(), wmtk::components::internal::RegularSpace::regularize_tags(), wmtk::components::isotropic_remeshing::relative_to_absolute_length(), wmtk::multimesh::utils::internal::TupleTag::run(), wmtk::operations::AttributeTransferStrategyBase::run_on_all(), wmtk::Scheduler::run_operation_on_all(), wmtk::Scheduler::run_operation_on_all_coloring(), wmtk::mesh_utils::set_matrix_attribute(), wmtk::components::internal::set_operation_energy_filter(), wmtk::components::set_operation_energy_filter(), wmtk::components::internal::set_operation_energy_filter_after_sizing_field(), wmtk::components::set_operation_energy_filter_after_sizing_field(), wmtk::components::shortest_edge_collapse::shortest_edge_collapse(), TEST_CASE(), and wmtk::components::to_points().

Here is the caller graph for this function:

◆ get_all() [2/2]

std::vector< Tuple > wmtk::Mesh::get_all ( PrimitiveType  type,
const bool  include_deleted 
) const
private

Generate a vector of Tuples from global vertex/edge/triangle/tetrahedron index.

Parameters
typethe type of tuple, can be vertex/edge/triangle/tetrahedron
include_deletedif true returns also the deleted tuples (default false)
Returns
vector of Tuples referring to each type

Definition at line 72 of file Mesh.cpp.

References capacity(), wmtk::attribute::CachingAccessor< T, Dim >::const_scalar_attribute(), get_flag_accessor(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), top_cell_dimension(), and tuple_from_id().

Here is the call graph for this function:

◆ get_all_child_meshes()

std::vector< std::shared_ptr< Mesh > > wmtk::Mesh::get_all_child_meshes ( ) const

returns all multimesh child meshes

Definition at line 227 of file Mesh_multimesh.cpp.

References get_child_meshes().

Referenced by wmtk::invariants::SeparateSubstructuresInvariant::before(), wmtk::multimesh::BoundaryChecker::for_all_meshes(), and get_all_meshes().

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

◆ get_all_id_simplex() [1/2]

std::vector< simplex::IdSimplex > wmtk::Mesh::get_all_id_simplex ( PrimitiveType  type) const

Definition at line 23 of file Mesh.cpp.

◆ get_all_id_simplex() [2/2]

std::vector< simplex::IdSimplex > wmtk::Mesh::get_all_id_simplex ( PrimitiveType  type,
const bool  include_deleted 
) const
private

Definition at line 49 of file Mesh.cpp.

References capacity(), wmtk::attribute::CachingAccessor< T, Dim >::const_scalar_attribute(), get_flag_accessor(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), and top_cell_dimension().

Here is the call graph for this function:

◆ get_all_meshes()

std::vector< std::shared_ptr< const Mesh > > wmtk::Mesh::get_all_meshes ( ) const

returns all meshes in multimesh

Definition at line 242 of file Mesh_multimesh.cpp.

References get_all_child_meshes().

Here is the call graph for this function:

◆ get_attribute_default_value()

template<typename T >
template const wmtk::Rational & wmtk::Mesh::get_attribute_default_value ( const TypedAttributeHandle< T > &  handle) const

Definition at line 38 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::get_attribute_default_value(), and m_attribute_manager.

Here is the call graph for this function:

◆ get_attribute_dimension()

template<typename T >
int64_t wmtk::Mesh::get_attribute_dimension ( const TypedAttributeHandle< T > &  handle) const
inline

Definition at line 943 of file Mesh.hpp.

References wmtk::attribute::AttributeManager::get_attribute_dimension(), and m_attribute_manager.

Referenced by wmtk::RoundedInvariant::before(), wmtk::Swap2dUnroundedVertexInvariant::before(), wmtk::attribute::MeshAttributeHandle::dimension(), wmtk::operations::Rounding::execute(), and wmtk::HDF5Reader::set_attribute().

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

◆ get_attribute_handle()

template<typename T >
attribute::MeshAttributeHandle wmtk::Mesh::get_attribute_handle ( const std::string &  name,
const PrimitiveType  ptype 
) const
inline

◆ get_attribute_handle_typed()

template<typename T >
attribute::TypedAttributeHandle< T > wmtk::Mesh::get_attribute_handle_typed ( const std::string &  name,
const PrimitiveType  ptype 
) const
inline

Definition at line 927 of file Mesh.hpp.

References wmtk::attribute::AttributeManager::get(), m_attribute_manager, wmtk::attribute::TypedAttributeHandle< T >::m_base_handle, and wmtk::attribute::TypedAttributeHandle< T >::m_primitive_type.

Referenced by wmtk::multimesh::MultiMeshManager::update_child_handles().

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

◆ get_attribute_name() [1/2]

std::string wmtk::Mesh::get_attribute_name ( const attribute::MeshAttributeHandle::HandleVariant handle) const

Definition at line 160 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::get_name(), and m_attribute_manager.

Here is the call graph for this function:

◆ get_attribute_name() [2/2]

template<typename T >
std::string wmtk::Mesh::get_attribute_name ( const TypedAttributeHandle< T > &  handle) const
inline

Definition at line 949 of file Mesh.hpp.

References wmtk::attribute::AttributeManager::get_name(), and m_attribute_manager.

Referenced by wmtk::attribute::MeshAttributeHandle::name(), wmtk::components::output::output(), and wmtk::multimesh::utils::transfer_attribute().

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::Mesh::get_child_meshes ( ) const

returns the direct multimesh child meshes for the current mesh

Definition at line 222 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::get_child_meshes(), and m_multi_mesh_manager.

Referenced by wmtk::invariants::NoChildMeshAttachingInvariant::before(), wmtk::multimesh::utils::MapValidator::check_switch_homomorphism(), wmtk::operations::AMIPSOptimizationSmoothing::execute(), wmtk::operations::AMIPSOptimizationSmoothingPeriodic::execute(), get_all_child_meshes(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::operator()(), and wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_ear_replacement().

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

◆ get_const_flag_accessor()

const attribute::Accessor< char > wmtk::Mesh::get_const_flag_accessor ( PrimitiveType  type) const

Definition at line 162 of file Mesh.cpp.

References create_const_accessor(), wmtk::get_primitive_type_id(), and m_flag_handles.

Referenced by wmtk::multimesh::MultiMeshManager::find_valid_tuple_from_alternatives(), get_flag_accessor(), is_removed(), wmtk::multimesh::MultiMeshManager::same_simplex_dimension_surjection(), wmtk::multimesh::MultiMeshManager::update_map_tuple_hashes(), and wmtk::multimesh::MultiMeshManager::update_maps_from_edge_operation().

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

◆ get_flag_accessor() [1/2]

attribute::Accessor< char > wmtk::Mesh::get_flag_accessor ( PrimitiveType  type)
protected

Definition at line 166 of file Mesh.cpp.

References create_accessor(), wmtk::get_primitive_type_id(), and m_flag_handles.

Here is the call graph for this function:

◆ get_flag_accessor() [2/2]

const attribute::Accessor< char > wmtk::Mesh::get_flag_accessor ( PrimitiveType  type) const

◆ get_id_simplex() [1/2]

simplex::IdSimplex wmtk::Mesh::get_id_simplex ( const simplex::Simplex s) const

Definition at line 33 of file Mesh.cpp.

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

Here is the call graph for this function:

◆ get_id_simplex() [2/2]

simplex::IdSimplex wmtk::Mesh::get_id_simplex ( const Tuple tuple,
PrimitiveType  pt 
) const

◆ get_index_access() [1/2]

template<typename T , typename MeshType >
static auto& wmtk::Mesh::get_index_access ( attribute::Accessor< T, MeshType > &  attr)
inlinestaticprotected

Definition at line 823 of file Mesh.hpp.

References wmtk::attribute::Accessor< T, MeshType, Dim >::index_access().

Referenced by wmtk::multimesh::MultiMeshManager::child_global_cid(), wmtk::multimesh::MultiMeshManager::parent_global_cid(), wmtk::multimesh::MultiMeshManager::parent_local_fid(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_ear_replacement(), wmtk::multimesh::MultiMeshManager::update_map_tuple_hashes(), and wmtk::multimesh::MultiMeshManager::update_maps_from_edge_operation().

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

◆ get_index_access() [2/2]

template<typename T , typename MeshType >
static auto& wmtk::Mesh::get_index_access ( const attribute::Accessor< T, MeshType > &  attr)
inlinestaticprotected

Definition at line 828 of file Mesh.hpp.

References wmtk::attribute::Accessor< T, MeshType, Dim >::index_access().

Here is the call graph for this function:

◆ get_multi_mesh_child_mesh() [1/2]

Mesh & wmtk::Mesh::get_multi_mesh_child_mesh ( const std::vector< int64_t > &  relative_id)

Definition at line 213 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::get_child_mesh(), and m_multi_mesh_manager.

Here is the call graph for this function:

◆ get_multi_mesh_child_mesh() [2/2]

const Mesh & wmtk::Mesh::get_multi_mesh_child_mesh ( const std::vector< int64_t > &  relative_id) const

Definition at line 217 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::get_child_mesh(), and m_multi_mesh_manager.

Here is the call graph for this function:

◆ get_multi_mesh_mesh() [1/2]

Mesh & wmtk::Mesh::get_multi_mesh_mesh ( const std::vector< int64_t > &  absolute_id)

Definition at line 203 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::get_mesh(), and m_multi_mesh_manager.

Here is the call graph for this function:

◆ get_multi_mesh_mesh() [2/2]

const Mesh & wmtk::Mesh::get_multi_mesh_mesh ( const std::vector< int64_t > &  absolute_id) const

Definition at line 207 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::get_mesh(), and m_multi_mesh_manager.

Here is the call graph for this function:

◆ get_multi_mesh_root() [1/2]

Mesh & wmtk::Mesh::get_multi_mesh_root ( )

returns a reference to the root of a multimesh tree

Definition at line 194 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::get_root_mesh(), and m_multi_mesh_manager.

Referenced by wmtk::multimesh::MultiMeshManager::can_map(), wmtk::multimesh::MultiMeshVisitor< NodeFunctor_ >::execute_from_root(), wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::execute_from_root(), wmtk::multimesh::BoundaryChecker::for_all_meshes(), is_from_same_multi_mesh_structure(), and wmtk::components::isotropic_remeshing::isotropic_remeshing().

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

◆ get_multi_mesh_root() [2/2]

const Mesh & wmtk::Mesh::get_multi_mesh_root ( ) const

returns a const reference to the root of a multimesh tree

Definition at line 198 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::get_root_mesh(), and m_multi_mesh_manager.

Here is the call graph for this function:

◆ get_simplex()

simplex::Simplex wmtk::Mesh::get_simplex ( const simplex::IdSimplex s) const

Convert an IdSimplex into a Simplex.

Definition at line 38 of file Mesh.cpp.

References wmtk::simplex::IdSimplex::index(), wmtk::simplex::IdSimplex::primitive_type(), and tuple_from_id().

Referenced by wmtk::operations::Operation::apply_attribute_transfer().

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

◆ get_tuple_from_id_simplex()

Tuple wmtk::Mesh::get_tuple_from_id_simplex ( const simplex::IdSimplex s) const

Definition at line 44 of file Mesh.cpp.

References wmtk::simplex::IdSimplex::index(), wmtk::simplex::IdSimplex::primitive_type(), and tuple_from_id().

Referenced by wmtk::simplex::IdSimplexCollection::simplex_vector_tuples().

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

◆ guarantee_at_least_attributes() [1/2]

void wmtk::Mesh::guarantee_at_least_attributes ( const std::vector< int64_t > &  sizes)
protected

Definition at line 119 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::guarantee_at_least_attributes(), m_attribute_manager, and top_cell_dimension().

Here is the call graph for this function:

◆ guarantee_at_least_attributes() [2/2]

void wmtk::Mesh::guarantee_at_least_attributes ( PrimitiveType  type,
int64_t  size 
)
protected

Definition at line 115 of file Mesh_attributes.cpp.

References wmtk::get_primitive_type_id(), wmtk::attribute::AttributeManager::guarantee_at_least_attributes(), and m_attribute_manager.

Here is the call graph for this function:

◆ guarantee_more_attributes() [1/2]

void wmtk::Mesh::guarantee_more_attributes ( const std::vector< int64_t > &  sizes)
protected

Definition at line 130 of file Mesh_attributes.cpp.

References wmtk::attribute::AttributeManager::guarantee_more_attributes(), m_attribute_manager, and top_cell_dimension().

Here is the call graph for this function:

◆ guarantee_more_attributes() [2/2]

void wmtk::Mesh::guarantee_more_attributes ( PrimitiveType  type,
int64_t  size 
)
protected

Definition at line 126 of file Mesh_attributes.cpp.

References wmtk::get_primitive_type_id(), wmtk::attribute::AttributeManager::guarantee_more_attributes(), and m_attribute_manager.

Referenced by wmtk::operations::EdgeOperationData::request_simplex_indices().

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

◆ has_attribute()

template<typename T >
bool wmtk::Mesh::has_attribute ( const std::string &  name,
const PrimitiveType  ptype 
) const
inline

Definition at line 937 of file Mesh.hpp.

References wmtk::attribute::AttributeManager::get(), and m_attribute_manager.

Referenced by wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::components::utils::get_attribute(), wmtk::components::multimesh::utils::detail::get_attribute(), and wmtk::HDF5Reader::set_attribute().

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

◆ has_child_mesh()

bool wmtk::Mesh::has_child_mesh ( ) const
inline

Definition at line 784 of file Mesh.hpp.

References wmtk::multimesh::MultiMeshManager::has_child_mesh(), and m_multi_mesh_manager.

Here is the call graph for this function:

◆ has_child_mesh_in_dimension()

bool wmtk::Mesh::has_child_mesh_in_dimension ( int64_t  dimension) const
inline

returns if the mesh has a child mesh in the given dimension

Parameters
dimension
Returns
true
false

Definition at line 779 of file Mesh.hpp.

References wmtk::multimesh::MultiMeshManager::has_child_mesh_in_dimension(), and m_multi_mesh_manager.

Here is the call graph for this function:

◆ id() [1/4]

int64_t wmtk::Mesh::id ( const simplex::IdSimplex s) const
inlineprotected

Definition at line 813 of file Mesh.hpp.

References wmtk::simplex::IdSimplex::index().

Here is the call graph for this function:

◆ id() [2/4]

int64_t wmtk::Mesh::id ( const simplex::NavigatableSimplex s) const
inlineprotected

Definition at line 812 of file Mesh.hpp.

References wmtk::simplex::IdSimplex::index().

Here is the call graph for this function:

◆ id() [3/4]

virtual int64_t wmtk::Mesh::id ( const simplex::Simplex s) const
protectedpure virtual

Forwarding version of id on simplices that does id caching.

Implemented in wmtk::MeshCRTP< Derived >, wmtk::MeshCRTP< EdgeMesh >, wmtk::MeshCRTP< TriMesh >, wmtk::MeshCRTP< TetMesh >, and wmtk::MeshCRTP< PointMesh >.

◆ id() [4/4]

int64_t wmtk::Mesh::id ( const Tuple tuple,
PrimitiveType  type 
) const
inlineprotected

return the global id of the Tuple of the given dimension

This function uses the implementation defined in a derived class (like a Tri/TetMesh) using a virtual function, but to enable more opportunities teh actual virtual function is id_virtual

Parameters
m
typed-0 -> vertex d-1 -> edge d-2 -> face d-3 -> tetrahedron
Returns
int64_t id of the entity

Definition at line 1020 of file Mesh.hpp.

References id_virtual().

Referenced by wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::simplex::utils::SimplexComparisons::equal(), wmtk::multimesh::utils::internal::TupleTag::extract_and_register_child_mesh_from_tag_handle(), wmtk::multimesh::MultiMeshManager::find_valid_tuple_from_split(), wmtk::simplex::IdSimplex::id(), is_valid(), wmtk::simplex::utils::SimplexComparisons::less(), wmtk::simplex::RawSimplex::opposite_face(), wmtk::io::ParaviewWriter::ParaviewWriter(), wmtk::simplex::RawSimplex::RawSimplex(), and wmtk::multimesh::utils::internal::TupleTag::vid().

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

◆ id_virtual()

virtual int64_t wmtk::Mesh::id_virtual ( const Tuple tuple,
PrimitiveType  type 
) const
protectedpure virtual

Internal utility to allow id to be virtual with a non-virtual overload in derived -Mesh classes.

Mesh::id invokes Mesh::id_virtual which is final overriden by MeshCRTP<TriMesh>::id_virtual, which in turn invokes MeshCRTP<TriMesh>::id, and then TriMesh::id. This circuitous mechanism makes MeshCRTP<TriMesh>::id and TriMesh::id fully inlineable, so code that wants to take in any derived class can get optimized results with MeshCRTP, or for cases where classes want to utilize just TriMesh they can get inline/accelerated usage as well.

Implemented in wmtk::MeshCRTP< Derived >, wmtk::MeshCRTP< EdgeMesh >, wmtk::MeshCRTP< TriMesh >, wmtk::MeshCRTP< TetMesh >, and wmtk::MeshCRTP< PointMesh >.

Referenced by id().

Here is the caller graph for this function:

◆ is_boundary() [1/2]

bool wmtk::Mesh::is_boundary ( const simplex::Simplex tuple) const

check if a simplex lies on a boundary or not

Parameters
simplex
Returns
true if this simplex lies on the boundary of the mesh
false otherwise

Definition at line 106 of file Mesh.cpp.

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

Referenced by wmtk::simplex::TopDimensionCofacesIterable::Iterator::add_neighbors_to_queue(), wmtk::invariants::FusionEdgeInvariant::before(), wmtk::invariants::uvEdgeInvariant::before(), wmtk::invariants::NoBoundaryCollapseToInteriorInvariant::before(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::operations::TetWildTangentialLaplacianSmoothing::execute(), wmtk::components::multimesh::from_boundary(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::init(), wmtk::multimesh::BoundaryChecker::is_boundary(), wmtk::components::multimesh::multimesh(), wmtk::operations::VertexTangentialLaplacianSmooth::operator()(), wmtk::operations::NewAttributeStrategy::set_simplex_predicate(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::step_depth_1(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::step_depth_2(), and switch_tuples().

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

◆ is_boundary() [2/2]

virtual bool wmtk::Mesh::is_boundary ( PrimitiveType  ,
const Tuple tuple 
) const
pure virtual

check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not

Parameters
simplex
Returns
true if this simplex lies on the boundary of the mesh
false otherwise

Implemented in wmtk::EdgeMesh, wmtk::PointMesh, wmtk::MeshCRTP< Derived >, wmtk::MeshCRTP< EdgeMesh >, wmtk::MeshCRTP< TriMesh >, wmtk::MeshCRTP< TetMesh >, wmtk::MeshCRTP< PointMesh >, wmtk::TriMesh, and wmtk::TetMesh.

◆ is_ccw()

virtual bool wmtk::Mesh::is_ccw ( const Tuple tuple) const
pure virtual

TODO this needs dimension?

Parameters
m
Returns
true if the Tuple is oriented counter-clockwise
false

Implemented in wmtk::PointMesh, wmtk::MeshCRTP< Derived >, wmtk::MeshCRTP< EdgeMesh >, wmtk::MeshCRTP< TriMesh >, wmtk::MeshCRTP< TetMesh >, wmtk::MeshCRTP< PointMesh >, wmtk::EdgeMesh, wmtk::TriMesh, and wmtk::TetMesh.

Referenced by wmtk::invariants::CollapseSoftEnergyBeforeInvariant::before(), and wmtk::function::utils::get_simplex_attributes().

Here is the caller graph for this function:

◆ is_connectivity_valid()

virtual bool wmtk::Mesh::is_connectivity_valid ( ) const
pure virtual

◆ is_free()

◆ is_from_same_multi_mesh_structure()

bool wmtk::Mesh::is_from_same_multi_mesh_structure ( const Mesh other) const

Definition at line 34 of file Mesh_multimesh.cpp.

References get_multi_mesh_root().

Referenced by can_map(), lub_map(), lub_map_tuples(), map(), map_to_child(), map_to_child_tuples(), and map_tuples().

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

◆ is_hash_valid() [1/2]

bool wmtk::Mesh::is_hash_valid ( const Tuple tuple) const

◆ is_hash_valid() [2/2]

bool wmtk::Mesh::is_hash_valid ( const Tuple tuple,
const attribute::Accessor< int64_t > &  hash_accessor 
) const

◆ is_multi_mesh_root()

bool wmtk::Mesh::is_multi_mesh_root ( ) const

return true if this mesh is the root of a multimesh tree

Definition at line 190 of file Mesh_multimesh.cpp.

References wmtk::multimesh::MultiMeshManager::is_root(), and m_multi_mesh_manager.

Referenced by wmtk::components::longest_edge_split::longest_edge_split(), map_to_parent(), map_to_parent_tuple(), and wmtk::components::shortest_edge_collapse::shortest_edge_collapse().

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

◆ is_removed() [1/4]

bool wmtk::Mesh::is_removed ( const Tuple tuple) const

Definition at line 117 of file Mesh.cpp.

References wmtk::Tuple::m_global_cid.

Referenced by wmtk::multimesh::MultiMeshManager::find_valid_tuple_from_split(), is_removed(), is_valid(), and wmtk::multimesh::MultiMeshManager::update_maps_from_edge_operation().

Here is the caller graph for this function:

◆ is_removed() [2/4]

bool wmtk::Mesh::is_removed ( const Tuple tuple,
PrimitiveType  pt 
) const

Definition at line 121 of file Mesh.cpp.

References is_removed().

Here is the call graph for this function:

◆ is_removed() [3/4]

bool wmtk::Mesh::is_removed ( int64_t  index) const
protected

Definition at line 133 of file Mesh.cpp.

References is_removed(), and top_simplex_type().

Here is the call graph for this function:

◆ is_removed() [4/4]

bool wmtk::Mesh::is_removed ( int64_t  index,
PrimitiveType  pt 
) const
protected

Definition at line 137 of file Mesh.cpp.

References get_const_flag_accessor().

Here is the call graph for this function:

◆ is_valid() [1/2]

bool wmtk::Mesh::is_valid ( const simplex::Simplex s) const

Check if the cached id in a simplex is up-to-date.

Definition at line 143 of file Mesh.cpp.

References id(), is_removed(), is_valid(), wmtk::simplex::Simplex::primitive_type(), and wmtk::simplex::Simplex::tuple().

Here is the call graph for this function:

◆ is_valid() [2/2]

bool wmtk::Mesh::is_valid ( const Tuple tuple) const
virtual

check validity of tuple including its hash

Parameters
tuplethe tuple to be checked
typeonly the top cell dimension, other validity follows with assumption of manifoldness. 2->triangle, 3->tetrahedron
Returns
true if is valid
false

Reimplemented in wmtk::TriMesh, wmtk::TetMesh, wmtk::PointMesh, and wmtk::EdgeMesh.

Definition at line 112 of file Mesh.cpp.

References wmtk::Tuple::is_null(), and is_removed().

Referenced by wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::simplex::closed_star(), wmtk::multimesh::MultiMeshSimplexVisitor< cell_dimension_, NodeFunctor_ >::execute_from_root(), wmtk::multimesh::MultiMeshManager::find_valid_tuple_from_split(), wmtk::TriMesh::id(), is_valid(), wmtk::EdgeMesh::is_valid(), wmtk::PointMesh::is_valid(), wmtk::TetMesh::is_valid(), wmtk::TriMesh::is_valid(), wmtk::multimesh::MultiMeshManager::map_tuple_between_meshes(), wmtk::multimesh::MultiMeshManager::map_tuple_to_root_tuple(), wmtk::operations::VertexTangentialLaplacianSmooth::operator()(), wmtk::simplex::RawSimplex::opposite_face(), wmtk::components::Marching::process(), wmtk::simplex::RawSimplex::RawSimplex(), wmtk::multimesh::MultiMeshManager::register_child_mesh(), and wmtk::multimesh::MultiMeshManager::update_map_tuple_hashes().

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

◆ lub_map() [1/2]

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

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

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

Parameters
meshthe mesh a simplex should be mapped to
simplexthe simplex being mapped to the child mesh
Returns
every simplex that corresponds to this simplex

Definition at line 72 of file Mesh_multimesh.cpp.

References is_from_same_multi_mesh_structure(), wmtk::multimesh::MultiMeshManager::lub_map(), and m_multi_mesh_manager.

Referenced by lub_map().

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

◆ lub_map() [2/2]

std::vector< simplex::Simplex > wmtk::Mesh::lub_map ( const Mesh other_mesh,
const std::vector< simplex::Simplex > &  my_simplices 
) const

Definition at line 83 of file Mesh_multimesh.cpp.

References lub_map().

Here is the call graph for this function:

◆ lub_map_tuples() [1/2]

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

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

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

Parameters
meshthe mesh a simplex should be mapped to
simplexthe simplex being mapped to the child mesh
Returns
every simplex that corresponds to this simplex

Definition at line 143 of file Mesh_multimesh.cpp.

References is_from_same_multi_mesh_structure(), wmtk::multimesh::MultiMeshManager::lub_map_tuples(), and m_multi_mesh_manager.

Referenced by wmtk::operations::AttributeTransferStrategyBase::get_parent_simplices(), and lub_map_tuples().

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

◆ lub_map_tuples() [2/2]

std::vector< Tuple > wmtk::Mesh::lub_map_tuples ( const Mesh other_mesh,
PrimitiveType  pt,
const std::vector< Tuple > &  my_simplices 
) const

Definition at line 153 of file Mesh_multimesh.cpp.

References lub_map_tuples().

Here is the call graph for this function:

◆ map() [1/2]

std::vector< simplex::Simplex > wmtk::Mesh::map ( 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
meshthe mesh a simplex should be mapped to
simplexthe simplex being mapped to the child mesh
Returns
every simplex that corresponds to this simplex

Definition at line 48 of file Mesh_multimesh.cpp.

References is_from_same_multi_mesh_structure(), m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map().

Referenced by wmtk::operations::Operation::apply_attribute_transfer(), wmtk::operations::Operation::before(), wmtk::invariants::InvariantCollection::directly_modified_after(), and map().

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

◆ map() [2/2]

std::vector< simplex::Simplex > wmtk::Mesh::map ( const Mesh other_mesh,
const std::vector< simplex::Simplex > &  my_simplices 
) const

Definition at line 58 of file Mesh_multimesh.cpp.

References map().

Here is the call graph for this function:

◆ map_to_child()

std::vector< simplex::Simplex > wmtk::Mesh::map_to_child ( 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
child_meshthe simplex shoudl be mapped to
my_simplexthe simplex being mapped to the child mesh
theset of child mesh's simplices that are equivalent to the input simplex

Definition at line 110 of file Mesh_multimesh.cpp.

References is_from_same_multi_mesh_structure(), m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_to_child().

Referenced by wmtk::invariants::FusionEdgeInvariant::before(), wmtk::invariants::uvEdgeInvariant::before(), wmtk::components::internal::MultiMeshFromTag::build_adjacency_matrix(), wmtk::operations::AMIPSOptimizationSmoothingPeriodic::execute(), wmtk::components::internal::MultiMeshFromTag::get_connected_region(), and wmtk::components::internal::MultiMeshFromTag::is_root_simplex_manifold().

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

◆ map_to_child_tuples()

std::vector< Tuple > wmtk::Mesh::map_to_child_tuples ( 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
childmesh the simplex shoudl be mapped to
child_meshthe simplex being mapped to the child mesh
my_simplexthe set of child mesh's simplices that are equivalent to the input simplex, without the dimension encoded

Definition at line 179 of file Mesh_multimesh.cpp.

References is_from_same_multi_mesh_structure(), m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_to_child_tuples().

Referenced by wmtk::invariants::SeparateSubstructuresInvariant::before().

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

◆ map_to_parent()

simplex::Simplex wmtk::Mesh::map_to_parent ( 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_simplexthe simplex being mapped to the parent mesh
Returns
the unique parent mesh's simplex that is parent to the input one

Definition at line 98 of file Mesh_multimesh.cpp.

References is_multi_mesh_root(), m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_to_parent().

Referenced by wmtk::invariants::FusionEdgeInvariant::before(), wmtk::components::internal::MultiMeshFromTag::build_adjacency_matrix(), wmtk::operations::AMIPSOptimizationSmoothingPeriodic::execute(), and wmtk::components::internal::MultiMeshFromTag::get_connected_region().

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

◆ map_to_parent_tuple()

Tuple wmtk::Mesh::map_to_parent_tuple ( 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. Can only be used in applications with guaranteed multi-mesh structures

throws if this is the root

Parameters
my_simplexthe simplex 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 168 of file Mesh_multimesh.cpp.

References is_multi_mesh_root(), m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_to_parent_tuple().

Referenced by wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism().

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

◆ map_to_root()

simplex::Simplex wmtk::Mesh::map_to_root ( 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_simplexthe simplex being mapped to the parent mesh
Returns
the unique root mesh's simplex that is the root to the input one

Definition at line 105 of file Mesh_multimesh.cpp.

References m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_to_root().

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

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

◆ map_to_root_tuple()

Tuple wmtk::Mesh::map_to_root_tuple ( 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_simplexthe simplex 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 175 of file Mesh_multimesh.cpp.

References m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_to_root_tuple().

Here is the call graph for this function:

◆ map_tuples() [1/2]

std::vector< Tuple > wmtk::Mesh::map_tuples ( 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 requires a more particular understanding on how a simplex is mapped. throws if two meshes are not part of the same multi-mesh structure

Parameters
other_meshthe mesh a simplex should be mapped to
my_simplexthe simplex being mapped to the child mesh
Returns
every simplex that corresponds to this simplex, without the dimension encoded

Definition at line 121 of file Mesh_multimesh.cpp.

References is_from_same_multi_mesh_structure(), m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::map_tuples().

Referenced by wmtk::invariants::InvariantCollection::after(), wmtk::operations::composite::ProjectOperation::execute(), wmtk::multimesh::BoundaryChecker::is_boundary(), map_tuples(), and register_child_mesh().

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

◆ map_tuples() [2/2]

std::vector< Tuple > wmtk::Mesh::map_tuples ( const Mesh other_mesh,
PrimitiveType  pt,
const std::vector< Tuple > &  my_simplices 
) const

Definition at line 132 of file Mesh_multimesh.cpp.

References map_tuples().

Here is the call graph for this function:

◆ operator=() [1/2]

Mesh& wmtk::Mesh::operator= ( const Mesh other)
delete

Referenced by wmtk::TetMesh::operator=(), and wmtk::TriMesh::operator=().

Here is the caller graph for this function:

◆ operator=() [2/2]

Mesh & wmtk::Mesh::operator= ( Mesh &&  other)

◆ operator==()

bool wmtk::Mesh::operator== ( const Mesh other) const

Definition at line 180 of file Mesh.cpp.

References m_attribute_manager.

◆ orient_vertices()

◆ parent_scope()

template<typename Functor , typename... Args>
decltype(auto) wmtk::Mesh::parent_scope ( Functor &&  f,
Args &&...  args 
) const

◆ register_attribute()

◆ register_attribute_typed()

template<typename T >
template TypedAttributeHandle< Rational > wmtk::Mesh::register_attribute_typed ( const std::string &  name,
PrimitiveType  type,
int64_t  size,
bool  replace = false,
default_value = T(0) 
)

Definition at line 25 of file Mesh_attributes.cpp.

References m_attribute_manager, and wmtk::attribute::AttributeManager::register_attribute().

Referenced by wmtk::components::Marching::process(), and wmtk::multimesh::MultiMeshManager::register_child_mesh().

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

◆ register_child_mesh()

void wmtk::Mesh::register_child_mesh ( const std::shared_ptr< Mesh > &  child_mesh_ptr,
const std::vector< std::array< Tuple, 2 >> &  map_tuples 
)

register a mesh as the child of this mesh

The parameter map_tuples is a sequence of {A,B} where A is a tuple of this mesh and B is a tuple of the child mesh. The tuple B is assumed to encode a top dimension simplex in the child mesh, and A is any tuple that corresponds to that simplex in the parent mesh

Parameters
child_meshthe mesh that will become a child of this mesh
mesh_tuplesa sequence of corresponding tuples between meshes

Definition at line 16 of file Mesh_multimesh.cpp.

References m_multi_mesh_manager, map_tuples(), and wmtk::multimesh::MultiMeshManager::register_child_mesh().

Referenced by wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), wmtk::components::internal::MultiMeshFromTag::create_substructure_soup(), wmtk::multimesh::utils::internal::TupleTag::extract_and_register_child_mesh_from_tag_handle(), wmtk::components::multimesh::from_facet_bijection(), and wmtk::components::multimesh::multimesh().

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

◆ request_simplex_indices()

◆ reserve_attributes() [1/2]

void wmtk::Mesh::reserve_attributes ( int64_t  dimension,
int64_t  size 
)
protected

◆ reserve_attributes() [2/2]

void wmtk::Mesh::reserve_attributes ( PrimitiveType  type,
int64_t  size 
)
protected

Definition at line 93 of file Mesh_attributes.cpp.

References wmtk::get_primitive_type_id(), m_attribute_manager, and wmtk::attribute::AttributeManager::reserve_attributes().

Here is the call graph for this function:

◆ reserve_attributes_to_fit()

void wmtk::Mesh::reserve_attributes_to_fit ( )
protected

reserve space for all attributes data types for all dimensional simplices

Parameters
top_dthe top dimensional simplex

Definition at line 89 of file Mesh_attributes.cpp.

References m_attribute_manager, and wmtk::attribute::AttributeManager::reserve_to_fit().

Referenced by wmtk::PointMesh::initialize().

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

◆ reserve_more_attributes() [1/2]

void wmtk::Mesh::reserve_more_attributes ( const std::vector< int64_t > &  sizes)
protected

Definition at line 108 of file Mesh_attributes.cpp.

References m_attribute_manager, wmtk::attribute::AttributeManager::reserve_more_attributes(), and top_cell_dimension().

Here is the call graph for this function:

◆ reserve_more_attributes() [2/2]

void wmtk::Mesh::reserve_more_attributes ( PrimitiveType  type,
int64_t  size 
)
protected

Definition at line 103 of file Mesh_attributes.cpp.

References wmtk::get_primitive_type_id(), m_attribute_manager, and wmtk::attribute::AttributeManager::reserve_more_attributes().

Here is the call graph for this function:

◆ serialize()

◆ set_capacities()

void wmtk::Mesh::set_capacities ( std::vector< int64_t >  capacities)
protected

Definition at line 97 of file Mesh_attributes.cpp.

References m_attribute_manager, and wmtk::attribute::AttributeManager::set_capacities().

Referenced by wmtk::EdgeMesh::initialize(), wmtk::TriMesh::initialize(), wmtk::TetMesh::initialize(), and wmtk::PointMesh::initialize().

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

◆ set_capacities_from_flags()

void wmtk::Mesh::set_capacities_from_flags ( )

Definition at line 172 of file Mesh.cpp.

References m_attribute_manager, wmtk::attribute::AttributeManager::m_capacities, m_flag_handles, and wmtk::attribute::Accessor< T, MeshType, Dim >::reserved_size().

Here is the call graph for this function:

◆ simplex_from_id()

simplex::NavigatableSimplex wmtk::Mesh::simplex_from_id ( const PrimitiveType  type,
const int64_t  gid 
) const
protected

Definition at line 129 of file Mesh.cpp.

References tuple_from_id().

Referenced by wmtk::operations::EdgeOperationData::simplex_from_id().

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

◆ simplices_to_gids()

std::vector< std::vector< int64_t > > wmtk::Mesh::simplices_to_gids ( const std::vector< std::vector< simplex::Simplex >> &  simplices) const
protected

Definition at line 186 of file Mesh.cpp.

References wmtk::get_primitive_type_id().

Here is the call graph for this function:

◆ switch_tuple()

virtual Tuple wmtk::Mesh::switch_tuple ( const Tuple tuple,
PrimitiveType  type 
) const
pure virtual

switch the orientation of the Tuple of the given dimension

Note
this is not doen in place. Return a new Tuple of the switched state
Parameters
m
typed-0 -> switch vertex d-1 -> switch edge d-2 -> switch face d-3 -> switch tetrahedron

Implemented in wmtk::PointMesh, wmtk::MeshCRTP< Derived >, wmtk::MeshCRTP< EdgeMesh >, wmtk::MeshCRTP< TriMesh >, wmtk::MeshCRTP< TetMesh >, wmtk::MeshCRTP< PointMesh >, wmtk::EdgeMesh, wmtk::TriMesh, and wmtk::TetMesh.

Referenced by wmtk::simplex::TopDimensionCofacesIterable::Iterator::add_neighbors_to_queue(), wmtk::components::internal::adjust_sizing_field(), wmtk::components::adjust_sizing_field(), wmtk::invariants::EnvelopeInvariant::after(), wmtk::invariants::CollapseEnergyBeforeInvariant::before(), wmtk::invariants::CollapseEnergyBeforeInvariantDouble::before(), wmtk::invariants::CollapseSoftEnergyBeforeInvariant::before(), wmtk::MultiMeshEdgeTopologyInvariant::before(), wmtk::Swap23EnergyBeforeInvariant::before(), wmtk::Swap2dEdgeLengthInvariant::before(), wmtk::Swap2dUnroundedVertexInvariant::before(), wmtk::Swap32EnergyBeforeInvariant::before(), wmtk::Swap32EnergyBeforeInvariantDouble::before(), wmtk::Swap44EnergyBeforeInvariant::before(), wmtk::Swap44EnergyBeforeInvariantDouble::before(), wmtk::Swap56EnergyBeforeInvariant::before(), wmtk::Swap56EnergyBeforeInvariantDouble::before(), wmtk::simplex::boundary_tuples(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::operations::TetWildTangentialLaplacianSmoothing::execute(), wmtk::multimesh::utils::internal::TupleTag::extract_and_register_child_mesh_from_tag_handle(), wmtk::function::utils::get_simplex_attributes(), wmtk::multimesh::MultiMeshManager::map_tuple_between_meshes(), wmtk::simplex::ClosedStarIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::navigate_to_link(), wmtk::operations::VertexTangentialLaplacianSmooth::operator()(), wmtk::simplex::CofacesInSimplexIterable::Iterator::operator++(), wmtk::io::ParaviewWriter::ParaviewWriter(), wmtk::components::internal::periodic_optimization(), wmtk::components::Marching::process(), wmtk::multimesh::utils::internal::TupleTag::run(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::step_depth_1(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::step_depth_2(), wmtk::simplex::ClosedStarIterable::Iterator::step_edge_mesh(), wmtk::simplex::ClosedStarIterable::Iterator::step_tet_mesh(), wmtk::simplex::ClosedStarIterable::Iterator::step_tri_mesh(), wmtk::simplex::HalfClosedStarIterable::Iterator::step_tri_mesh(), switch_tuples(), switch_tuples_unsafe(), wmtk::simplex::tuples_preserving_primitive_types(), and wmtk::simplex::vertices().

Here is the caller graph for this function:

◆ switch_tuples() [1/2]

template<typename ContainerType >
Tuple wmtk::Mesh::switch_tuples ( const Tuple tuple,
const ContainerType &  op_sequence 
) const
inline

Definition at line 967 of file Mesh.hpp.

References is_boundary(), switch_tuple(), top_cell_dimension(), and top_simplex_type().

Referenced by wmtk::simplex::TopDimensionCofacesIterable::Iterator::add_neighbors_to_queue(), wmtk::invariants::CollapseSoftEnergyBeforeInvariant::before(), wmtk::Swap23EnergyBeforeInvariant::before(), wmtk::Swap2dEdgeLengthInvariant::before(), wmtk::Swap2dUnroundedVertexInvariant::before(), wmtk::Swap32EnergyBeforeInvariant::before(), wmtk::Swap32EnergyBeforeInvariantDouble::before(), wmtk::Swap44EnergyBeforeInvariant::before(), wmtk::Swap44EnergyBeforeInvariantDouble::before(), wmtk::Swap56EnergyBeforeInvariant::before(), wmtk::Swap56EnergyBeforeInvariantDouble::before(), wmtk::simplex::boundary_tuples(), wmtk::simplex::internal::boundary_with_preserved_face_tuples(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::simplex::edges(), wmtk::operations::composite::TetCellSplit::execute(), wmtk::operations::composite::TetEdgeSwap::execute(), wmtk::operations::composite::TetFaceSwap::execute(), wmtk::operations::composite::TriEdgeSwap::execute(), wmtk::operations::composite::TriFaceSplit::execute(), wmtk::operations::TetWildTangentialLaplacianSmoothing::execute(), wmtk::multimesh::utils::internal::TupleTag::extract_and_register_child_mesh_from_tag_handle(), wmtk::simplex::faces(), wmtk::operations::EdgeSplit::new_spine_edges(), wmtk::operations::VertexTangentialLaplacianSmooth::operator()(), wmtk::components::internal::periodic_optimization(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::step_depth_2(), wmtk::simplex::ClosedStarIterable::Iterator::step_depth_3(), wmtk::simplex::CofacesSingleDimensionIterable::Iterator::step_depth_3(), wmtk::simplex::LinkIterable::Iterator::step_depth_3(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::step_depth_3(), wmtk::simplex::OpenStarIterable::Iterator::step_depth_3(), wmtk::simplex::ClosedStarIterable::Iterator::step_faces_tetrahedron(), wmtk::simplex::ClosedStarIterable::Iterator::step_tet_mesh(), wmtk::simplex::HalfClosedStarIterable::Iterator::step_tet_mesh(), wmtk::simplex::ClosedStarIterable::Iterator::step_tri_mesh(), and wmtk::simplex::vertices().

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

◆ switch_tuples() [2/2]

Tuple wmtk::Mesh::switch_tuples ( const Tuple tuple,
const std::initializer_list< PrimitiveType > &  op_sequence 
) const

Definition at line 203 of file Mesh.cpp.

◆ switch_tuples_unsafe() [1/2]

template<typename ContainerType >
Tuple wmtk::Mesh::switch_tuples_unsafe ( const Tuple tuple,
const ContainerType &  op_sequence 
) const
inline

Definition at line 1010 of file Mesh.hpp.

References switch_tuple().

Here is the call graph for this function:

◆ switch_tuples_unsafe() [2/2]

Tuple wmtk::Mesh::switch_tuples_unsafe ( const Tuple tuple,
const std::initializer_list< PrimitiveType > &  op_sequence 
) const

Definition at line 209 of file Mesh.cpp.

◆ top_cell_dimension()

int64_t wmtk::Mesh::top_cell_dimension ( ) const
inline

Definition at line 992 of file Mesh.hpp.

References m_top_cell_dimension.

Referenced by wmtk::components::multimesh::axis_aligned_fusion(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::multimesh::utils::MapValidator::check_parent_map_attribute_valid(), wmtk::components::TagIntersection::compute_intersection(), consolidate(), wmtk::simplex::ClosedStarIterable::Iterator::depth(), wmtk::simplex::CofacesSingleDimensionIterable::Iterator::depth(), wmtk::simplex::LinkIterable::Iterator::depth(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::depth(), wmtk::simplex::OpenStarIterable::Iterator::depth(), wmtk::simplex::TopDimensionCofacesIterable::Iterator::depth(), get_all(), get_all_id_simplex(), guarantee_at_least_attributes(), guarantee_more_attributes(), wmtk::multimesh::BoundaryChecker::is_boundary(), wmtk::simplex::LinkIterable::Iterator::Iterator(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::Iterator(), wmtk::components::multimesh::multimesh(), wmtk::simplex::ClosedStarIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkIterable::Iterator::navigate_to_link(), wmtk::simplex::LinkSingleDimensionIterable::Iterator::navigate_to_link(), wmtk::simplex::ClosedStarIterable::Iterator::operator++(), wmtk::simplex::LinkIterable::Iterator::operator++(), wmtk::simplex::OpenStarIterable::Iterator::operator++(), wmtk::components::output::output(), wmtk::multimesh::MultiMeshManager::register_child_mesh(), wmtk::components::internal::RegularSpace::regularize_tags(), reserve_more_attributes(), wmtk::components::shortest_edge_collapse::shortest_edge_collapse(), switch_tuples(), and top_simplex_type().

Here is the caller graph for this function:

◆ top_simplex_type()

PrimitiveType wmtk::Mesh::top_simplex_type ( ) const
inline

Definition at line 996 of file Mesh.hpp.

References top_cell_dimension().

Referenced by wmtk::simplex::TopDimensionCofacesIterable::Iterator::add_neighbors_to_queue(), wmtk::components::internal::adjust_sizing_field(), wmtk::components::adjust_sizing_field(), wmtk::invariants::EnvelopeInvariant::after(), wmtk::multimesh::MultiMeshManager::can_map_child(), wmtk::multimesh::MultiMeshManager::check_child_map_valid(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::multimesh::utils::MapValidator::check_parent_map_attribute_valid(), wmtk::simplex::closed_star(), wmtk::simplex::cofaces_single_dimension_tuples(), wmtk::simplex::CofacesInSimplexIterable::CofacesInSimplexIterable(), wmtk::operations::CollapseNewAttributeStrategy< T >::CollapseNewAttributeStrategy(), wmtk::multimesh::MultiMeshManager::deregister_child_mesh(), wmtk::multimesh::utils::extract_and_register_child_mesh_from_tag(), wmtk::io::MshReader::extract_element_attribute(), wmtk::simplex::faces_single_dimension(), wmtk::simplex::faces_single_dimension_tuples(), wmtk::multimesh::MultiMeshManager::find_valid_tuple(), wmtk::multimesh::MultiMeshManager::find_valid_tuple_from_split(), wmtk::components::gather_attributes(), wmtk::components::utils::get_attribute(), wmtk::components::multimesh::utils::detail::get_attribute(), wmtk::invariants::Invariant::get_top_dimension_cofaces(), is_removed(), wmtk::simplex::link(), wmtk::simplex::link_single_dimension(), wmtk::function::LocalNeighborsSumFunction::LocalNeighborsSumFunction(), wmtk::components::longest_edge_split::longest_edge_split(), wmtk::multimesh::MultiMeshManager::map_to_child_tuples(), wmtk::multimesh::MultiMeshManager::map_tuple_between_meshes(), wmtk::components::marching(), wmtk::components::multimesh::multimesh(), wmtk::simplex::neighbors_single_dimension_tuples(), wmtk::operations::EdgeSplit::new_spine_edges(), wmtk::simplex::open_star(), wmtk::simplex::ClosedStarIterable::Iterator::operator++(), wmtk::simplex::HalfClosedStarIterable::Iterator::operator++(), wmtk::components::internal::periodic_optimization(), wmtk::multimesh::MultiMeshManager::register_child_mesh(), wmtk::components::internal::RegularSpace::regularize_tags(), wmtk::operations::utils::MultiMeshEdgeSplitFunctor::run(), wmtk::multimesh::same_simplex_dimension_bijection(), wmtk::multimesh::MultiMeshManager::same_simplex_dimension_surjection(), serialize(), wmtk::components::internal::set_operation_energy_filter(), wmtk::components::set_operation_energy_filter(), wmtk::components::internal::set_operation_energy_filter_after_sizing_field(), wmtk::components::set_operation_energy_filter_after_sizing_field(), wmtk::components::shortest_edge_collapse::shortest_edge_collapse(), wmtk::operations::SplitNewAttributeStrategy< T >::SplitNewAttributeStrategy(), wmtk::simplex::ClosedStarIterable::Iterator::step_depth_3(), wmtk::simplex::OpenStarIterable::Iterator::step_depth_3(), wmtk::MeshCRTP< Derived >::switch_tuple(), switch_tuples(), TEST_CASE(), wmtk::components::to_points(), wmtk::simplex::top_dimension_cofaces(), wmtk::simplex::top_dimension_cofaces_tuples(), wmtk::multimesh::MultiMeshManager::update_map_tuple_hashes(), and wmtk::components::internal::winding_number().

Here is the call graph for this function:

◆ tuple_from_id()

virtual Tuple wmtk::Mesh::tuple_from_id ( const PrimitiveType  type,
const int64_t  gid 
) const
protectedpure virtual

internal function that returns the tuple of requested type, and has the global index cid

Parameters
gid
Returns
Tuple

Implemented in wmtk::PointMesh, wmtk::MeshCRTP< Derived >, wmtk::MeshCRTP< EdgeMesh >, wmtk::MeshCRTP< TriMesh >, wmtk::MeshCRTP< TetMesh >, wmtk::MeshCRTP< PointMesh >, wmtk::EdgeMesh, wmtk::TriMesh, and wmtk::TetMesh.

Referenced by get_all(), get_simplex(), get_tuple_from_id_simplex(), wmtk::multimesh::MultiMeshManager::same_simplex_dimension_surjection(), simplex_from_id(), and wmtk::multimesh::utils::internal::TupleTag::v_tuple().

Here is the caller graph for this function:

◆ update_child_handles()

void wmtk::Mesh::update_child_handles ( )
private

Update the child handles after clearing attributes.

Definition at line 28 of file Mesh_multimesh.cpp.

References m_multi_mesh_manager, and wmtk::multimesh::MultiMeshManager::update_child_handles().

Referenced by clear_attributes().

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

◆ update_vertex_operation_hashes()

void wmtk::Mesh::update_vertex_operation_hashes ( const Tuple vertex,
attribute::Accessor< int64_t > &  hash_accessor 
)

wrapper function to update hashes (for parent mesh *this and its child meshes) after vertex operations

Parameters
vertexoperating vertex tuple
hash_accessorhash accesor of the parent mesh (*this)

Friends And Related Function Documentation

◆ attribute::Accessor

template<typename T , typename MeshType , int Dim>
friend class attribute::Accessor
friend

Definition at line 113 of file Mesh.hpp.

◆ attribute::AccessorBase

template<typename T , int Dim>
friend class attribute::AccessorBase
friend

Definition at line 111 of file Mesh.hpp.

◆ attribute::AttributeManager

friend class attribute::AttributeManager
friend

Definition at line 118 of file Mesh.hpp.

◆ HDF5Reader

friend class HDF5Reader
friend

Definition at line 115 of file Mesh.hpp.

◆ io::ParaviewWriter

friend class io::ParaviewWriter
friend

Definition at line 114 of file Mesh.hpp.

◆ multimesh::attribute::AttributeScopeHandle

Definition at line 128 of file Mesh.hpp.

◆ multimesh::attribute::UseParentScopeRAII

Definition at line 116 of file Mesh.hpp.

◆ multimesh::MultiMeshManager

friend class multimesh::MultiMeshManager
friend

Definition at line 117 of file Mesh.hpp.

◆ multimesh::MultiMeshSimplexVisitor

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

Definition at line 120 of file Mesh.hpp.

◆ multimesh::MultiMeshSimplexVisitorExecutor

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

Definition at line 122 of file Mesh.hpp.

◆ multimesh::MultiMeshVisitor

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

Definition at line 124 of file Mesh.hpp.

◆ multimesh::MultiMeshVisitorExecutor

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

Definition at line 127 of file Mesh.hpp.

◆ multimesh::utils::internal::TupleTag

Definition at line 129 of file Mesh.hpp.

◆ multimesh::utils::MapValidator

friend class multimesh::utils::MapValidator
friend

Definition at line 125 of file Mesh.hpp.

◆ operations::EdgeCollapse

friend class operations::EdgeCollapse
friend

Definition at line 137 of file Mesh.hpp.

◆ operations::EdgeOperationData

friend class operations::EdgeOperationData
friend

Definition at line 139 of file Mesh.hpp.

◆ operations::EdgeSplit

friend class operations::EdgeSplit
friend

Definition at line 138 of file Mesh.hpp.

◆ operations::internal::CollapseAlternateFacetData

Definition at line 140 of file Mesh.hpp.

◆ operations::Operation

friend class operations::Operation
friend

Definition at line 136 of file Mesh.hpp.

◆ operations::utils::UpdateEdgeOperationMultiMeshMapFunctor

Definition at line 130 of file Mesh.hpp.

◆ simplex::IdSimplex

friend class simplex::IdSimplex
friend

Definition at line 133 of file Mesh.hpp.

◆ simplex::RawSimplex

friend class simplex::RawSimplex
friend

Definition at line 131 of file Mesh.hpp.

◆ simplex::Simplex

friend class simplex::Simplex
friend

Definition at line 132 of file Mesh.hpp.

◆ simplex::SimplexCollection

friend class simplex::SimplexCollection
friend

Definition at line 134 of file Mesh.hpp.

◆ simplex::utils::SimplexComparisons

Definition at line 135 of file Mesh.hpp.

◆ tests::DEBUG_Mesh

friend class tests::DEBUG_Mesh
friend

Definition at line 109 of file Mesh.hpp.

◆ tests::tools::TestTools

friend class tests::tools::TestTools
friend

Definition at line 108 of file Mesh.hpp.

Member Data Documentation

◆ m_attribute_manager

◆ m_cell_hash_handle

TypedAttributeHandle<int64_t> wmtk::Mesh::m_cell_hash_handle
private

Definition at line 868 of file Mesh.hpp.

Referenced by builtin_attributes(), child_hashes(), Mesh(), and operator=().

◆ m_flag_handles

std::vector<TypedAttributeHandle<char> > wmtk::Mesh::m_flag_handles
private

0x1 == true = simplex is active (simplex exists) all flag default to 0

Definition at line 864 of file Mesh.hpp.

Referenced by builtin_attributes(), child_hashes(), get_const_flag_accessor(), get_flag_accessor(), Mesh(), operator=(), and set_capacities_from_flags().

◆ m_is_free

bool wmtk::Mesh::m_is_free = false
protected

◆ m_multi_mesh_manager

multimesh::MultiMeshManager wmtk::Mesh::m_multi_mesh_manager
protected

Definition at line 841 of file Mesh.hpp.

Referenced by wmtk::multimesh::MultiMeshManager::absolute_id(), absolute_multi_mesh_id(), builtin_attributes(), can_map(), wmtk::multimesh::utils::MapValidator::check_child_map_attributes_valid(), wmtk::multimesh::utils::MapValidator::check_child_switch_homomorphism(), wmtk::multimesh::utils::MapValidator::check_parent_map_attribute_valid(), child_hashables(), deregister_child_mesh(), wmtk::multimesh::MultiMeshManager::deregister_child_mesh(), wmtk::multimesh::MultiMeshManager::get_child_mesh(), get_child_meshes(), wmtk::multimesh::MultiMeshManager::get_map_accessors(), wmtk::multimesh::MultiMeshManager::get_map_const_accessors(), wmtk::multimesh::MultiMeshManager::get_mesh(), get_multi_mesh_child_mesh(), get_multi_mesh_mesh(), get_multi_mesh_root(), wmtk::multimesh::MultiMeshManager::get_root_mesh(), has_child_mesh(), has_child_mesh_in_dimension(), wmtk::multimesh::MultiMeshManager::is_child(), is_multi_mesh_root(), lub_map(), wmtk::multimesh::MultiMeshManager::lub_map_tuples(), lub_map_tuples(), map(), wmtk::multimesh::MultiMeshManager::map_down_relative_tuples(), map_to_child(), map_to_child_tuples(), wmtk::multimesh::MultiMeshManager::map_to_child_tuples(), map_to_parent(), map_to_parent_tuple(), map_to_root(), map_to_root_tuple(), wmtk::multimesh::MultiMeshManager::map_tuple_to_parent_tuple(), wmtk::multimesh::MultiMeshManager::map_tuple_to_root_tuple(), map_tuples(), wmtk::multimesh::MultiMeshManager::map_up_to_tuples(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::operator()(), operator=(), register_child_mesh(), wmtk::multimesh::MultiMeshManager::register_child_mesh(), wmtk::multimesh::MultiMeshManager::relative_id(), serialize(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_all_hashes(), update_child_handles(), wmtk::multimesh::MultiMeshManager::update_child_handles(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_ear_replacement(), and ~Mesh().

◆ m_top_cell_dimension

int64_t wmtk::Mesh::m_top_cell_dimension = -1
protected

Definition at line 843 of file Mesh.hpp.

Referenced by operator=(), and top_cell_dimension().


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