Paraview 的 Xdmf : 来自 DataItem 的 select 个元素

Xdmf for Paraview : select elements from a DataItem

我正在尝试为 Paraview 使用 xdmf 文件从 hdf5 文件中获取数据。 我在包含 2 个值的数组中有一个变量,我需要使用第一个。为此,我尝试使用一个函数,但不知道如何使用它。 所以如果我这样做:

<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
    <DataItem Format="HDF" Precision="8" Dimensions="2">
        test.h5:/variables/rho_cell
    </DataItem>
</Attribute>

Paraview 发出警告,我有一个包含 2 个值的数组,而我只有一个单元格(此警告是预期的)。 所以我添加了一个这样的函数:

<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
    <DataItem ItemType="Function" Function="[=12=][1:2]" Dimensions="1">
        <DataItem Format="HDF" Precision="8" Dimensions="2">
            test.h5:/variables/rho_cell
        </DataItem>
    </DataItem>
</Attribute>

然后 Paraview 崩溃(没有错误消息)。 老实说,我什至不确定数组索引是否像 python 中那样(从 0 开始,0:1 仅表示第一个元素)...我找不到任何帮助.我几乎尝试了任何参数组合,但似乎没有任何效果。

为了确保我的函数语法没有完全错误,我已经尝试过了:

<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
    <DataItem ItemType="Function" Function="[=13=] + 1.5" Dimensions="2">
        <DataItem Format="HDF" Precision="8" Dimensions="2">
            test.h5:/variables/rho_cell
        </DataItem>
    </DataItem>
</Attribute>

并且有效,但显然仍然给出有关单元格数量的警告。

您是否尝试过使用坐标数据项?

<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
    <DataItem ItemType="Coordinates" Dimensions="2" Type="Coordinates">
        <DataItem Format="XML" Dimensions="1">
            0
        </DataItem>
        <DataItem Format="HDF" Precision="8" Dimensions="2">
            test.h5:/variables/rho_cell
        </DataItem>
    </DataItem>
</Attribute>

我发现您可以使用 HyperSlab(而不是函数)指定数组的一部分。 这是它的代码:

<Attribute Name="ro" Center="Cell" AttributeType="Scalar">
    <DataItem ItemType="HyperSlab" Dimensions="1" Type="HyperSlab">
        <DataItem Dimensions="3 1" Format="XML">
            0
            1
            1
        </DataItem>
        <DataItem Format="HDF" Precision="8" Dimensions="2">
            test.h5:variables/rho_cell
        </DataItem>
    </DataItem>
</Attribute>