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 中生成动画。