Wildmeshing Toolkit
|
#include <EdgeMesh.hpp>
Classes | |
class | EdgeMeshOperationExecutor |
Public Member Functions | |
EdgeMesh () | |
~EdgeMesh () override | |
EdgeMesh (const EdgeMesh &o)=delete | |
EdgeMesh (EdgeMesh &&o)=default | |
EdgeMesh & | operator= (const EdgeMesh &o)=delete |
EdgeMesh & | operator= (EdgeMesh &&o)=default |
Tuple | switch_tuple (const Tuple &tuple, PrimitiveType type) const override |
switch the orientation of the Tuple of the given dimension More... | |
bool | is_ccw (const Tuple &tuple) const override |
TODO this needs dimension? More... | |
bool | is_boundary (PrimitiveType, const Tuple &tuple) const override |
check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not More... | |
bool | is_boundary_vertex (const Tuple &tuple) const |
void | initialize (Eigen::Ref< const RowVectors2l > E, bool is_free=false) |
void | initialize_free (int64_t count) |
void | initialize (Eigen::Ref< const RowVectors2l > EV, Eigen::Ref< const RowVectors2l > EE, Eigen::Ref< const VectorXl > VE) |
bool | is_valid (const Tuple &tuple) const final override |
check validity of tuple including its hash More... | |
bool | is_connectivity_valid () const override |
std::vector< std::vector< TypedAttributeHandle< int64_t > > > | connectivity_attributes () const override |
Returns a vector of vectors of attribute handles. More... | |
Tuple | switch_vertex (const Tuple &tuple) const |
Tuple | switch_edge (const Tuple &tuple) const |
std::vector< Tuple > | orient_vertices (const Tuple &tuple) const override |
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... | |
Public Member Functions inherited from wmtk::MeshCRTP< EdgeMesh > | |
EdgeMesh & | derived () |
CRTP utility to extract the derived type of this. More... | |
const EdgeMesh & | derived () const |
CRTP utility to extract the derived type of this with constnesss. More... | |
Tuple | switch_tuple (const Tuple &tuple, PrimitiveType type) const override |
switch the orientation of the Tuple of the given dimension More... | |
Tuple | switch_tuples (const Tuple &tuple, const ContainerType &op_sequence) const |
Performs a sequence of switch_tuple operations in the order specified in op_sequence. More... | |
Tuple | switch_tuples (const Tuple &tuple, const std::initializer_list< PrimitiveType > &op_sequence) const |
annoying initializer list prototype to catch switch_tuples(t, {PV,PE}) More... | |
bool | is_ccw (const Tuple &tuple) const override |
returns if a tuple is counterclockwise or not More... | |
bool | is_boundary (PrimitiveType pt, const Tuple &tuple) const override |
returns if a simplex is on the boundary of hte mesh. For anything but dimension - 1 this checks if this is the face of any boundary dimension-1 facet More... | |
attribute::Accessor< T, EdgeMesh, Dim > | create_accessor (const TypedAttributeHandle< T > &handle) |
constructs an accessor that is aware of the derived mesh's type More... | |
attribute::Accessor< T, EdgeMesh, Dim > | create_accessor (const attribute::MeshAttributeHandle &handle) |
constructs a accessor that is aware of the derived mesh's type More... | |
const attribute::Accessor< T, EdgeMesh, Dim > | create_const_accessor (const attribute::TypedAttributeHandle< T > &handle) const |
constructs a const accessor that is aware of the derived mesh's type More... | |
const attribute::Accessor< T, EdgeMesh, Dim > | create_const_accessor (const attribute::MeshAttributeHandle &handle) const |
constructs a const accessor that is aware of the derived mesh's type More... | |
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 | |
Public Member Functions inherited from wmtk::Mesh | |
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 | |
Mesh & | operator= (const Mesh &other)=delete |
Mesh & | operator= (Mesh &&other) |
virtual | ~Mesh () |
void | serialize (MeshWriter &writer, const Mesh *local_root=nullptr) const |
std::vector< Tuple > | get_all (PrimitiveType type) const |
Generate a vector of Tuples from global vertex/edge/triangle/tetrahedron index. More... | |
std::vector< simplex::IdSimplex > | get_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... | |
std::vector< attribute::MeshAttributeHandle::HandleVariant > | builtin_attributes () const |
std::vector< attribute::MeshAttributeHandle::HandleVariant > | custom_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::FlagAccessor< Mesh > | get_flag_accessor (PrimitiveType type) const |
const attribute::FlagAccessor< Mesh > | get_const_flag_accessor (PrimitiveType type) const |
bool | operator== (const Mesh &other) const |
void | assert_capacity_valid () const |
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... | |
bool | is_boundary (const simplex::Simplex &tuple) const |
check if a simplex 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 |
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... | |
Mesh & | get_multi_mesh_root () |
returns a reference to the root of a multimesh tree More... | |
const Mesh & | get_multi_mesh_root () const |
returns a const reference to the root of a multimesh tree More... | |
Mesh & | get_multi_mesh_mesh (const std::vector< int64_t > &absolute_id) |
const Mesh & | get_multi_mesh_mesh (const std::vector< int64_t > &absolute_id) const |
Mesh & | get_multi_mesh_child_mesh (const std::vector< int64_t > &relative_id) |
const Mesh & | get_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::Simplex > | map (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to any other mesh More... | |
std::vector< simplex::Simplex > | map (const Mesh &other_mesh, const std::vector< simplex::Simplex > &my_simplices) const |
std::vector< simplex::Simplex > | 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 More... | |
std::vector< simplex::Simplex > | lub_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::Simplex > | 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 More... | |
std::vector< Tuple > | map_tuples (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to any other mesh More... | |
std::vector< Tuple > | map_tuples (const Mesh &other_mesh, PrimitiveType pt, const std::vector< Tuple > &my_simplices) const |
std::vector< Tuple > | 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 More... | |
std::vector< Tuple > | lub_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< Tuple > | 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 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 &&) | |
Hashable & | operator= (const Hashable &) |
Hashable & | operator= (Hashable &&) |
virtual | ~Hashable () |
virtual std::size_t | hash () const |
Protected Member Functions | |
int64_t | id (const Tuple &tuple, PrimitiveType type) const |
int64_t | id_vertex (const Tuple &tuple) const |
int64_t | id_edge (const Tuple &tuple) const |
Tuple | tuple_from_id (const PrimitiveType type, const int64_t gid) const override |
internal function that returns the tuple of requested type, and has the global index cid More... | |
Tuple | tuple_from_global_ids (int64_t eid, int64_t vid) const |
Tuple | vertex_tuple_from_id (int64_t id) const |
Tuple | edge_tuple_from_id (int64_t id) const |
Protected Member Functions inherited from wmtk::MeshCRTP< EdgeMesh > | |
int64_t | id (const Tuple &tuple, PrimitiveType type) const |
Returns the id of a simplex encoded in a tuple. More... | |
int64_t | id (const simplex::Simplex &s) const final override |
variant of id that can cache internally held values More... | |
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... | |
int64_t | id_virtual (const Tuple &tuple, PrimitiveType type) const final override |
internal utility for overriding the mesh class's id function without having the final override block the derived class's override (we can't have Mesh::id be virtual, MeshCRTP<Derived>::id final override, and TriMesh::id. More... | |
Tuple | tuple_from_id (const PrimitiveType type, const int64_t gid) const override |
internal function that returns the tuple of requested type, and has the global index cid More... | |
Protected Member Functions inherited from wmtk::Mesh | |
attribute::FlagAccessor | get_flag_accessor (PrimitiveType type) |
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 |
Protected Attributes | |
attribute::TypedAttributeHandle< int64_t > | m_ve_handle |
attribute::TypedAttributeHandle< int64_t > | m_ev_handle |
attribute::TypedAttributeHandle< int64_t > | m_ee_handle |
Protected Attributes inherited from wmtk::Mesh | |
attribute::AttributeManager | m_attribute_manager |
multimesh::MultiMeshManager | m_multi_mesh_manager |
int64_t | m_top_cell_dimension = -1 |
bool | m_is_free = false |
Friends | |
class | MeshCRTP< EdgeMesh > |
template<typename U , typename MeshType , int Dim> | |
class | attribute::Accessor |
class | operations::utils::MultiMeshEdgeSplitFunctor |
class | operations::utils::MultiMeshEdgeCollapseFunctor |
class | operations::utils::UpdateEdgeOperationMultiMeshMapFunctor |
Additional Inherited Members | |
Static Protected Member Functions inherited from wmtk::Mesh | |
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) |
Definition at line 15 of file EdgeMesh.hpp.
wmtk::EdgeMesh::EdgeMesh | ( | ) |
Definition at line 9 of file EdgeMesh.cpp.
References wmtk::Edge, and wmtk::Vertex.
|
overridedefault |
|
delete |
|
default |
|
overridevirtual |
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].
Implements wmtk::Mesh.
Definition at line 282 of file EdgeMesh.cpp.
References m_ee_handle, m_ev_handle, and m_ve_handle.
|
protected |
Definition at line 188 of file EdgeMesh.cpp.
References is_valid().
Referenced by tuple_from_id().
|
inlineprotected |
Definition at line 98 of file EdgeMesh.hpp.
References wmtk::attribute::Accessor< T, MeshType, Dim >::const_vector_attribute(), wmtk::Edge, m_ev_handle, wmtk::Tuple::m_global_cid, wmtk::Tuple::m_local_vid, wmtk::Tetrahedron, wmtk::Triangle, and wmtk::Vertex.
|
inlineprotected |
Definition at line 64 of file EdgeMesh.hpp.
References wmtk::Edge, and wmtk::MeshCRTP< EdgeMesh >::id().
Referenced by wmtk::EdgeMesh::EdgeMeshOperationExecutor::get_collapse_simplices_to_delete(), and wmtk::EdgeMesh::EdgeMeshOperationExecutor::get_split_simplices_to_delete().
|
inlineprotected |
Definition at line 63 of file EdgeMesh.hpp.
References wmtk::MeshCRTP< EdgeMesh >::id(), and wmtk::Vertex.
Referenced by wmtk::EdgeMesh::EdgeMeshOperationExecutor::get_collapse_simplices_to_delete().
void wmtk::EdgeMesh::initialize | ( | Eigen::Ref< const RowVectors2l > | E, |
bool | is_free = false |
||
) |
Definition at line 132 of file EdgeMesh.cpp.
References wmtk::edgemesh_topology_initialization(), wmtk::Mesh::is_free(), and wmtk::Mesh::m_is_free.
Referenced by wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), and initialize_free().
void wmtk::EdgeMesh::initialize | ( | Eigen::Ref< const RowVectors2l > | EV, |
Eigen::Ref< const RowVectors2l > | EE, | ||
Eigen::Ref< const VectorXl > | VE | ||
) |
Definition at line 98 of file EdgeMesh.cpp.
References wmtk::attribute::IndexFlagAccessor< MeshType >::activate(), wmtk::Mesh::capacity(), wmtk::Edge, wmtk::Mesh::get_flag_accessor(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), wmtk::attribute::FlagAccessor< MeshType >::index_access(), m_ee_handle, m_ev_handle, m_ve_handle, wmtk::attribute::CachingAccessor< T, Dim >::scalar_attribute(), wmtk::Mesh::set_capacities(), wmtk::attribute::CachingAccessor< T, Dim >::vector_attribute(), and wmtk::Vertex.
void wmtk::EdgeMesh::initialize_free | ( | int64_t | count | ) |
Definition at line 141 of file EdgeMesh.cpp.
References initialize().
Referenced by wmtk::components::internal::MultiMeshFromTag::create_substructure_soup().
bool wmtk::Mesh::is_boundary |
|
overridevirtual |
check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not
simplex |
Implements wmtk::Mesh.
Definition at line 17 of file EdgeMesh.cpp.
References wmtk::Edge, is_boundary_vertex(), wmtk::Tetrahedron, wmtk::Triangle, and wmtk::Vertex.
virtual bool wmtk::Mesh::is_boundary |
check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not
simplex |
bool wmtk::EdgeMesh::is_boundary_vertex | ( | const Tuple & | tuple | ) | const |
Definition at line 31 of file EdgeMesh.cpp.
References wmtk::attribute::Accessor< T, MeshType, Dim >::const_vector_attribute(), is_valid(), m_ee_handle, and wmtk::Tuple::m_local_vid.
Referenced by is_boundary(), wmtk::simplex::link_condition(), and wmtk::simplex::top_dimension_cofaces_tuples().
|
overridevirtual |
TODO this needs dimension?
m |
Implements wmtk::Mesh.
Definition at line 92 of file EdgeMesh.cpp.
References is_valid(), and wmtk::Tuple::m_local_vid.
Referenced by switch_tuple().
|
overridevirtual |
Implements wmtk::Mesh.
Definition at line 236 of file EdgeMesh.cpp.
References wmtk::Mesh::capacity(), wmtk::attribute::CachingAccessor< T, Dim >::const_scalar_attribute(), wmtk::attribute::CachingAccessor< T, Dim >::const_vector_attribute(), wmtk::Edge, wmtk::Mesh::get_flag_accessor(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), wmtk::attribute::FlagAccessor< MeshType >::index_access(), wmtk::attribute::IndexFlagAccessor< MeshType >::is_active(), wmtk::logger(), m_ee_handle, m_ev_handle, m_ve_handle, and wmtk::Vertex.
Referenced by wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), and is_valid().
|
finaloverridevirtual |
check validity of tuple including its hash
tuple | the tuple to be checked |
type | only the top cell dimension, other validity follows with assumption of manifoldness. 2->triangle, 3->tetrahedron |
Reimplemented from wmtk::Mesh.
Definition at line 214 of file EdgeMesh.cpp.
References is_connectivity_valid(), wmtk::Mesh::is_valid(), wmtk::logger(), wmtk::Tuple::m_global_cid, and wmtk::Tuple::m_local_vid.
Referenced by edge_tuple_from_id(), is_boundary_vertex(), is_ccw(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::operator()(), and switch_tuple().
Implements wmtk::Mesh.
Definition at line 293 of file EdgeMesh.cpp.
References wmtk::Tuple::m_global_cid.
Definition at line 94 of file EdgeMesh.hpp.
References wmtk::Edge, and switch_tuple().
Referenced by wmtk::simplex::top_dimension_cofaces_tuples().
|
overridevirtual |
switch the orientation of the Tuple of the given dimension
m | |
type | d-0 -> switch vertex d-1 -> switch edge d-2 -> switch face d-3 -> switch tetrahedron |
Implements wmtk::Mesh.
Definition at line 38 of file EdgeMesh.cpp.
References wmtk::attribute::Accessor< T, MeshType, Dim >::const_vector_attribute(), wmtk::attribute::CachingAccessor< T, Dim >::const_vector_attribute(), wmtk::Edge, wmtk::MeshCRTP< EdgeMesh >::id(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), is_ccw(), is_valid(), m_ee_handle, m_ev_handle, wmtk::Tuple::m_global_cid, wmtk::Tuple::m_local_eid, wmtk::Tuple::m_local_fid, wmtk::Tuple::m_local_vid, wmtk::Tetrahedron, wmtk::Triangle, and wmtk::Vertex.
Referenced by wmtk::SimplexInversionInvariant< T >::after(), wmtk::EdgeMesh::EdgeMeshOperationExecutor::get_collapse_simplices_to_delete(), wmtk::operations::edge_mesh::EdgeOperationData::input_endpoints(), wmtk::simplex::link_condition(), switch_edge(), and switch_vertex().
Definition at line 90 of file EdgeMesh.hpp.
References switch_tuple(), and wmtk::Vertex.
|
protected |
Definition at line 196 of file EdgeMesh.cpp.
References wmtk::attribute::CachingAccessor< T, Dim >::const_vector_attribute(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), and m_ev_handle.
Referenced by wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::operator()().
|
overrideprotectedvirtual |
internal function that returns the tuple of requested type, and has the global index cid
gid |
Implements wmtk::Mesh.
Definition at line 148 of file EdgeMesh.cpp.
References wmtk::Edge, edge_tuple_from_id(), wmtk::Tetrahedron, wmtk::Triangle, wmtk::Vertex, and vertex_tuple_from_id().
|
protected |
Definition at line 171 of file EdgeMesh.cpp.
References wmtk::attribute::CachingAccessor< T, Dim >::const_scalar_attribute(), wmtk::attribute::CachingAccessor< T, Dim >::const_vector_attribute(), wmtk::MeshCRTP< EdgeMesh >::id(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), m_ev_handle, and m_ve_handle.
Referenced by tuple_from_id().
|
friend |
Definition at line 20 of file EdgeMesh.hpp.
Definition at line 98 of file EdgeMesh.hpp.
|
friend |
Definition at line 22 of file EdgeMesh.hpp.
|
friend |
Definition at line 21 of file EdgeMesh.hpp.
|
friend |
Definition at line 23 of file EdgeMesh.hpp.
|
protected |
Definition at line 81 of file EdgeMesh.hpp.
Referenced by connectivity_attributes(), initialize(), is_boundary_vertex(), is_connectivity_valid(), and switch_tuple().
|
protected |
Definition at line 80 of file EdgeMesh.hpp.
Referenced by connectivity_attributes(), id(), initialize(), is_connectivity_valid(), switch_tuple(), tuple_from_global_ids(), and vertex_tuple_from_id().
|
protected |
Definition at line 78 of file EdgeMesh.hpp.
Referenced by connectivity_attributes(), initialize(), is_connectivity_valid(), and vertex_tuple_from_id().