我在理解/管理VTK中.vtu文件的大小时遇到问题。我需要为具有数百万个单元和节点的六面体网格编写CFD输出。所以,我正在研究如何提高存储效率。我从简单的测试用例开始。了解vtu文件大小
案例1:80x40x40六面体网格,每个六面体有8个点。所以,总共有128000个单元和1024000个点。我们称之为C1.vtu。
案例2:80x40x40六面体网格,只有独特的点。所以总共有128000个单元和136161个点。我们称之为C2.vtu。
我在每种情况下为每个点存储一个矢量场(速度)。我使用vtkFloatArray来处理这些数据。 C1.vtu的大小是7.5 MB,C2.vtu文件是3.0MB。
这不是我在创建C2.vtu时所期望的。由于我在案例2中只存储了大约13%(案例1)的点数,我预计C2.vtu会相应减少(至少5次)。但是,减少只有2.5倍。
我想了解内部发生了什么。此外,我很感激任何关于进一步减小文件大小的见解。
我在Ubuntu12.04上使用vtk6.2和C++。
如果你想减小尺寸写入二进制文件。 – AdityaG
我是。上面报告的文件已经是二进制格式。 –
文件大小与点数不成比例,因为单元格也需要存储。对于非结构化网格,每个单元可以是不同的类型,因此必须存储连接和单元类型信息。如果你的网格是一个结构化的网格,你可以使用vtkStructuredGrid,这应该可以帮助你节省更多的空间。 – mululu