偏微分方程数值模拟常用的方法主要有三种:有限差分方法(FDM)、有限元方法(FEM)、有限体积方法(FVM),本文将对这三种方法进行简单的介绍和比较。 有限差分方法(Finite Difference Methods)是数值模拟偏微分方程最早采用的方法,至今仍被广泛运用。该方法包括区域剖分和差商代替导数两个过程。 具体地,首先将求解区域划分为差分网格,用有限个网格节点代替连续的求解区域。其次,利用Taylor级数展开等方法将偏微分方程中的导数项在网格节点上用函数值的差商代替来进行离散,从而建立以网格节点上的值为未知量的代数方程组。 该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。差商代替导数后的格式称为有限差分格式,从格式的精度来考虑,有一阶格式、二阶格式和高阶格式。从差分的空间离散形式来考虑,有中心格式和迎风格式。对于瞬态方程,考虑时间方向的离散,有显格式、隐格式、交替显隐格式等。 目前常见的差分格式,主要是以上几种格式的组合,不同的组合构成不同的差分格式。差分方法主要适用于结构网格,网格的步长一般根据问题模型和Courant稳定条件来决定。 有限元方法(Finite Element Methods)的基础是变分原理和分片多项式插值。该方法的构造过程包括以下三个步骤。 首先,利用变分原理得到偏微分方程的弱形式(利用泛函分析的知识将求解空间扩大)。其次,将计算区域划分为有限个互不重叠的单元(三角形、四边形、四面体、六面体等)。再次,在每个单元内选择合适的节点作为求解函数的插值点,将偏微分方程中的变量改写成由各变量或其导数的节点值与所选用的分片插值基函数组成的线性表达式,得到微分方程的离散形式。利用插值函数的局部支集性质及数值积分可以得到未知量的代数方程组。 有限元方法有较完善的理论基础,具有求解区域灵活(复杂区域)、单元类型灵活(适于结构网格和非结构网格)、程序代码通用(数值模拟软件多数基于有限元方法)等特点。有限元方法最早应用于结构力学,随着计算机的发展已经渗透到计算物理、流体力学等各个数值模拟领域的广泛应用中。 根据所采用的检验函数(虚位移函数)和插值函数的不同,有限元方法也分为多种计算格式。从检验函数的选择来说,有配置法、最小二乘法和伽辽金法,从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形网格,从插值函数的精度来划分,又分为线性插值函数和高次插值函数等。不同的组合同样构成不同的有限元计算格式。对于有限元方法,其基本思路和解题步骤可归纳为
有限体积法(Finite Volume Methods)又称为控制体积法。其基本思路是:将计算区域划分为一系列互不重叠的控制体,并使每个网格点周围有一个控制体;将待求解的微分方程对每一个控制体积积分,便得出一组离散方程。 该方法的未知量为网格点上的函数值。为了求出控制体积的积分,须假定函数值在网格点控制体边界上的变化规律。从积分区域的选取方法看来,有限体积法属于有限元方法中检验函数取分片常数插值的子区域法;从未知量的近似方法看来,有限体积法属于采用局部近似的离散方法。 有限体积法的基本思路易于理解,能够保持物理量在控制体上的守恒性质,也即离散方程保持了微分方程物理量在控制体满足某种守恒原理的物理意义。这是有限体积法吸引人的优点。此外,在有限体积法中,插值函数只用于计算控制体积的积分,因此可以对微分方程中不同的项采取不同的插值函数。 有限差分方法直观,理论成熟,精度可选。但是不规则区域处理繁琐,虽然网格生成可以使FDM应用于不规则区域,但是对区域的连续性和解的光滑性等要求较高。使用FDM的好处在于易于编程。 有限元方法适合处理复杂区域,精度可选,程序代码具有较强的通用性,适于大规模编程开发和计算。有限体积法适于流体计算,可以应用于非结构网格,适于并行。但是精度最高达到二阶。FVM的优势正逐渐显现出来,FVM在应力应变、高频电磁场方面的特殊的优点正在被人重视。 FVM和FDM在精度和守恒性方面的差别 FVM由积分方程离散,而FDM方法由微分方程直接离散,前者的精度不但取决于积分时的精度,还取决于对导数处理时的精度,一般总体最高具有二阶精度;后者的精度不涉及积分,而是借助Taylor展开利用差商代替导数,可以具有较高阶的精度。前者对于守恒型方程保持守恒性质,而后者不一定具有守恒性。 FVM和FEM的区别 有限元在复杂区域的适应性对有限体积是相同的,而有限容积的守恒性,物理概念明显的这些特点,有限元是没有的。但是有限体积方法在精度方面与有限元方法还有些差距。 FEM和FDM的区别 有限元方法在适应复杂求解区域和对解的光滑性要求上要优于有限差分法,但是在编程和实现上,有限差分方法在效率上占有一定的优势。 本文转自新浪博客举举的博客,封面图片来自互动百科。 |
|