如何从代码里区分有限体积法和有限差分法

如题所述

第1个回答  2017-09-14
三者各有所长:
有限差分法:直观,理论成熟,精度可选。但是不规则区域处理繁琐,虽然网格生成可以使FDM应用于不规则区域,但是对区域的连续性等要求较严。使用FDM的好处在于易于编程,易于并行。
有限元方法:适合处理复杂区域,精度可选。缺憾在于内存和计算量巨大。并行不如FDM和FVM直观。不过FEM的并行是当前和将来应用的一个不错的方向。
有限容积法:适于流体计算,可以应用于不规则网格,适于并行。但是精度基本上只能是二阶了。FVM的优势正逐渐显现出来,FVM在应力应变,高频电磁场方面的特殊的优点正在被人重视。

比较一下:
有限容积法和有限差分法:一个区别就是有限容积法的截差是不定的(跟取的相邻点有关,积分方法离散方程),而有限差分就可以直接知道截差(微分方法离散方程)。 有限容积法和有限差分法最本质的区别是,前者是根据积分方程推导出来的(即对每个控制体积分),后者直接根据微分方程推导出来,所以前者的精度不但取决于积分时的精度,还取决与对导数处理的精度,一般有限容积法总体的精度为二阶,因为积分的精度限制,当然有限容积法对于守恒型方程导出的离散方程可以保持守恒型;而后者直接由微分方程导出,不涉及积分过程,各种导数的微分借助Taylor展开,直接写出离散方程,当然不一定有守恒性,精度也和有限容积法不一样,一般有限差分法可以使精度更高一些。
当然二者有联系,有时导出的形式一样,但是概念上是不一样的。

至于有限容积法和有限元相比,有限元在复杂区域的适应性对有限容积是毫无优势可言的,至于有限容积的守恒性,物理概念明显的这些特点,有限元是没有的。目前有限容积在精度方面与有限元法有些差距。

有限元方法比有限差分优越的方面主要在能适应不规则区域,但是这只是指的是传统意义上的有限差分,现在发展的一些有限差分已经能适应不规则区域。对于椭圆型方程,如果区域规则,传统有限差分和有限元都能解,在求解效率,这里主要指编程负责度和收敛快慢、内存需要,肯定有限差分有优势。本回答被提问者采纳
相似回答