目前,我遇到了VTK,C ++和ParaView的问题。
我正在尝试在自写模拟中编写并行的VTS文件(.pvts
)。我可以使用.vts
写出每个vtkXMLPStructuredGridWriter
文件。该编写器为每个以MPI开始的进程生成一个.vts
文件。这些文件名为<timestep>_<mpi_rank>.vts
。如果我在ParaView中打开所有这些文件,它们将被正确排列,并且可以对其使用过滤器。
可悲的是,当我打开.pvts文件时,ParaView将坐标弄乱了。为了澄清我的意思,我在ParaView中添加了呈现的.pvts
文件的屏幕截图。(1)如您所见,对角线似乎是错误的。我还添加了另一幅图像,其中正确渲染了单个文件。 (2)
我还添加了.pvts
文件的内容。
<?xml version="1.0"?>
<VTKFile type="PStructuredGrid" version="1.0" byte_order="LittleEndian" header_type="UInt64">
<PStructuredGrid WholeExtent="0 203 0 203 0 203" GhostLevel="4">
<PPointData>
<PDataArray type="Float64" Name="phi"/>
<PDataArray type="Float64" Name="psi"/>
<PDataArray type="Float64" Name="L"/>
<PDataArray type="Float64" Name="R"/>
</PPointData>
<PPoints>
<PDataArray type="Float32" Name="Points" NumberOfComponents="3"/>
</PPoints>
<Piece Extent="0 103 0 103 0 103" Source="0_000000_0.vts"/>
<Piece Extent="0 103 0 103 100 203" Source="0_000000_1.vts"/>
<Piece Extent="0 103 100 203 0 103" Source="0_000000_2.vts"/>
<Piece Extent="0 103 100 203 100 203" Source="0_000000_3.vts"/>
<Piece Extent="100 203 0 103 0 103" Source="0_000000_4.vts"/>
<Piece Extent="100 203 0 103 100 203" Source="0_000000_5.vts"/>
<Piece Extent="100 203 100 203 0 103" Source="0_000000_6.vts"/>
<Piece Extent="100 203 100 203 100 203" Source="0_000000_7.vts"/>
</PStructuredGrid>
</VTKFile>
有人有使用C ++和MPI编写.pvts
文件的经验吗?
我还为您压缩了八个.vts
文件,因此您可以在ParaView中进行检查。 Download
谢谢!