Wildmeshing Toolkit
wmtk::EdgeMesh::EdgeMeshOperationExecutor Class Reference

#include <EdgeMeshOperationExecutor.hpp>

Inheritance diagram for wmtk::EdgeMesh::EdgeMeshOperationExecutor:
[legend]
Collaboration diagram for wmtk::EdgeMesh::EdgeMeshOperationExecutor:
[legend]

Public Member Functions

 EdgeMeshOperationExecutor (EdgeMesh &m, const Tuple &operating_tuple)
 
void delete_simplices ()
 
void update_cell_hash ()
 
const std::array< int64_t, 2 > & incident_vids () const
 
int64_t operating_edge_id () const
 
void split_edge ()
 
void collapse_edge ()
 
Tuple split_edge_single_mesh ()
 
Tuple collapse_edge_single_mesh ()
 
std::vector< int64_t > request_simplex_indices (const PrimitiveType type, int64_t count)
 
- Public Member Functions inherited from wmtk::operations::edge_mesh::EdgeOperationData
 EdgeOperationData ()=default
 
 EdgeOperationData (EdgeOperationData &&)=default
 
EdgeOperationDataoperator= (EdgeOperationData &&)=default
 
std::array< Tuple, 2 > input_endpoints (const EdgeMesh &m) const
 
std::array< Tuple, 2 > split_output_edges (const EdgeMesh &) const
 
std::vector< simplex::Simplexnew_vertices (const Mesh &m) const
 
- Public Member Functions inherited from wmtk::operations::EdgeOperationData
 EdgeOperationData ()
 
 ~EdgeOperationData ()
 
 EdgeOperationData (EdgeOperationData &&)
 
EdgeOperationDataoperator= (EdgeOperationData &&)
 
void set_split ()
 
void set_collapse ()
 
const internal::SplitAlternateFacetDataconst_split_facet_data () const
 Returns facet data held if the edge operation was a split - throws if data does not exist. More...
 
const internal::CollapseAlternateFacetDataconst_collapse_facet_data () const
 Returns facet data held if the edge operation was a collapse- throws if data does not exist. More...
 

Static Public Member Functions

static const std::array< std::vector< int64_t >, 2 > get_split_simplices_to_delete (const Tuple &tuple, const EdgeMesh &m)
 gather all simplices that are deleted in a split More...
 
static const std::array< std::vector< int64_t >, 2 > get_collapse_simplices_to_delete (const Tuple &tuple, const EdgeMesh &m)
 gather all simplices that are deleted in a collapse More...
 

Public Attributes

std::array< attribute::Accessor< char >, 2 > flag_accessors
 
attribute::Accessor< int64_t, EdgeMeshee_accessor
 
attribute::Accessor< int64_t, EdgeMeshev_accessor
 
attribute::Accessor< int64_t, EdgeMeshve_accessor
 
EdgeMeshm_mesh
 
- Public Attributes inherited from wmtk::operations::edge_mesh::EdgeOperationData
std::array< std::vector< int64_t >, 2 > simplex_ids_to_delete
 
std::vector< int64_t > cell_ids_to_update_hash
 
std::array< int64_t, 2 > m_split_e = std::array<int64_t, 2>{{-1, -1}}
 
int64_t m_split_v
 
std::array< int64_t, 2 > m_free_split_v
 
bool m_is_self_loop = false
 
std::array< int64_t, 2 > m_spine_vids
 
std::array< int64_t, 2 > m_neighbor_eids = {{-1, -1}}
 
int64_t m_operating_edge_id
 
- Public Attributes inherited from wmtk::operations::EdgeOperationData
Tuple m_operating_tuple
 
Tuple m_output_tuple
 
std::array< int64_t, 2 > m_spine_vids
 
std::vector< std::vector< Tuple > > split_boundary_complex
 
std::vector< std::vector< std::tuple< int64_t, std::vector< Tuple > > > > global_ids_to_potential_tuples
 
std::vector< std::vector< int64_t > > global_ids_to_update
 
std::variant< std::unique_ptr< internal::SplitAlternateFacetData >, std::unique_ptr< internal::CollapseAlternateFacetData > > m_op_data
 

Private Member Functions

void update_hash_in_map (EdgeMesh &child_mesh)
 

Additional Inherited Members

- Protected Member Functions inherited from wmtk::operations::EdgeOperationData
internal::SplitAlternateFacetDatasplit_facet_data ()
 Returns facet data held if the edge operation was a split - throws if data does not exist. More...
 
internal::CollapseAlternateFacetDatacollapse_facet_data ()
 Returns facet data held if the edge operation was a collapse- throws if data does not exist. More...
 
- Static Protected Member Functions inherited from wmtk::operations::EdgeOperationData
static Tuple tuple_from_id (const Mesh &m, const PrimitiveType type, const int64_t gid)
 
static simplex::Simplex simplex_from_id (const Mesh &m, const PrimitiveType type, const int64_t gid)
 
static std::vector< int64_t > request_simplex_indices (Mesh &mesh, const PrimitiveType type, int64_t count)
 

Detailed Description

Definition at line 7 of file EdgeMeshOperationExecutor.hpp.

Constructor & Destructor Documentation

◆ EdgeMeshOperationExecutor()

wmtk::EdgeMesh::EdgeMeshOperationExecutor::EdgeMeshOperationExecutor ( EdgeMesh m,
const Tuple operating_tuple 
)

