吾生有涯 学海无涯
析模有界 知识无界

CFD常用的数值求解方法(FDM、FEM及FVM)

内容纲要

利用数值求解偏微分方程的传统方法有有限差分法(Finite Difference Method,FDM)、有限体积法(Finite Volume Method,FVM)和有限元法(Finite Element Method,FEM)。随着数值方法的巨大发展及其在工程领域的渗透,关于这些方法的有效性和通用性以及它们之间的比较的争议性讨论屡见不鲜。关于这些方法的许多说法都源于对其本质缺乏了解,因此,在此有必要就这一问题说几句。

从历史上看,直到上世纪70 年代,有限差分法一直用于流体力学领域,而有限元主要用于结构领域求解解决弹性问题。从物理角度来看,这些问题是不同的,因为流体流动问题是高度非线性的,在纳维-斯托克斯方程中存在对流项,而弹性问题类似于纯粹的扩散传热问题(椭圆方程),一般具有线性特征。因此,有限差分的研究人员自然而然地集中精力,试图掌握对流项的非线性以及压力和速度之间的困难耦合,而这些麻烦在椭圆线性问题中是不会遇到的。

因此,处理不规则几何形状的问题在有限差分领域被抛在了脑后,有限差分法的整个发展过程主要基于正交坐标系,如笛卡尔坐标系、圆柱坐标系和球面坐标系。许多人错误地将有限差分法与正交坐标系联系起来,而事实上,其可以应用于任何类型的网格,甚至是非结构网格,当然,缺点是当网格点与坐标轴不一致时,需要沿坐标轴计算数值导数。因此,将有限差分法用于不规则的非结构网格显然非常麻烦。让我们回想一下,有限差分法的基本原理只是用离散算子替换偏微分方程中的连续算子。作为求解偏微分方程的完整方法,目前有限差分法已不再使用或很少使用。上世纪70 年代末,研究人员在使用有限差分法求解流体流动问题时,由于其对这类物理问题的熟悉程度,转而使用有限体积法。20 世纪 70 年代中期,正交坐标系被与计算域边界重合的广义坐标系所取代,这使得有限体积方法可以求解不规则几何图形中的问题,这是流体流动数值计算的一大进步。直到 2000 年左右,有限体积法一直是市场上用于解决传热和流体流动问题的重要商业软件包中的主流离散化方法。

有限元方法是通过对单元应用加权残差而得出的,从而规避了偏微分方程变式的要求。使用非结构网格一直是该方法的强项。

直到 20 世纪 70 年代初,我们所看到的情况是,有限体积(有限差分)在流体领域具有丰富的经验,但却没有能力处理不规则几何图形,而有限元在处理不规则几何图形方面很熟练,但却难以处理运动方程中的对流项。由于使用一阶单元的经典 Galerkin 方法仅适用于纯粹的扩散问题,因此早期尝试使用传统 Galerkin 方法处理具有强对流的问题并不成功。这相当于在有限差分中使用中心差分,而众所周知,中心差分会在强对流问题中产生振荡。

后来,有限元方法处理流动问题也有了重大改进,其采用了其他插值函数来充分处理对流项。插值函数对扩散效应和对流效应的重要性进行了加权,就像有限体积中采用的混合格式一样,使有限元在流体流动领域取得了重大进展。后来,还设计出了这些函数沿流线发展的表达式,相当于有限体积中使用的偏斜格式,使有限元能够处理流体问题,且能最大限度地减少数值扩散的影响。

另一方面,有限体积法通过在控制体积中进行平衡来建立近似方程,或者等同于以守恒形式对偏微分方程进行积分。这意味着离散方程是微分方程的离散对应方程,因此,无论网格大小如何,都能满足守恒原理。将物理解释与数学联系起来的可能性对开发更强大的数值算法产生了相当大的影响。仅举一例,可以证明有限体积法也是一种加权残差法,即子域法,其中加权函数在所考虑的控制体积中等于 1,而在所有其他体积中等于零。如果方程为守恒形式,则积分结果为控制体积内的属性平衡。

