VTK - 非结构化网格:更改 points/Labeling 点的顺序

VTK - Unstructured Grid: Change order of points/Labeling Points

我有一些问题将现有网格从 vtk 传统格式转换为 vtk 旧格式。

VTK-非结构化网格具有以下结构:

DATASET UNSTRUCTURED_ GRID 
POINTS n dataType 
p0x p0y p0z 
p1x p1y p1z 

... 
p (n-1) x p (n-1) y p (n-1) z 

CELLS n size 
numPoints0 ,i, j, k, l,... 
numPoints1 ,i, j, k, l,... 
numPoints2 ,i, j, k, l,... 
... 
numPointsn-1 ,i, j, k, l,... 
Simple Legacy Formats 5 

CELL_ TYPES n 
...

这些单元格由它们的连接点 ID 和它们的类型指定。 似乎点 ID 总是对应于之前块中指定的点的顺序。

有没有办法以任意顺序标记点? 例如,点块中的第一个条目应对应于索引 3 而不是索引 0。

非常感谢您的帮助! TIA.

旧版 VTK 格式不支持。 您将必须编写一个脚本,以相应地重新排列 POINTS 部分中的点数。

此外,即使在更灵活的基于 XML 的 VTU 格式中,我也看不到这种功能。所以,我建议:

  1. 编写一个脚本,该脚本将按照 CELLS 部分中连接引用的方式对 [0, N-1] 中的点重新排序。
  2. 反之亦然,编写一个脚本,相应地对 CELLS 部分中的连接信息重新编号。
  3. (optional) 考虑切换到基于 XML 的格式,因为它们更灵活,具有更好的 IO 支持库(恕我直言),并且允许用于适当的并行 IO、随机访问和便携式数据压缩。