snappyHexMesh生成网格后,结果显示“non-orthogonality > 45 degrees”过多
-
第一个图是小视角,第二个是大视角,可以看出基本上还都是小网格,没有什么变化。snappyHexMeshDict blockMeshDict
我分别运行了blockmesh和snappyhexmesh但得到了如下的记过,不管是从最终的结果可视化还是报告,好像都是错的。尤其是“non-orthogonality > 45 degrees”很多,这是为什么。到底是什么参数控制了这个结果。
No layers to generate ...
Layer mesh : cells:1584584 faces:5627764 points:2554142
Cells per refinement level:
0 105641
1 55348
2 238190
3 627103
4 558302
Writing mesh to time 0
Wrote mesh in = 3.02 s.
Layers added in = 364.18 s.
Checking final mesh ...
Checking faces in error :
non-orthogonality > 45 degrees : 210392
faces with face pyramid volume < 1e-13 : 0
faces with face-decomposition tet quality < 1e-09 : 0
faces with concavity > 80 degrees : 0
faces with skewness > 4 (internal) or 20 (boundary) : 0
faces with interpolation weights (0..1) < 0.02 : 0
faces with volume ratio of neighbour cells < 0.01 : 0
faces with face twist < 0.02 : 3
faces with triangle twist < 0.05 : 32
faces on cells with determinant < 0.001 : 0
Finished meshing with 210427 illegal faces (concave, zero area or negative cell pyramid volume)
Finished meshing in = 1509.18 s.
End[链接文本]
snappyHexMeshDict blockMeshDict -
每日一捞一捞
-
说一点我的看法,不一定对,仅供参考:
non-orthogonality
non-orthogonality
由snappyHexMeshDict.meshQualityControls.maxNonOrtho
直接控制,你的snappyHexMeshDict
里这个值是45
,这个值一般不需要控制的这么小,65
是更常见的配置值。另外,你的
snappyHexMeshDict
里,relaxed.maxNonOrtho
给的是75
,这个值通常是和maxNonOrtho = 65
相配合的。如果你真的要把maxNonOrtho
设为45
,按逻辑来说relaxed.maxNonOrtho
也应该相应的减少一点。网格纵横比
这里截取你的背景网格配置:
vertices ( (-340 -302 -3) // Slightly smaller than the STL model bounds (332 -302 -3) (332 341 -3) (-340 341 -3) (-340 -302 95) // Slightly larger than the STL model bounds (332 -302 95) (332 341 95) (-340 341 95) ); blocks ( hex (0 1 2 3 4 5 6 7) (100 100 100) simpleGrading (1 1 1) // Adjust mesh density as needed );
如上面B老师所说,你网格的大纵横比就是这里导致的。如果不是有意要在Z方向上做加密的话没必要这么分块,我口算一下,大概
(70 65 10)
就可以。castellate
从上面可以看到,你背景网格的量级是
100 * 100 * 100 = 1,000,000
;而你SHM
的maxGlobalCells
给了2,000,000
。这看起来不太对,这几乎没给SHM
进一步细分的空间,从结果来看也是这样,网格划分的不够细。另外,截取一段
level
的配置:features ( { file "building.eMesh"; level 3; } ...... ); refinementSurfaces { building { level (3 4); } ...... }
我理解
features
的level
应该不低于Surface
的。胡乱写了一些个人看法,希望能有所帮助。