我正在尝试编写一个Fortran子例程来将(随机定位的)粒子数据输出到.vtu文件,以便在Paraview中进行后期处理。该程序生成一个格式如下的文件:
<?xml version="1.0"?>
<VTKFile type= "UnstructuredGrid" version= "0.1" byte_order= "BigEndian">
<UnstructuredGrid>
<Piece NumberOfPoints="6664" NumberOfCells="0">
<PointData Scalars="Pressure" Vectors="Velocity">
<DataArray type="Float32" Name="Pressures" format="ascii">
...
</DataArray>
<DataArray type="Float32" Name="Density" format="ascii">
...
</DataArray>
<DataArray type="Float32" Name="Mass" format="ascii">
...
</DataArray>
<DataArray type="Float32" Name="Scalarplot" format="ascii">
...
</DataArray>
<DataArray type="Float32" Name="Velocity" NumberOfComponents="3" format="ascii">
... ... ...
</DataArray>
</PointData>
<Points>
<DataArray type="Float32" NumberOfComponents="3" format="ascii">
... ... ...
</DataArray>
</Points>
<Cells>
<DataArray type="Int32" Name="connectivity" format="ascii">
...
</DataArray>
<DataArray type="Int32" Name="offsets" format="ascii">
...
</DataArray>
<DataArray type="Int32" Name="types" format="ascii">
...
</DataArray>
</Cells>
</Piece>
</UnstructuredGrid>
</VTKFile>
代码基于SPHYSICS程序中的子例程和文件格式documentation。
Paraview加载文件但我无法使用它们的坐标或任何字段变量来显示粒子。这可能是由于.vtu文件有问题吗?
每个粒子的标量图值设置为1,可能不需要。我只是把它包括在内,以防我想要在某些时候对粒子进行不同的着色(可能应该是Float)。
这是否必须包含Cell数据?连接和offeset刚刚设置为粒子/点数,类型刚刚设置为&#34; 1&#34;对于每个粒子/点。这会导致问题吗?
答案 0 :(得分:0)
事实证明,上面的输出格式没有任何问题。问题在于“......”组件上使用的格式说明符。其中一些是使用“*”指定的,它必须产生不一致/不兼容的输出文件。通过具体指定这些(例如“// TRIM(no_dim)//”(4X,E15.8))“为坐标”,该文件与Paraview一起使用。对于那些感兴趣的人,也应该写一个.pvd文件(这是指向.pvu文件的文件,以便在Paraview中生成动画。