利用 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 文件,
就可以确定负体积网格的位置了。
- Log in to post comments