Definition at line 7 of file EdgeMeshOperationExecutor.cpp.

References wmtk::Edge, wmtk::Mesh::get_flag_accessor(), and wmtk::Vertex.

Here is the call graph for this function:

Member Function Documentation

◆ collapse_edge()

void wmtk::EdgeMesh::EdgeMeshOperationExecutor::collapse_edge ( )

Definition at line 194 of file EdgeMeshOperationExecutor.cpp.

Referenced by wmtk::operations::utils::MultiMeshEdgeCollapseFunctor::operator()().

Here is the caller graph for this function:

◆ collapse_edge_single_mesh()

Tuple wmtk::EdgeMesh::EdgeMeshOperationExecutor::collapse_edge_single_mesh ( )

Definition at line 202 of file EdgeMeshOperationExecutor.cpp.

◆ delete_simplices()

void wmtk::EdgeMesh::EdgeMeshOperationExecutor::delete_simplices ( )

◆ get_collapse_simplices_to_delete()

const std::array< std::vector< int64_t >, 2 > wmtk::EdgeMesh::EdgeMeshOperationExecutor::get_collapse_simplices_to_delete ( const Tuple tuple,
const EdgeMesh m 
)
static

gather all simplices that are deleted in a collapse

The deleted simplices are the vertex and the edge of the input tuple

Returns
std::array<std::vector<int64_t>, 2> first vector contains the vertex ids, second vector contains the edge ids

Definition at line 59 of file EdgeMeshOperationExecutor.cpp.

References wmtk::EdgeMesh::id_edge(), wmtk::EdgeMesh::id_vertex(), wmtk::Mesh::is_free(), wmtk::EdgeMesh::switch_tuple(), and wmtk::Vertex.

Here is the call graph for this function:

◆ get_split_simplices_to_delete()

const std::array< std::vector< int64_t >, 2 > wmtk::EdgeMesh::EdgeMeshOperationExecutor::get_split_simplices_to_delete ( const Tuple tuple,
const EdgeMesh m 
)
static

gather all simplices that are deleted in a split

The deleted simplex is the edge itself

Returns
std::array<std::vector<int64_t>, 2> first vector contains the vertex ids, second vector contains the edge ids

Definition at line 49 of file EdgeMeshOperationExecutor.cpp.

References wmtk::EdgeMesh::id_edge().

Here is the call graph for this function:

◆ incident_vids()

const std::array<int64_t, 2>& wmtk::EdgeMesh::EdgeMeshOperationExecutor::incident_vids ( ) const
inline

◆ operating_edge_id()

int64_t wmtk::EdgeMesh::EdgeMeshOperationExecutor::operating_edge_id ( ) const
inline

◆ request_simplex_indices()

std::vector< int64_t > wmtk::EdgeMesh::EdgeMeshOperationExecutor::request_simplex_indices ( const PrimitiveType  type,
int64_t  count 
)

Definition at line 266 of file EdgeMeshOperationExecutor.cpp.

◆ split_edge()

void wmtk::EdgeMesh::EdgeMeshOperationExecutor::split_edge ( )

Definition at line 73 of file EdgeMeshOperationExecutor.cpp.

Referenced by wmtk::operations::utils::MultiMeshEdgeSplitFunctor::operator()().

Here is the caller graph for this function:

◆ split_edge_single_mesh()

Tuple wmtk::EdgeMesh::EdgeMeshOperationExecutor::split_edge_single_mesh ( )

Definition at line 80 of file EdgeMeshOperationExecutor.cpp.

References wmtk::Mesh::request_simplex_indices(), and wmtk::Vertex.

Here is the call graph for this function:

◆ update_cell_hash()

void wmtk::EdgeMesh::EdgeMeshOperationExecutor::update_cell_hash ( )

Definition at line 46 of file EdgeMeshOperationExecutor.cpp.

◆ update_hash_in_map()

void wmtk::EdgeMesh::EdgeMeshOperationExecutor::update_hash_in_map ( EdgeMesh child_mesh)
private

Definition at line 189 of file EdgeMeshOperationExecutor.cpp.

Member Data Documentation

◆ ee_accessor

attribute::Accessor<int64_t, EdgeMesh> wmtk::EdgeMesh::EdgeMeshOperationExecutor::ee_accessor

Definition at line 15 of file EdgeMeshOperationExecutor.hpp.

◆ ev_accessor

attribute::Accessor<int64_t, EdgeMesh> wmtk::EdgeMesh::EdgeMeshOperationExecutor::ev_accessor

Definition at line 16 of file EdgeMeshOperationExecutor.hpp.

◆ flag_accessors

std::array<attribute::Accessor<char>, 2> wmtk::EdgeMesh::EdgeMeshOperationExecutor::flag_accessors

Definition at line 14 of file EdgeMeshOperationExecutor.hpp.

Referenced by delete_simplices().

◆ m_mesh

EdgeMesh& wmtk::EdgeMesh::EdgeMeshOperationExecutor::m_mesh

Definition at line 52 of file EdgeMeshOperationExecutor.hpp.

◆ ve_accessor

attribute::Accessor<int64_t, EdgeMesh> wmtk::EdgeMesh::EdgeMeshOperationExecutor::ve_accessor

Definition at line 17 of file EdgeMeshOperationExecutor.hpp.


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