Fortran 将粒子数据输出到 .vtu 文件以供 paraview
Fortran ouput particle data to .vtu file for paraview
我正在尝试编写一个 Fortran 子程序来将(随机定位的)粒子数据输出到 .vtu 文件,以便在 Paraview 中进行 post 处理。该程序生成一个格式如下的文件:
<?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 program and the file format documentation中的子例程。
Paraview 加载了文件,但我无法使用粒子的坐标或任何场变量来可视化粒子。这可能是因为 .vtu 文件有问题吗?
每个粒子的标量图值都设置为 1,这可能是不必要的。我只是把它包括在内,以防我希望粒子在某些时候有不同的颜色(可能应该是 Float)。
这是否必须包含单元格数据?连通性和偏移量刚刚设置为 particle/point 数字,并且每个 particle/point 的类型刚刚设置为“1”。这会导致问题吗?
原来上面输出的格式没有问题。问题在于“...”组件上使用的格式说明符。其中一些是使用“*”指定的,这一定会产生不一致/不兼容的输出文件。通过具体指定这些(例如坐标“//TRIM(no_dim)//”(4X, E15.8))),该文件与 Paraview 一起工作。对于那些感兴趣的人还应写入 .pvd 文件(这是指向 .pvu 文件的文件)以便在 Paraview 中生成动画。
我正在尝试编写一个 Fortran 子程序来将(随机定位的)粒子数据输出到 .vtu 文件,以便在 Paraview 中进行 post 处理。该程序生成一个格式如下的文件:
<?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 program and the file format documentation中的子例程。
Paraview 加载了文件,但我无法使用粒子的坐标或任何场变量来可视化粒子。这可能是因为 .vtu 文件有问题吗?
每个粒子的标量图值都设置为 1,这可能是不必要的。我只是把它包括在内,以防我希望粒子在某些时候有不同的颜色(可能应该是 Float)。
这是否必须包含单元格数据?连通性和偏移量刚刚设置为 particle/point 数字,并且每个 particle/point 的类型刚刚设置为“1”。这会导致问题吗?
原来上面输出的格式没有问题。问题在于“...”组件上使用的格式说明符。其中一些是使用“*”指定的,这一定会产生不一致/不兼容的输出文件。通过具体指定这些(例如坐标“//TRIM(no_dim)//”(4X, E15.8))),该文件与 Paraview 一起工作。对于那些感兴趣的人还应写入 .pvd 文件(这是指向 .pvu 文件的文件)以便在 Paraview 中生成动画。