我是 XML 新手,我尝试使用 pvtr 格式来组合多个 vtr 文件,以使用 Paraview 输出我的数据。这些格式的行为在录像机中非常奇怪。当我打开 pvtr 时,它在 Paraview 中不显示任何图像。但是当我只尝试单个核心并且只有 1 个 vtr 文件时,vtr 和 pvtr 都可以工作。
这是我尝试 MPI np=2 时的输出: 输出_rank0.vtr
<?xml version="1.0"?>
<VTKFile type="RectilinearGrid" version="0.1" byte_order="LittleEndian">
<RectilinearGrid WholeExtent="0 8 0 16 0 0">
<Piece Extent="0 8 0 8 0 0">
<PointData Scalars="scalars">
<DataArray type="Float64" Name="x" format="ascii">
0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 </DataArray>
<DataArray type="Float64" Name="y" format="ascii">
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1250 0.1250 0.1250 0.1250 0.1250 0.1250 0.1250 0.1250 0.1250 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.3750 0.3750 0.3750 0.3750 0.3750 0.3750 0.3750 0.3750 0.3750 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.6250 0.6250 0.6250 0.6250 0.6250 0.6250 0.6250 0.6250 0.6250 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.7500 0.8750 0.8750 0.8750 0.8750 0.8750 0.8750 0.8750 0.8750 0.8750 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 </DataArray>
<DataArray type="Float64" Name="rho" format="ascii">
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5000 1.0000 1.0000 1.0000 0.5000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0000 1.0000 1.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.5000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 </DataArray>
</PointData>
<CellData>
</CellData>
<Coordinates>
<DataArray type="Float64" Name="X_COORDINATES" format="ascii">
0.00 0.12 0.25 0.38 0.50 0.62 0.75 0.88 1.00 </DataArray>
<DataArray type="Float64" Name="Y_COORDINATES" format="ascii">
0.00 0.12 0.25 0.38 0.50 0.62 0.75 0.88 1.00 </DataArray>
<DataArray type="Float64" Name="Z_COORDINATES" format="ascii">
0.00 </DataArray>
</Coordinates>
</Piece>
</RectilinearGrid>
</VTKFile>
output_rank1.vtr
<?xml version="1.0"?>
<VTKFile type="RectilinearGrid" version="0.1" byte_order="LittleEndian">
<RectilinearGrid WholeExtent="0 8 0 16 0 0">
<Piece Extent="0 8 9 16 0 0">
<PointData Scalars="scalars">
<DataArray type="Float64" Name="x" format="ascii">
0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 0.0000 0.1250 0.2500 0.3750 0.5000 0.6250 0.7500 0.8750 1.0000 </DataArray>
<DataArray type="Float64" Name="y" format="ascii">
1.1250 1.1250 1.1250 1.1250 1.1250 1.1250 1.1250 1.1250 1.1250 1.2500 1.2500 1.2500 1.2500 1.2500 1.2500 1.2500 1.2500 1.2500 1.3750 1.3750 1.3750 1.3750 1.3750 1.3750 1.3750 1.3750 1.3750 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.5000 1.6250 1.6250 1.6250 1.6250 1.6250 1.6250 1.6250 1.6250 1.6250 1.7500 1.7500 1.7500 1.7500 1.7500 1.7500 1.7500 1.7500 1.7500 1.8750 1.8750 1.8750 1.8750 1.8750 1.8750 1.8750 1.8750 1.8750 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 2.0000 </DataArray>
<DataArray type="Float64" Name="rho" format="ascii">
0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 </DataArray>
</PointData>
<CellData>
</CellData>
<Coordinates>
<DataArray type="Float64" Name="X_COORDINATES" format="ascii">
0.00 0.12 0.25 0.38 0.50 0.62 0.75 0.88 1.00 </DataArray>
<DataArray type="Float64" Name="Y_COORDINATES" format="ascii">
1.12 1.25 1.38 1.50 1.62 1.75 1.88 2.00 </DataArray>
<DataArray type="Float64" Name="Z_COORDINATES" format="ascii">
0.00 </DataArray>
</Coordinates>
</Piece>
</RectilinearGrid>
</VTKFile>
输出.pvtr
<?xml version="1.0"?>
<VTKFile type="PRectilinearGrid" version="0.1" byte_order="LittleEndian">
<PRectilinearGrid WholeExtent="0 8 0 16 0 0">
<PPointData Scalars="scalars">
<PDataArray type="Float64" Name="x" format="ascii" />
<PDataArray type="Float64" Name="y" format="ascii" />
<PDataArray type="Float64" Name="rho" format="ascii" />
</PPointData>
<PCellData>
</PCellData>
<PCoordinates>
<PDataArray type="Float64" Name="X_COORDINATES" />
<PDataArray type="Float64" Name="Y_COORDINATES" />
<PDataArray type="Float64" Name="Z_COORDINATES" />
</PCoordinates>
<Piece Extent="0 8 0 8 0 0" Source="output_rank0.vtr"/>
<Piece Extent="0 8 9 16 0 0" Source="output_rank1.vtr"/>
</PRectilinearGrid>
</VTKFile>
paraview 似乎无法读取 y 方向 8-9 之间的数据 来自paraview的错误:
(12743.981s) [paraview ]vtkXMLPStructuredDataRe:418 ERR| vtkXMLPRectilinearGridReader (0x13860cc0): No available piece provides data for the following extents:
0 8 8 9 0 0
The UpdateExtent cannot be filled.
这和幽灵层有关吗?
看起来你的
pvtr
有一个“洞”:范围8
和9
之间没有定义任何内容。只需将 Piece2 改为 0 8 8 15
即可。 (以及整个范围到0 8 0 15
)