snappyHexMesh对复杂地形添加边界层报“浮点数例外 (核心已转储)”错误
-
在用snappyHexMesh对复杂地形生成网格时发现下述问题,未能找到根除办法,还请有碰到过同样问题的朋友讨论讨论:
- 报错信息:
Determining displacement for added points according to pointNormal ... Detected 0 points with point normal pointing through faces. Reset displacement at 0 points to average of surrounding points. displacementMedialAxis : Smoothing using Medial Axis ... #0 Foam::error::printStack(Foam::Ostream&) at ??:? #1 Foam::sigFpe::sigHandler(int) at ??:? #2 ? in "/lib/x86_64-linux-gnu/libc.so.6" #3 Foam::medialAxisMeshMover::calculateDisplacement(Foam::dictionary const&, Foam::Field<double> const&, Foam::List<Foam::snappyLayerDriver::extrudeMode>&, Foam::Field<Foam::Vector<double> >&) at ??:? #4 Foam::medialAxisMeshMover::move(Foam::dictionary const&, int, Foam::List<int>&) at ??:? #5 Foam::snappyLayerDriver::addLayers(Foam::layerParameters const&, Foam::dictionary const&, Foam::List<int> const&, int, Foam::decompositionMethod&, Foam::fvMeshDistribute&) at ??:? #6 Foam::snappyLayerDriver::doLayers(Foam::dictionary const&, Foam::dictionary const&, Foam::layerParameters const&, bool, Foam::decompositionMethod&, Foam::fvMeshDistribute&) at ??:? #7 ? in "/home/lsfluid/OpenFOAM/OpenFOAM-10/platforms/linux64GccDPInt32Opt/bin/snappyHexMesh" #8 ? in "/lib/x86_64-linux-gnu/libc.so.6" #9 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" #10 ? in "/home/lsfluid/OpenFOAM/OpenFOAM-10/platforms/linux64GccDPInt32Opt/bin/snappyHexMesh" 浮点数例外 (核心已转储)
2.处理过程:
更改snappyHexMeshDict中addLayersControls参数featureAngle从180到120,网格如下所示。大部分网格生成边界层,一个角落未生成边界层,若继续增加featureAngle将报上述错误。
3.期望:
* 知道上述错误缘由和其他处理方法;
* 希望能增大featureAngle,使地形曲面能全部添加边界层。 -
@李东岳 比较显著的是一个角落上没有生成边界层,这个角的地形向下走得比较急,而且我的边界层是绝对高度的,不知道是不是因为这两个原因导致边界层生成时出了边界而出错。
在后续的相对高度边界层添加时,FeatureAngle也无法增加至180,若设为120,则在边界地形凹陷处未能添加上边界层。工程做法参考就是扩大边界范围,或者后续想办法做边界地形面平滑处理。 在一篇论文中,extrudeMesh方法生成的网格,顶面和地面形状一样,感觉不太好。 后续如果snappyHexMesh没法做得更好,就只好先用这套网格将就将就,再研究别人用blockMesh改的网格方法,或者研究一下将fluent meshing的网格(边界层+多面体的网格质量不错)转过来。
未生成边界层的角:
其他角边界层: