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

时间:2018-06-15 07:47:06

标签: grid mesh vtk

我有将现有网格转换为vtk传统格式的探针。

VTK-Unstructured Grids具有以下结构:

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始终对应于之前块中指定的点的顺序。

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

我真的很感谢你的帮助! TIA。

1 个答案:

答案 0 :(得分:1)

旧版VTK格式不支持此功能。 您必须编写一个脚本,相应地重新排序POINTS部分中的点。

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

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