0

我正在尝试编写一个 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程序中的子例程和文件格式文档

Paraview 加载文件,但我无法使用它们的坐标或任何场变量来可视化粒子。这可能是由于 .vtu 文件的问题吗?

每个粒子的标量图值设置为 1,可能是不必要的。我只是将它包括在内,以防我希望粒子在某些时候具有不同的颜色(可能应该是浮点数)。

这是否必须包含 Cell 数据?连接性和偏移量刚刚设置为粒子/点编号,并且每个粒子/点的类型刚刚设置为“1”。这会导致问题吗?

4

1 回答 1

0

事实证明,上面输出的格式没有问题。问题在于“...”组件上使用的格式说明符。其中一些是使用“*”指定的,它必须产生不一致/不兼容的输出文件。通过特别指定这些(例如“//TRIM(no_dim)//”(4X,E15.8))“坐标),该文件与Paraview一起使用。对于那些感兴趣的人,还应该编写一个.pvd文件(这是指向 .pvu 文件的文件),以便在 Paraview 中生成动画。

于 2015-08-06T15:38:11.857 回答