首页/文章/ 详情

OpenFoam的SnappyHexMesh网格生成技术,city不city?

1月前浏览1429

SnappyHexMesh是OPENFOAM®开源软件中的一个网格生成工具,它基于Hex-dominant网格算法类型。这个工具生成由六面体(hex)和分割六面体(split-hex)元素组成的三维非结构化或混合网格。

使用Hex-dominant网格方法工作的优势在于,六面体和分割六面体元素可以在不损失太多网格质量的情况下细分到非常细的尺度,从而提高潜在的模拟速度和准确性。这与使用四面体元素形成对比,四面体元素可以更自动化地适应复杂几何形状,但在没有额外手动细化的情况下,可能会面临某些几何特征的网格质量问题。

通常,使用由六面体单元组成的参考基础网格来投影并贴合到几何体上。网格细化可以灵活地指定在边缘、表面以及内部或外部体积上,以获得最佳几何特征分辨率和最终网格质量。每个迭代都完全支持并行计算,并进行负载平衡。


1.Hex-dominant网格生成方法


     

   

使用snappyHexMesh算法的基本Hex-dominant方法包括4个主要步骤:

1)在第一步,即Castellated网格步骤中,围绕对象创建参考基础网格(带或不带细化)。

2)接下来,在Snapping步骤中,将Castellated网格贴合到对象表面上。

3)如果指定,将在选定的表面生成网格层,并调整以适应主网格,这是在Layer Addition步骤中进行的。

4)最后,在Mesh Quality Assessment步骤中,检查最终网格是否有非法/坏单元,并进行进一步迭代,直到达到质量标准。

这四个步骤将在下面简要描述并说明:


2.Castellated网格步骤


     

   

在Castellated网格步骤中,基础网格是在Base Mesh Box的界限内创建的。

Base Mesh Box或Background Mesh Box在网格化过程中作为基础网格的领域。这个网格纯粹包含由用户定义数量的六面体元素。需要注意的是,对于任何方向,单元格的数量必须大于1,从而形成3D网格。

在下面的图中,使用围绕车辆主体的外部网格作为网格化过程的示例。下图显示了Base Mesh Box围绕对象。

然后,在Base Mesh Box界定的整个空间内生成Base Mesh,如下图所示。


3.单元格分割


     

   

在移除体内网格单元之前,根据指定的边缘和表面细化对基础网格进行细化,然后在靠近物体表面的地方进行分割。


4.单元格移除


     

   

在物体附近的网格细化和分割后,根据材料点的规格移除单元格。

这至少需要一个由领域内表面界定的区域。在材料点所在的网格空间保持不变,而其他空间中的单元格被移除。因此,在这种情况下,材料点可以位于基础网格盒的界限和物体表面之间的任何空间。


5.区域细化


     

   

最后,根据指定的区域细化和细化级别,进一步细化网格空间。之后,Castellated网格看起来类似于下图所示。


6.Snapping步骤


     

   

snappyHexMesh算法的下一步是将Castellated网格(阶梯型网格)贴合或投影到物体表面上。这个过程通过以下算法完成:

  • 将Castellated网格的单元格顶点位移到物体表面上。

  • 然后,由于位移的顶点,放松内部网格。

  • 检查是否有违反网格质量参数的坏单元。

  • 重复该过程,直到达到质量标准。

Snapping过程后的内部网格如下所示:


7.Layer Addition


     

   

根据网格设置规范,可能会在选定的或所有表面上生成由与表面对齐的六面体单元组成的分层网格。

这个过程也是迭代进行的,并涉及多个步骤来生成所需的网格。这里只讨论方法,而设置在_Main Settings_ > _Layer Refinements_中有更详细的说明。

主要步骤如下:

  • 将内部贴合的网格从物体表面沿法线方向推回指定的距离(厚度值)。

  • 然后放松内部网格并检查以满足质量参数,否则,减小厚度。

  • 如果满足质量标准,则插入层。如果不是,则重复前几步。

  • 如果无法达到所需的质量标准,则不插入层。


8.网格质量评估


     

   

作为最后一步,检查网格的质量标准,并循环网格化过程,直到所有检查通过或达到整体迭代限制。

如果在达到迭代限制时检查失败,生成的网格可能包含坏元素或单元。





来源:CFD饭圈
FluentCFXOpenFOAM燃烧Polyflow材料ParaView
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-08
最近编辑:1月前
CFD饭圈
硕士 分享CFD文章,感谢关注
获赞 27粉丝 27文章 378课程 0
点赞
收藏
作者推荐

三种常见的网格细化技术

由于非结构化网格的点和邻接关系不遵循任何全局结构,因此也可以添加或删除网格单元格和点。动态添加、删除或移动网格单元格和点的过程称为网格自适应。根据问题的性质,需要网格自适应技术来在保持计算成本较低的同时获得准确的解场,通过控制网格单元格和节点的总数。通常,所需的细化程度与基于要解决的方程估计的误差相关。因此,误差较高的区域最终会累积更多的网格单元格。网格细化分为几种一般类型。最常见的类型被称为:h型细化r型细化p型细化上述的组合1. h型网格细化(h-refinement) h型网格细化是通过减小网格单元的大小来增加网格密度的方法。它基于增加网格单元的数量,从而减少每个单元的特征长度(h),以提高局部区域的分辨率。效果:1)增加局部网格分辨率,能够更好地捕捉流动细节。2)增加系统的自由度,可能导致计算成本和内存需求的增加。3)适用于捕捉边界层、激波、大梯度区域等现象。这种技术可以经济地增加局部网格分辨率,但也会因为增加了系统的自由度而增加要解决的差分方程的数量。在非结构化网格上,添加单元格或点是直接的,因为它涉及修改单元格的重新连接。在结构化网格上进行细化并不直接,因为添加单元格可能会破坏网格的规律性。使用自适应结构化网格时,通常允许非一致网格。网格细化技术通常也允许网格去细化,这可以用来减少在估计误差非常低的区域的单元格数量。这允许更有效地使用计算能力,降低成本和模拟时间。2. r型网格细化(r-refinement) r型网格细化是通过移动或调整网格单元的位置来改善网格质量的方法,而不改变网格单元的数量或大小。这种细化通常用于保持网格的全局结构,同时优化网格的布局以更好地适应流动特性。效果:1)网格单元的形状和方向得到优化,提高了解的准确性。2)网格的总体数量保持不变,因此计算成本可能不会显著增加。3)适用于改善网格布局,如在流动方向上对齐网格或避免过度拉伸的单元。下图显示了一个可能与冲击波传播问题相关的r型网格细化过程的例子,其中在解的高变化区域保持更高的网格分辨率。3.p型网格细化(p-refinement) p型网格细化是通过提高网格单元内部的多项式阶数来增加解的精度的方法。在有限元方法中,这意味着使用更高阶的基函数或形状函数来表示单元内的解。效果:1)在不改变网格结构的情况下提高了解的精度。2)可以减少因网格过粗导致的数值误差。3)通常与h型或r型细化结合使用,以实现更高效的求解策略。4.其他网格自适应技术 自适应重新网格化技术用于根据估计的误差生成新的网格。这允许使用更少的点获得最佳的总体网格质量和更少的点。另一方面,网格创建的开销可能很大。自适应重新网格化可以局部使用,仅在估计误差过高或过低的区域生成新网格。可以使用上述技术的组合。例如,r型和h型细化的组合可以称为rh型细化,其中节点既可以在网格上位移或创建。来源:CFD饭圈

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