ParaView无法正确渲染生成的PV

时间:2019-06-03 15:26:46

标签: c++ mpi simulation vtk paraview

目前,我遇到了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

谢谢!

Correct

Wrong

0 个答案:

没有答案