1 网格的需要和选择
1.1 为何首先需要一个网格系统?
在进行任何 CFD 分析之前,考虑所需的网格系统是非常有必要的。
■ 所有的 CFD 分析都是建立在控制流体动力学现象的微分方程之上,这些微分方程有 Navier-Stokes 方程、能量守恒方程等。
■ 众所周知,这些微分方程是无法获得解析解的。(除非进行大量的简化)
■ 因此,只有采用“离散化”才能进行求解。
■ 通过在整个分析区域上覆盖一个虚拟的网格系统的方式,将所考虑的区域划分成许多小的体积或单元格。
– 对小体积内和小体积之间所考虑特性的变量(速度、压力和温度等)进行假设。
–因此可以推导得出这些微分控制方程的近似形式(也就是所谓的有限体积法),只要这个体积足够小,这一体积内的控制方程就足够有效,从而在整个区域内的控制方程也足够有效。
–最后通过迭代的方式求解这些代数方程,从而获得相应的结果。
很明显:
■ 网格划分是最终获得控制微分方程合理精确解的一种方法。
■ 所选择的网格大小和细密程度对求解的精确度有很大影响。
■ 网格系统类型的选择,网格的形状和排列可以是任意的。只要定义的网格能方便可靠的获取精确结果,这一网格就是良好的网格。
然而,这一“只要”字眼是非常重要的限定。经验表明,对于任何实际应用,为 CFD 计算选择网格系统时,必须考虑以下影响因数:
■ 定义问题和以后做相应修改所需的时间。
■ 易于获得良好、精确结果。
■ 解的强壮性和可靠性
■ 计算速度和存储
这就是为什么 CFD 计算网格系统的选择是一项重要的工作。
1.2 网格系统如何进行选择?
在用于 CFD 分析的网格系统选择时有两个非常重要的方面:
1)网格的形状,主要的选择有:
■ 笛卡儿——立方体网格,并且网格面与笛卡儿坐标系中的 X、Y、Z 轴相平行。
■ 六面体——六面体网格,是笛卡儿网格的某种扭曲,可以是“笛卡儿网格拓补”(也就是类似笛卡儿网格,但是网格被扭曲)或者“适体网格”(通过扭曲笛卡儿网格,使其很好的与物体的表面贴合)
■ 四面体——四个面的网格,例如三棱锥形网格
2)网格的排列,主要的选择有:
■ 结构化网格——网格中节点排列有序,邻点间的关系明确。
■ 非结构化网格——节点位置无法用一个固定的法则予以有序的命名。
■ 部分非结构化网格(partially unstructured)——在某一区域内结构化网格与其它结构化网格以某种方式结合的网格。并非所有的网格形状与网格排列都具有现实意义。最为常用的网格如下:
■ 笛卡儿——无论是结构化还是部分结构化都被广泛的应用到 CFD 的诸多领域。
■ 六面体网格——结构化和部分结构化(经常用于“适体”)常用于“空气动力学”方面的应用(燃气轮机叶片、机翼、流线型物体),这主要是因为可以将网格很好的贴合在物体表面。
■ 完全非结构化六面体和四面体网格——最初被用于有限元(而不是有限体积法)的 CFD 分析,现在被广泛的用于有限体积法,通常是棱柱或棱锥形式。
这些网格如后一页所示:
下面利用笛卡儿网格对正交网格进行进一步的说明。严格来说,许多对笛卡儿网格所作的注解也可以应用于“正交”网格,那就是网格线与正交坐标轴方向对齐,其中坐标轴互相成 90 度角。在实际使用中,笛卡儿网格最常用见的正交网格。
基于圆柱坐标系的正交网格也比较常见,但是使用并不普遍。此外,笛卡儿网格比其它非正交有更多的优势,我们会在以后的章节中做进一步的讨论。
这一白皮书中考虑了诸多可以选择的网格形状和排列。但主要集中在第一和第三两种网格。也就是笛卡儿网格和完全非结构化(六面体和四面体)网格。第二种网格(结构化四面体-适体网格)是一种介于以上两者之间的方法,仅仅适用于空气动力学的应用。
2 影响网格系统选择的因数和需要考虑的事项
2.1 网格形状对于网格质量的影响
为什么,笛卡儿网格形状成为许多应用场合的首选?
■ 可以方便的在笛卡儿参考系中对控制方程进行推导和明确的表达。
■ 求解的速度分量几乎总是和笛卡儿参考系坐标方向对齐。
笛卡尔网格比非正交网格具有更高的网格质量。与笛卡儿网格差异(也就是更大角度的扭曲)越大的非正交网格,其网格质量方面的“降低”也越明显。
网格质量是进行 CFD 分析时,选择网格系统所着重考虑的方面。网格形状(特别是正交性网格的扭曲)对于有限体积法微分方程推导假设和求解结果方法有很大的影响。
附录 1 对最核心的问题进行了详细的阐述。其中考虑了有限体积方程中的两个典型项,它们描述了穿过网格面的扩散通量以及作为某一方向上速度源的压力梯度。
对高度非正交网格中的这两项推导进行了推导。最需要注意的一点是,非正交网格会比笛卡儿网格多产生一个“二次”项。附录 1 考虑了两维的情况,对于每一种考虑的方法仅仅出现了两项。然而,在完全三维的情况中,对于非正交网格的推导会比笛卡儿网格产生几倍的“二次”项。
这些”二次”项的出现会产生很多后果:
■ 更多的计算时间——”二次”项的计算需要耗费更多的计算时间。由于需要很多项将非正交网格描述成类似笛卡儿网格,所以可能需要几倍的时间,并且由于计算在求解的过程中迭代进行,所以对时间的影响很大。
■ 更多的存储空间——这可能是最主要的影响。通常情况下都要对关于每一个非正交网格主要几何参数进行存储(而不是连续的进行计算)。这就是为什么非结构化的六面体或四面体网格比笛卡儿网格需要更多的计算存储空间。实际上在大型复杂计算的过程中,这已成为这种方法(非结构化网格)使用的限制。
■ 降低精度和减少迭代求解的强壮性——为了计算这些”二次”项引入了辅助的“cross-linkages”。也就是说不是仅仅两个位置的温度被用于热流的计算,远处其它位置的温度也会被用于热流的计算。这会有两个后果:
1)引入额外的错误——这就意味着,在所有其它条件相同的情况下,高度非正交网格要比正交网格的计算精度低。换而言之,要实现相同的数值计算精度,非正交网格比正交网格需要更细密。
2)第二个影响方面是有限体积方程系统的收敛稳定性。由于在迭代计算过程中几乎无法直接处理”二次”项,所以使它们具有很大的主导性,从而使迭代求解的可靠性变差,可能会出现不可靠的收敛或发散。
这些非正交网格的缺点会随着网格扭曲(非正交性)的增大而变得更明显。所以其结果严重的依赖于实际的应用问题。至此,非正交网格的不利影响已经被阐述,并且很好被了解。
这就是为什么:
■ CFD 的使用者尽可能的要采用笛卡儿网格系统,或其它的正交网格系统。
■ 非正交网格系统的用户被要求去阻止差质量网格的产生,通常需要对自动生成的网格进行手动的“调整”,这成为整个 CFD 分析过程中最为耗时的工作。
2.2 非矩形几何体的描述
如果笛卡儿网格的优点是那么明显,那么 CFD 的使用者为何还要使用非正交网格。
这主要是由于复杂系统的需要,特别是那些非矩形的固体边界。
正是由于这个原因,非正交网格系统在机翼等物理外形的贴合方面具有很大的优势,它可以使网格面与物理边界很好的贴合。
然而,在过去十年出现了一些不错的新方法。其中就采用笛卡儿网格,并且非矩形固体形状可以以任意形式穿过网格。在网格中出现的固体采用合适的“cut-cell”技术进行描述。
这种方法的优点:
■ 可以确保良好的网格质量,具体的方面先前已经阐述
■ 可以避免在自动生成网格之后,再进行手动调整
■ 对于耦合热交换问题,包扩固体区域内存在流动的导热和流体的热交换(常出现在电子散热领域),由于需要进行耦合求解,很自然网格系统会覆盖流体和固体区域。
对于复杂几何外形地问题有不少相关经验。以下引用了四个相关地例子:
1 Patankar 和其同事
Patankar 和其同事所做地工作
上图证明了使用具有流体/固体网格描述的笛卡儿网格所获得结果的精度。将通过圆柱体(Re=26)的绕流流动与实验流动结果进行了比较,并且与具有相同网格密度的非正交适体网格所得结果进行了比较。
两种网格的计算结果均与实验结果相吻合。通过一些其它的“简单”测试,可以得到相同的结论,采用“Cutcell”技术的笛卡儿网格可以与复杂的非正交适体网格获得一样好的计算结果。
2 Spalding 和其同事(参考 3)
Spalding 和其同事所做地工作(参考 3)
上图表明置于风洞中的汽车周围是湍流流动。在这个例子中,笛卡儿网格被嵌套,也称之为部分非结构化网格(后续章节会讨论)
所得到的重要结论是:通过笛卡儿网格所获得汽车表面压力变化的结果与实验测量值相一致。尽管这里没有显示其它网格系统的结果,但是笛卡儿网格的结果足以和其它更复杂的适体网格结果相媲美。
3 NASA Ames 的工作(参考 4 和参考 5 )
NASA Ames 的工作,主要是飞机和飞行器外部的空气动力学
上图展示了部分非结构化笛卡儿网格(octree-structured)在军事直升机空气动力学方面的应用(参考4)。这一网格系统也被用于NASA Ames 机翼、整个飞机机身和航空器周围的流动计算。
NASA Ames 还利用嵌套的笛卡儿网格(参考“overset structured grids”)对机身周围和后部的流动进行计算(参考 5)。
采用这类基于笛卡儿网格的技术可以方便的(相对而言)生成网格,并且与非正交的网格系统相比在数值计算方面更具优势。
4 剑桥大学的工作(参考 6)
Dawes 教授的论文回顾了叶轮机械的 CFD 仿真,着重关注了具有特殊几何形状的应用问题。叶轮机械流动是仿真模拟方面的一个很大挑战。早期的叶轮机械仿真采用结构化的六面体网格。但这限制了叶轮方面 CFD 进入到“适体”网格的发展,现今诸多通用型 CFD 软件采用“适体”网格。 Dawes 教授认为这阻碍了 CFD 软件的使用,并且由于生成网格时间的原因限制了 CFD 在设计方面的使用。网格生成的转变势在必行,应该对复杂几何模型采用转变的方式,而不是直接进行处理。
Dawes 教授介绍了在计算机图形方面的最新进展。 Level set 技术被用于精确的描述使用 3D 距离场的多曲线面,将有正负号的距离存储到最近的笛卡儿网格表面。如下图一个围绕叶片的外部流动所示,这一网格可以直接用于流动的求解。
Dawes 教授通过改变叶片上孔的例子来说明当几何模型改变时,只改变了孔处的局部网格。
简而言之,从以上这些例子和其它的研究均表明:
■ 使用合适的 cut-cell 技术,对于复杂的非矩形几何体而言,笛卡儿网格可以获得与复杂非笛卡儿网格相类似的仿真结果。
■ 对于这类问题使用笛卡儿网格可以简化问题的定义,并且可以确保解的强壮性,因此可以提高用户的生产力和优化使用计算机资源。
2.3 网格排列——结构化或非结构化
在 CFD 网格系统选择方面另一个需要注意的方面是网格的排列。也就是如图 1a) 中所描述的紧密相连的结构化排列(以连续规则的线)或者如图 1d )和 1e )所示的完全非结构化排列。
这个选择关乎计算效率。非结构化网格可以帮助用户关注具体的某个区域(如图 6b ))所示,如果以相同的网格密度对某个区域使用结构化网格,会在远离这个区域的地方造成不必要的网格(如图 6a )所示)。假如其它的条件一样,这两种网格所得到的结果应该一样,唯一的区别是计算时间的不同。
■ 如果求解图 6b)所示的完全非结构化网格,则需要额外的存储空间(用以记录网格之间的排列)和计算时间。
■ 此外,非结构化网格形状也会要求更多的存储空间,计算时间和由于网格质量所要求更高的网格密度(与笛卡儿网格相比)。
■ 很明显图 6b) 中的非结构化网格要比图 6a) 中的结构化网格有更少的网格数量,但是前者需要更多的存储空间和计算时间。可以根据具体的问题考虑选择何种网格。
就两点做进一步说明:
首先:非结构化网格在处理只需要某一区域需要精密网格,其它外围区域使用粗糙网格的问题时有很大的优势。这经常出现在流体流经物体的绕流问题中。在 2.2 章节中描述了这类问题的两个常见例子图 3 )风洞中的汽车和图 4 )自由状态下的直升机。
然而,并不是所有的问题都是如此。电子产品机箱内部也存在流体流经物体的绕流问题,但是机箱内充满了元器件,它们的对散热的影响必须进行模拟,也就不存在网格“浪费”的情况,因为在机箱内整个流场都需要进行求解。同样的情况也出现在内部结构复杂的泵和阀门中,在这些元件中往往不能采用适体网格。
其次:有一个折中的方法,其具有非结构化网格的优点,同时又具有笛卡儿网格的长处。前文 2.2 章节中已经展示了两个采用这一方法的例子。
这就是采用结构化网格的嵌套。这可以使一个细密的笛卡儿网格嵌套至一个粗糙的笛卡儿中。在使用这个方法的时候,着重考虑的是不同笛卡儿网格结合处的迭代求解,这种方法的效率非常高。
总而言之:
■ 使用结构化网格和非结构化网格完全是计算效率的问题。
■ 仅仅通过求解问题所需要的总网格数目来判断计算效率是片面的,对于具有“浪费”网格的笛卡儿网格而言,其高效求解的优势可能会由于“浪费”网格的存在而消失殆尽。
■ 只要使用合理,在笛卡儿坐标系中使用嵌套的结构化和八边体网格( octree gird )同样可以具有四面体和六面题网格的灵活性(并且,通过使用 Cut-cell 技术,可以很好的描述任意形状的几何体)
2.4 网格生成
在建立 CFD 问题的时候,用户必须考虑网格的生成。这主要包括以下两个方面:
■ 手动定义网格的相关数据,包括网格 X 、Y 、Z 的坐标。在这个阶段主要考虑网格与几何边界的贴合等问题。
■ 确保获得良好网格主要在于:
■ 可以获得所需的结果精度。其中包括确保网格细密,足以求解所关心的几何特征,并且所获得的结果至少达到“工程精度”的要求。
■ 计算迭代可靠收敛。这与先前所提的“网格质量”有很大关系
对于笛卡儿网格而言,第一个方面是非常方便的。所需的数据仅仅是 X 、Y 、Z 三个方向的网格坐标值。如果一共有 100 ,000 个网格,则每个方向上分别为 46*46*46 ,也就是 138( 46*3 )个数。通常用户可以直接进行设置,但是这还不是最简便的方法。最为简单的方法是用户设定一些参数来控制网格的生成, FloEFD 这种方式。这也有助于经验不丰富的用户进行网格调整,从而获得一个良好的网格质量。
与结构化网格不同,非结构化网格的生成完全是另外一种方式。由于网格排列方面缺少逻辑顺序,必须为每一个网格设置 X、Y、Z 坐标。对于一个 100,000 网格的问题而言,需要设定 300,000 个网格坐标值,很明显这个工作不能通过手动设置来完成。这就意味着需要采用一些准则来实现。最为常用的方法是 Delaunay Triangulation 或 Advancing Front Method。这可以帮助完成第一方面的任务。但是,由于用户对网格生成进行了很少的控制,所以在之后的过程中可能需要对网格进行进一步的调整,从而确保:
■ 网格质量足够好,能获得可靠的收敛解。因为局部的差网格(有时仅仅是一个网格)都会影响到整个求解,可以通过手动调整来解决。
■ 网格必须细密以便在不同流动区域内都能获得足够精度的解。由于内插法无法预计特定流体区域的网格数量。所以需要用户基于自己的经验来调整网格。
由于网格生成的过程中采用了数学准则等方法,所以网格位置的确定可以参考先前的“自动”网格生成。主要考虑的是网格的细密和求解的精度。复杂的网格生成过程和所需时间对于客户而言,后期做网格调整也显得很困难。
此外,这个复杂还包括计算模型的改变。也就是说:当几何模型发生改变时,整个网格生成过程必须重新进行(包括手动调整)。
Dawes 教授(参考 6 )注意到一个重要的问题:对于从 CAD 软件中输出的几何模型几乎都很“脏”,模型虽然经过一定的简化,但是还是容易出现问题。他总结到:网格的生成很有可能失败,对于生成复杂几何模型网格必须很细致。另外需要确保物体表面处的网格,以便更好的求解近壁面处的流动边界层。
Dawes 同时注意到分析和设计之间的区别。分析的目的是为了获得设计性能的直观了解,但设计包括了几何模型的改动。
从设计的角度而言,最重要的一点是:如何快速的对几何模型进行改动和重新生成网格。
总而言之:
■ 适体网格生成时间长,并且需要进行手动调整。
■ 适体网格适合分析使用而不适合设计使用,适体网格用于产品设计时比较困难。
3FloEFD 矩形自适应网格技术
3.1 初始网格
FloEFD 使用了一个八面体( octree )网格。可以进行进一步的网格加密。Cutcell 技术可以用于流体和固体的交接处。
在 FloEFD 的初始网格定义之初,先要构建一个基础网格。通过下图所示的对话框可以完全自动的定义初始网格,当然可以通过去除勾选 “Automatic settings” 来手动定义网格。
初始网格是建立在几乎均匀的笛卡儿基础网格之上。上图对话框中显示的“Level of Initial Mesh”滑动条可以控制基础网格的数量。勾选“Show basic mesh”选项可以在模型中显示基础网格(如图 8 所示)。这个基础网格可以进行加密,从而更好的捕获模型特征。利用图 7 中的网格设置对话框可以获得图 8 所示的基础和初始网格。
通过细化固体周围的基础网格可以得到初始网格,可以通过“Minimum gap size”和“Minimum wall thickness”等选项进行细化。
除了不能细化基础网格之外,“Level of initial mesh”选项实现了很多功能。它确定了基础网格分割的层度和为不同网格细化标准设定参数。FloEFD 对于固体和流体网格有不同的细化等级。小的固体特征、局部曲面和狭长通道都有相关的网格细化等级。“Level of initial mesh”滑动条可以对这些细化等级进行自动的设置,从而自动生成网格。
一旦自动网格生成,用于可以关闭“Automatic settings”选项,并且进行手动调整。可以对网格生成进行控制。
这个初始网格设置会应用到整个求解计算域内。例如:当对狭长通道设定一个细化等级,求解域内所有具有相同特征的通道都会采用这一细化等级。此外,通过一个元件、面、边和点或者一个定义的流体区域,初始网格也可以进行局部的细化。
3.2 求解自适应网格
自适应网格是在求解计算期间根据计算所得结果不断的对网格进行调整。这对于求解之前对流动不甚了解的情况下,很好的捕获流动特征非常有帮助,例如:在高马赫数流动下捕获流体振动。在速度、温度和压力等变化剧烈处网格不细密的情况时也非常有用。
八面体网格可以使网格自适应的过程变得简单。通过分为 8 个小块网格可以细化网格,通过合并8个小块网格可以使网格粗糙。使用 FloEFD 的一个例子(参考 7 )很好的展示了这一点。
这个例子分析的是 2D 突缩-突扩管内的超音速流动。
在两平行壁面的入口处定义了马赫数为 3 ,温度 293.2K 和静压为 1atm 的均匀超音速空气流。由于两个斜振所以收缩部分处流动减弱。收缩部分的网格形状被调整到和入口网格形状一样。
初始网格在壁面处得到了细化,但是这对于捕获振动的特征没有帮助。在求解过程中采用自适应网格对网格进行细化。这不仅仅减少了总的网格数目,而且将网格集中于振动发生的区域。下图显示了初始的网格和最终的自适应网格。
如下图马赫数切面云图所示,自适应网格精确的捕获了急速的流体振动。利用 FloEFD 获得的管道中心处马赫数结果可以与理论解进行比较。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删