ENH: improved point-cell and cell-point topology methods (#2715)

Merged Mark OLESEN requested to merge primitiveMeshOptimization into develop
  • for OpenFOAM-v2212 and earlier cellPoints() were constructed from pointCells(), but this is slower than constructing pointCells() from cellPoints().

    Some of the slowness is due to allocations associated with cells::labels(), but a large amount of slowness is the duplicate point avoidance. Since this is being done for many points/cells at once, using a bitSet for managing the duplicates amortizes quickly

  • now construct cellPoints() from cached pointCells(), otherwise construct manually (using bitSet/DynamicList for bookkeeping)

  • construct pointCells() from cached cellPoints(), or cached pointFaces(), otherwise manually.

Code Contribution: Alon Zameret

Co-authored-by: Mark Olesen

Merge request reports