vtkGeometryFilter: Reduce Memory Usage by 5x using vtkStaticFaceHashLinksTemplate and Improve performance
vtkGeometryFilter: Reduce Memory Usage by 5x using vtkStaticFaceHashMapTemplate and Improve performance
vtkGeometryFilter
now uses 5x less memory and it does not need synchronization using vtkStaticFaceHashMapTemplate
.
Additionally, vtkGeometryFilter
has better performance when dealing with 32-bit cell arrays, and it has faster
Initialize functions when dealing with Triangle and Quad Faces. Moreover, vtkDataSet
now has a function to get the
number of faces of a cell. Lastly, the performance of vtkUnstructuredGrid
's IsCellBoundary/GetCellNeighbors
has been improved by reverting to an older better version, and accessing the cell array efficiently using the
Visit functionality to avoid unnecessary copies.
Add vtkStaticFaceHashLinksTemplate
vtkStaticFaceHashLinksTemplate
can help group faces of an unstructured grid with linear cells that have the same hash,
i.e. minimum point id. Once the faces are grouped by their hash, each group of faces in a hash can be evaluated to
eliminate the duplicates. This way in the end you will only have external faces.
Memory and Performance Evaluation: https://docs.google.com/spreadsheets/d/1YPvi6EATba7p35uVoF7sRPB00kBC1j3weYSSjJ5mGnA/edit?usp=sharing
This MR resolves issue #18459 (closed), #18823 (closed).
cc: @aron.helser, @seanm, @cory.quammen, @bob.obara @will.schroeder