修改关联pvtu文件的vtu后,如何保存为pvtu以利用并行处理?
用PyVista将处理后的数据保存为PVTU格式(保留并行处理能力)
完全可以,只要在处理过程中保留原有的分区结构,就能将结果保存为PVTU格式,后续可直接利用并行处理能力。具体操作如下:
核心逻辑
PVTU本质是多个VTU分区文件的索引容器,记录着各分区VTU的路径与结构信息。因此处理时无需合并所有VTU为单个文件,只需逐个处理原PVTU关联的每个VTU分区,再将处理后的分区重新组织为MultiBlock结构并保存为PVTU即可。
实现代码示例
import pyvista as pv # 读取原PVTU文件,自动加载所有关联的VTU分区数据 multi_block = pv.read("your_input.pvtu") # 遍历每个VTU分区执行后处理操作 for partition in multi_block: # 示例1:删除指定点数据变量 if "var_to_remove" in partition.point_data: partition.point_data.remove("var_to_remove") # 示例2:添加新的点数据变量(这里用点X坐标生成示例数据,可替换为你的业务逻辑) new_point_data = partition.points[:, 0] * 1.5 partition.point_data["new_var"] = new_point_data # 保存为新的PVTU文件 # 执行后会自动生成output.pvtu索引文件,以及对应的output_0.vtu、output_1.vtu等分区文件 multi_block.save("your_output.pvtu")
注意事项
- 处理分区时尽量不要修改拓扑结构(如点数量、单元数量),避免PVTU索引与VTU内容不匹配
- 若需调整分区数量,可对MultiBlock结构进行拆分/合并,但需保证最终结构符合并行处理的分区逻辑
- PyVista会自动处理PVTU与VTU文件的关联命名,无需手动指定每个分区VTU的文件名
内容的提问来源于stack exchange,提问作者rnp
相关产品推荐
相关产品推荐