在用于流体流动的商业软件包中,有限体积法仍然是所有具有工业渗透力的软件包所采用的方法,只有一些特殊的软件包除外。这种偏好是基于该方法的稳健性,因为在流体流动中,满足质量、动量、能量和其他离散特性是非常重要的。由于数值方法所追求的是求解一组偏微分方程,而偏微分方程是在点水平上表示属性守恒,因此近似方程应在有限体积水平上表示守恒,这似乎是合乎逻辑的。这样,质量、动量和能量等量就不可能在计算区域内产生或消失。如果仅通过边界条件来满足守恒,则可能会在计算域内产生/消失非物理特性,从而改变局部解,甚至无法确定解。

有限元技术的发展,如混合有限元和非连续 Galerkin,可以在有限元的形式主义中确保守恒原理。特殊单元的构造类似于经典的变量交错网格排列,这是自 20 世纪 70 年代初以来在有限体积法中采用的常规方法。这些扩展有限元方法的缺点是通常会增加自由度,需要额外的存储空间,增加计算时间和实施复杂性。

在有限体积方法中存在重要的变体,因为任何通过控制体积中的平衡获得近似方程的数值计算程序都是有限体积方法。我们将讨论单元中心法和单元顶点法,它们与网格类型(如曲线网格或非结构网格)无关。有限体积法的一个重要变种是使用非结构网格的单元-顶点法,其中控制体积是使用网格生成器创建的部分单元构建的。这种方法处理单元和控制体积,是一种网格灵活性很强的方法。在这一类别中,控制体积由中值法创建的方法被命名为 CVFEM--基于控制体积的有限元方法。

然而,这个名称并不明确,因为它给读者的印象是,这是一种使用控制体积的有限元方法。事实上,它是一种有限体积法,使用有限元中使用的单元作为方法的实体。此外,它还使用与有限元方法中相同的形函数进行插值,并使用通常的逐元素扫描来组装方程系统。因此,这一类方法更恰当的名称或许是 EbFVM - 基于单元的有限体积法,它正确地定义了一种使用单元构建控制体积的有限体积法。

在 FVM 的类别中,我们还可以看到由 Delaunay 三角剖分得到的控制体积 Voronoi 图。在这种情况下,离散化是局部正交的,只需要两个网格点就能正确确定通量。这是一种有趣的方法,但其难点在于网格的生成。本文将简要讨论这种方法。

另一种方法是边界元法(BEM),这种方法在过去十年中得到了广泛应用。它的优点是可以只处理边界离散化,而无需对内部域进行离散化。当可以将算子的影响从域转移到边界时,就可以使用这种方法。虽然这种方法很有吸引力,但还远远不能满足其他方法解决复杂问题的要求。毫无疑问,这是一个值得努力的研究领域,它可以满足某些类别问题的需要。

如今,有限体积和有限元这两种方法都在使用一般的非结构网格解决各种物理问题。如果我们从数学的角度来看,这两种方法并无不同,因为所有数值方法都可以从加权残差法中衍生出来,并采用不同的加权函数。有限体积法的一个优点是,它对任何大小的网格都具有守恒特性,因为网格大小必须独立于物理守恒。不仅在网格尺寸非常细的情况下,而且在解包含截断误差的情况下,都必须始终遵守物理学原理。

最后,我想说的是,有限元和有限差分都没有把控制体积作为一个实体对象来计算,因此它们在离散层面上并不守恒。另一方面,有限体积法在离散层面上是守恒的。值得一提的是,任何数值方法,如果保持一致,都会在网格大小为零时产生相同的结果,也就是说,在点级别上,所有方法的离散误差都必须为零。由于人们总是使用离散网格,因此离散层面的守恒至关重要。

注:本文译自《Fundamentals of Computational Fluid Dynamics》第1.3节。作者:Clovis R. Maliska


(完)

本篇文章来源于微信公众号: CFD之道

赞(2) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《CFD常用的数值求解方法(FDM、FEM及FVM)》
文章链接:https://www.topcfd.cn/37426/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册