17 const int64_t tag_value);
This class generates a multi-mesh from a mesh where the substructure is represented by a tag.
void build_adjacency_matrix()
Create the adjacency (stored as attribute) of the substructure.
void remove_soup()
Remove the substructure soup from the multimesh.
const PrimitiveType m_tag_ptype
std::shared_ptr< Mesh > substructure_soup() const
Returns a pointer to the substructure soup.
std::shared_ptr< Mesh > substructure() const
Returns a pointer to the manifold substructure mesh.
Eigen::MatrixX< int64_t > get_new_id_matrix(const PrimitiveType ptype) const
const attribute::Accessor< int64_t > m_tag_acc
std::vector< Tuple > get_connected_region(const Tuple &t, const PrimitiveType ptype)
Get tuples with different global_cid that all represent simplex(t_in, ptype) and are in the same tag-...
std::shared_ptr< Mesh > m_substructure_ptr
std::shared_ptr< Mesh > m_soup_ptr
bool is_root_simplex_manifold(const simplex::Simplex &s) const
std::map< PrimitiveType, VectorXl > m_new_top_coface_vectors
void compute_substructure_mesh()
Create a manifold mesh from the substructure.
std::map< PrimitiveType, attribute::MeshAttributeHandle > m_new_id_handles
const int64_t m_tag_value
Eigen::MatrixX< int64_t > adjacency_matrix() const
MultiMeshFromTag(Mesh &mesh, const attribute::MeshAttributeHandle &tag_handle, const int64_t tag_value)
void create_substructure_soup()
Create a multimesh where the child-mesh is just a soup (no connectivity) of m_mesh.
bool is_substructure_simplex_manifold(const simplex::Simplex &s) const
VectorXl get_new_top_coface_vector(const PrimitiveType ptype) const
std::map< PrimitiveType, Eigen::MatrixX< int64_t > > m_new_id_matrices
attribute::MeshAttributeHandle m_adjacency_handle
Eigen::MatrixX< int64_t > m_adjacency_matrix
void compute_substructure_ids()
Compute the ids of the manifold substructure.
VectorX< int64_t > VectorXl