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的。胡乱写了一些个人看法,希望能有所帮助。 
 
			

