计算流体力学(
CFD
)模型的质量通常由求解问题时所采用的网格质量决定。优质的网格有助于模型收敛、降低内存需求,最终得到精确的解。因此,在求解
CFD
问题时,值得我们投入时间和精力认真创建网格。在本篇文章中,我们将介绍影响网格质量的各种因素,以及如何准备用于网格划分的流体流动模型的几何结构。
“优质的” CFD 网格由哪些要素构成?
如今,大多数网格划分工具或包含自动检查,或提供易于检测和纠正错误的工具。COMSOL Multiphysics® 软件可以进行自动检查,防止违反上述两条原则(除非另有规定)。
优质的 CFD 网格还应力求满足以下三个要素,这三个要求通常是互相冲突的:
高质量
足够高的分辨率以达到所需的精度
较低的计算成本
网格单元质量
高质量的网格单元是尽可能呈各向同性的单元,例如,六面体形状的单元。我们可以使用不同的质量度量来量化单元的质量。例如,理想网格单元的质量通常为1,但也有一种观点认为理想单元的质量为 0。
COMSOL Multiphysics 用质量为 1 来描述理想网格单元。因此,在某种程度上偏离了理想形式的网格单元的质量会小于 1。
最坏的情况是单元折叠或反转,会造成其面积或体积变为 0 或负值。这种网格单元只在极少数情况下产生,重要的是我们需要修改网格以将其清除,因为这种网格生成的方程组极难求解,并且可能有非物理解。体积为负值的单元质量小于等于 0。下面是一个反转六面体的例子。
从理想质量的单元(最左侧)到反转(最右侧)的六面体单元。
网格单元可以通过许多方式偏离它的理想形式。没有负面影响的偏离是方向上的“压缩”,如上图中的各向异性单元。纵横比的定义为最长边的长度除以最短边的长度。高纵横比单元能够为流动呈各向异性的区域提供高精度。这些单元通常用于创建结构化网格,尤其是边界层网格。然而,当使用高纵横比单元时,随着纵横比的增大,得到的方程组越来越难求解。达到 100 数量级(或接近于此数量级)的纵横比通常是可以接受的,而接近 1000 数量级的纵横比可能会带来麻烦。
要使网格单元发生变形但不反转,最直接的方式是使它偏斜。偏斜的网格单元的角度大大偏离 90°。严重歪斜的单元对局部精度和方程组的条件数都有负面影响(使方程更难求解)。在创建弯曲几何结构中的边界层网格或映射网格时,或者通过金字塔单元从高纵横比单元过渡到各向同性四面体单元时,通常会出现偏斜单元。偏度是
检测偏斜单元的一种度量方法
。基于偏度的单元质量没有明确的下限,但应避免低于 0.01 的单元质量。
专门用于度量 CFD 网格质量的方法是增长率。增长率是从一个单元到其相邻单元的单元大小的变化,增长率应该非常小才能得到精确的结果。最高增长率通常出现在结构化网格之间的过渡中,例如边界层网格、映射网格和自由非结构化四面体网格。增长率没有明确的上限,但从经验上来看,不应超过 20%。
足够的分辨率
对于 CFD 问题,网格包含形函数,而形函数又代表流场和压力场。这些场中的尖锐梯度需要局部密集网格才能求解。在最好的情况下,未充分求解的梯度通过数值离散化方案(例如稳定性或迎风稳定性)消散,这样可以降低精确度,也可能导致大范围的振荡甚至发散。在流体力学领域有丰富经验的专业人员可以预测哪里可能出现尖锐梯度,并在这些位置创建局部细化的网格,而不是细化所有网格。
计算成本
我们可以在任何位置创建非常密集的网格,但在大多数情况下,由此产生的计算成本非常大。因此,非常重要的一点是只在流动需要的区域细化网格,并为可以使用较大单元的区域提供良好的过渡。但是流动通常是各向异性的,因此最有效的方法是利用各向异性结构化网格来表现梯度。这样一来,典型的 CFD 网格就包含结构化网格区域和自由、非结构化网格区域。
包含自由四面体网格区域和结构化网格区域的混合器模型。请注意,沿着壁的边界层网格是结构化网格。
各向异性网格和单元大小差异会降低网格质量,因此,在解析流动梯度的同时最大限度地减少高质量网格的单元数并非易事。
在 COMSOL Multiphysics® 中准备用于网格划分的 CFD 模型几何结构
正确地准备用于网格划分的 CFD 模型几何结构非常重要。通常,CAD 团队会提供一个包含几何结构说明的文件。最终的几何结构应包含用于指定适当物理条件(例如要指定为入口和出口的边界)的实体,并以网格可控的方式进行分割。这有助于我们直观地了解求解结果,以便在必要的位置细化网格,并在预计能得到足够精度的解的位置粗化网格。
创建流动域
通常,由 CAD 团队提供的几何结构并非流体力学专业人员想要的,CAD 团队提供的通常是一些实体部件,如阀、工具或电子器件,因此,专业人员首先要移除所有不需要的结构并创建流体域。
举例来说,经典的 Ahmed 类车体基准案例显示了一个简化的汽车结构周围的流动。我们经常在网上看到的 CAD 文件是针对真实汽车的,但我们想要模拟汽车位于风洞时的流动。因此,在本例中,我们绘制了一个矩形,并减去汽车结构,得到一个去除汽车的风洞(下方右图)。
请注意我们是如何做到只保留一半汽车结构的。通常,建议你尽可能利用对称性,例如稳态雷诺平均纳维-斯托克斯方程(RANS)仿真中的对称流动。(另一方面,大涡模拟(LES)需要完整的几何结构。)在这种情况下,使用对称平面可以移除 50% 的单元,并将计算时间缩短 50% 以上,而不会降低精度!
Ahmed 类车体实际 CAD 几何结构
移除几何细节
CAD 几何结构很少像 Ahmed 类车体那样简单,它经常包含 CFD 专业人员不需要的一些细节,例如螺栓、弹簧和标识。这些细节往往可以去除或者用简化表示来代替。
CAD 几何零件也经常不是非常吻合。下图显示了一个叶轮叶片,该叶片略大于和它相连的轴。如果我们保留这些长条面,网格单元需要与它们一致,这会导致长条面周围的网格非常密集。长条面通常比允许的最小单元大小小得多,因此附着在长条面上的单元往往呈高度各向异性并具有较高的偏度。由于长条面会产生单元质量较差的多余密集网格,因此应该将它们移除。
叶轮 CAD 几何结构上的长条面(蓝色)。
COMSOL Multiphysics 提供了多种工具来识别和移除这些小细节,比如
虚拟操作
。处理CFD 应用时,一个重要的方面是保持曲面的曲率。利用虚拟操作来移除边和长条面可能会导致严重“扭曲的”表面网格,在最坏的情况下,还可能会改变流动的特性。
准备用于映射的几何结构
结构化网格是帮助我们获得足够高分辨率的有效工具。然而,并不是所有的几何结构都可以进行映射或扫掠。大体上来说,几何结构需要与一组二维正方形或一组三维立方体保持同形,才能进行映射和扫掠,这需要一个分割的几何结构,如
之前的文章
所述。在下图中,我们添加了一个曲面,将 Ahmed 类车体模型的风洞分割为前半部分(简化汽车结构所在的位置)和后半部分(我们打算在其中创建结构化网格)。
Ahmed 类车体模型几何结构,其中包含一个曲面,可用于在风洞尾部创建结构化网格。
结构化网格在多物理场仿真中特别有用,例如下图所示的太阳能电池板的流固耦合分析。太阳能电池板由许多平板和梁组成,梁的短边必须用大量网格单元进行网格划分。除了靠近边的区域外,大曲面不需要细化网格。在这种情况下,需要使用各向异性网格单元,才能确保在所需的精度下合理地简化问题。
我们可以为大多数梁和平板分别创建结构化网格,但是当不同的网格需要共享面或边时,可能会出现冲突。如下面的右图所示,对平板和梁进行
分割
可以解决这个问题。利用通过分割产生的附加边和表面,可以更好地控制单元的数量及其分布。
太阳能电池板几何结构,图为清理后的情况。
图为清理且分割后的情况。
创建网格控制实体
引入额外的面和边来控制网格有一个缺点:网格需要与这些额外的实体一致。当引入边界层网格时,可能会带来问题。COMSOL Multiphysics 采用一种方法,即在对体进行网格划分后,将边界层网格推入域中。域中的单元需要为边界层单元留出空间,边界层单元可以在面内移动,也可以沿着边移动,但不能脱离面或远离边。如果不允许单元移动,则试图进入该域的单元和边界层单元都可能被压扁。
下面的屏幕截图显示了在 Ahmed 类车体后面添加的一个域,用于控制尾流中的网格大小。该域不会一直延伸到底部,因此如果不允许移动,在风洞地板上引入的边界层网格会在地板与外加域的底部之间被压扁。COMSOL® 软件具有所谓的网格控制实体,如汽车后面的网格控制域所示。
当网格控制域完全嵌入到网格中时,它会消失,并在需要移动时(例如创建边界层网格时)释放之前限制在其边界内的单元。在这种情况下,网格控制实体下方地板上的边界层网格能够移动网格控制面上及其上方的单元,以避免挤压单元。
Ahmed 类车体模型,在简化的汽车几何结构后面有一个网格控制域。
当实体被移除时,网格控制实体可以局部平滑网格,因此与将实体留在模型中(即使没有边界层网格)相比,它们通常在局部产生质量更好的网格。
本文内容来自 COMSOL 博客