Error message

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /home/www/rheoworks/includes/menu.inc).

利用 paraview 查找网格位置

在 CFD 计算中,生成网格难免会出现一些问题。 利用 OpenFOAM 中的 checkMesh 工具,可以提供一些信息, 但仍不具体。

如下是 checkMesh 的部分输出结果,可以看出有 4 个网格出现零/负体积, 还有开放网格,非正交网格。

 ***Number of edges not aligned with or perpendicular to non-empty directions: 25886
  Writing 22486 points on non-aligned edges to set nonAlignedEdges
    Boundary openness (-6.399856341e-16 1.457854179e-17 2.138739295e-15) Threshold = 1e-06 OK.
 ***Open cells found, max cell openness: 1, number of open cells 2 Threshold = 1e-06
  Writing 2 non closed cells to set nonClosedCells
  Writing 267 cells with high aspect ratio to set highAspectRatioCells
 ***Zero or negative face area detected.  Minimum area: 0
  Writing 10 zero area faces to set zeroAreaFaces
 ***Zero or negative cell volume detected.  Minimum negative volume: -1.183291358e-30, Number of negative volume cells: 4
  Writing 4 zero volume cells to set zeroVolumeCells

只有把这类的网格发生的确切位置找出来,才好对症下药。

由于 checkMesh 执行时,已经将这些错误的网格写成网格集合,如 zeroVolumeCells 就是集合的名称。 这里,我们利用 zeroVolumeCells 来作为例子。 首先,进入 setSet 环境,默认为最早时间步,可利用选项 -time <指定时间> 来确定操作的时间步。

$ setSet 

这里会列出如下图的集合名称

ellSets:
    zeroVolumeCells size:4
    highAspectRatioCells    size:267
    nonClosedCells  size:2
    nVcells size:4
faceSets:
    zeroAreaFaces   size:10
pointSets:
    nonAlignedEdges size:22486

在 > 符号后输入相应的操作,如

>cellSet abc new cellToCell zeroVolumeCells all

abc 就是新的集合的名字,new 代表新的,cellToCell 指的是从网格集合来,zeroVolumeCells 是原集合的名称,all 代表所有 这样,有如下输出

    Set:abc  Size:0  Action:new
    Adding all elements of cellSet zeroVolumeCells ...
    Writing abc (size 4) to "0.00444/polyMesh/sets/abc" and to vtk file "VTK/abc/abc_223900.vtk"

然后输出 quit 退出 setSet 环境。

这时,在 paraview 中打开该文件夹 VTK 里面 abc 内的 .vtk 文件,

select .vtk file

就可以确定负体积网格的位置了。