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.

In this section