VertexMerger
Processor that merges duplicate vertices within a tolerance.
template <typename T> class mesh::process::VertexMerger
| Inherits | mesh::process::Processor |
In the namespace mesh::process. Declared in src/libs/libmesh/mesh/process/VertexMerger.hpp.
Detailed description
Vertices that are within the specified tolerance of each other are merged into a single vertex. Element connectivity is updated to reference the merged vertices.
A Tri3 whose merge gives two equal indices bounds nothing, and its edges would pair with real neighbours: the weld removes it, with its element scalars, vectors and set entries, and counts it (collapsedTriangles()). The weld owns this because only it knows which distinct positions become one vertex; the export's DegenerateFilter drops only what no weld can use (construct-field-defects §CFD-D-10 item 4). Other element types keep their indices: the weld does not decide what a collapsed quad or tetrahedron becomes.
Uses spatial hashing for O(n) average case performance: a flat open-addressing table of cells, each a linked list of its representatives in the order they were made.
Template parameter T: Scalar type for mesh coordinates.