Absent nodes in 3D Mesh

I have a 3D structured mesh. The XYZ vertices describe a slightly deformed rectangular prism. (K and Z are parallel. The XY plane at any constant K value may undulate in Z) Here is a sample depicting the XYZ outline and one K-layer of the mesh.


The user in the host application can export a subset of the whole grid, or rotate the IJK space so the axes may be unaligned with the XYZ axes. In these cases, portions of the 3D mesh are incomplete. The host application fills these absent regions with NaN for coordinates and for properties.

The data is loaded into paraview using HDF5 and XDMF (using TopologyType=“3DSMesh”). Unfortunately, there is an anomaly in the visualization. At the border between the populated data and the absent data, the the cell faces in the IK and JK planes are not visible. If the 3DMesh were populated fully, these would be interior faces, but in this case, they should be visible.

Slice and Subset operations work fine. The visualization anomaly is evident in both ParaView and VisIt. I can convert the structured mesh to an unstructured grid, (applying the SHRINK filter @ 100% does this) but the interactive performance of the unstructured grid is not on par with the structured mesh.

Instead of using NaN coordinates, is there a better way to represent absent nodes in a 3D Structured Mesh?

Sample mesh, viewed from above. The I & J axes of the mesh are not aligned with the X & Y axes.

Sample mesh, viewed from above. Note the four corners of the range are absent.

Sample mesh, viewed from the north. The top and bottom K faces are visible, but the faces in the IK and JK planes are invisible.

Not a great idea, you will loose connectivity, use AppendDataSet instead, with a single input.

Instead of using NaN coordinates, is there a better way to represent absent nodes in a 3D Structured Mesh?

Yes, blank cells. https://blog.kitware.com/ghost-and-blanking-visibility-changes/

Thank you, Mathieu for the quick reply.
I agree with you regarding the use of SHRINK - I prefer to keep the data in a structured grid in order to retain performance. Is there a way to cause the XDMF Reader to set vtkDataSetAttributes::HIDDENCELL bit at the corresponding cell id in the vtkGhostType array as it loads the data?

I’am not an expert with XDMF but it doesn’t looks like it. You could post-process the data with a dedicated filter in order to set the cells to be blanked.