.vtu 文件中的常量值

Constant values in .vtu files

我正在用 Fortran 编写 .vtu 文件。我使用的格式如下:

<?xml version="1.0"?>
<VTKFile type= "UnstructuredGrid"  version= "0.1"  byte_order= "BigEndian">                         
 <UnstructuredGrid>                                                                                 
  <Piece NumberOfPoints="X" NumberOfCells="X">                                                
   <PointData Scalars="Pressure" Vectors="Velocity">                                                
    <DataArray type="Float32" Name="Pressures" format="ascii">
     etc.....

上面的代码中有X点。目前,如果有 DataArray,它必须包含 X 个值。

我的问题是 - 假设您有一个 DataArray,其中每个点都具有相同的值(即 1)。有没有一种方法可以写入文件,以便将值写入一次但应用于每个点?我在文档中找不到任何建议这是可能的。在我看来,每次写入文件时将这个值写出 X 次是一种内存和计算的浪费,特别是如果 X 是一个非常大的数字。

或者 memory/cost 要求可以忽略不计?

无法使用点或元胞数据数组执行此操作。

您可以改为编写具有单个常量值的字段数据数组。字段数据数组不限于数据集中 points/cells 的数量 - 将它们视为存储有关 VTK 数据对象的元数据的一种方式。

不过,这完全取决于您想用它做什么。你需要用它给几何着色吗? VTK 中的最新更改使按字段数据着色成为可能。