VTK Polyhedra and Ghost Points

I’ve developed a reader that uses the VTK Polyhedra type because the base cell type in the source data fit (boundary representation cell).

Though, I seem to be having issues with ghost points. I’ve applied what I think are the correct, up to date way of dealing with ghost points, but:

  1. In the ParaView info panel it shows what the total number of points across processes, double counting ghost points.
  2. Further problems where if I do Extract Surface, what I would consider an internal face across process boundaries, are extracted – even when I turn on piece invariance
  3. In a translucent rendering, it shows the internal faces w/o doing Extract Surface filter (though, if IIRC, surface rendering uses Extract Surface behind the scenes)
  4. Trying to merge points using Clean to Grid does not merge the coincident points

What is implemented is that the points are marked as ghost on the non-owning processors, and I can verify this through the vtkGhostPoint array, marking them as DUPLICATEPOINT.

I’m at a loss of what to do, other than I’m about to chalk it up to untested VTK_POLYHEDRA cell functionality. Other than my last guess, which I haven’t tested yet, is to match the winding order of polyhedra faces on the owning and non-owning processes – which I could guess is the way that internally VTK/ParaView might be hashing face information for matching.