24小时热门版块排行榜    

查看: 242  |  回复: 2
当前主题已经存档。
【悬赏金币】回答本帖问题,作者zyz4901806将赠送您 30 个金币

zyz4901806

金虫 (著名写手)

[求助] 30金币求助一般二阶椭圆型方程的有限元求解fortran 源程序[不求助了,请转移此贴]

30金币求助一般二阶椭圆型方程的有限元求解fortran 源程序

由于本人对这些东西不是很熟悉,故希望有一个现成的例子模仿一下,希望得到高人的指点,并希望有详细的解释。要求有整个全过程。要结果,并要源程序代码。

[ Last edited by zyz4901806 on 2008-10-2 at 18:06 ]
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

尐【Peeis】

金虫 (小有名气)

看看吧

不知道对你有没有用
引用回帖:
C:\Documents and Settings\Administrator\桌面\二阶椭圆型方程的有限体积解法.pdf

2楼2008-05-17 08:56:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

尐【Peeis】

金虫 (小有名气)

看看吧

  有限体积法(FVM) 早在70 年代就随着有限元
(FEM) 的出现而诞生了[1 ] 。但直到目前,有限体积
法作为一种求解微分方程近似解的数值方法,其潜
在的优势仍没有被充分认识,在偏微分方程的求解
中仍没有被广泛采用。而有限差分( FDM) 、有限元
(FEM) 等方法在微分方程的数值计算中依然占主导
地位。事实上,FVM同FEM、FDM等方法一样,是一
种行之有效的数值计算方法。FVM与FDM、FEM等
方法的最大区别就在于,FVM将求解域内的计算转
化到边界(控制体边界) 上进行计算,而后二者均是
直接(或间接) 在域内计算。正是基于这一点,FVM
有着明确的物理涵义,并可在很大程度上减少计算
工作量又能满足计算精度要求,因此FVM有广阔的
应用前景。
收稿日期:2000209218
作者简介:陈成军(19752) ,男,硕士生. 研究方向:计算固体力学.
  近几年来,随着人们对有限体积法之控制体性
态的深入研究,它已被成功地用于很多问题的求解,
在热传导、流体问题的分析[4~6 ]中尤为多见,其中代
表性的工作可见文献[5 ] 。但综观现有文献[1~5 ] ,
在应用有限体积法处理不同的问题时,均提出了不
同的技巧,而没有形成像有限元那样很程序化的思
路,其计算精度也有待进一步的提高。本文在现有
文献的基础上,并参照有限元的一些作法,对有限体
积法进行了一定的改进,大大提高了其计算精度,并
建立了一种有限体积法处理问题的一般步骤。
首先介绍了FVM求解问题的基本思想,对现有
FVM算法作了必要改进,再特别针对二阶椭圆型方
程的FVM计算格式作了详细的推导、说明。最后结
合具体的算例展示了有限体积法的计算精度,并同
有限元的计算精度进行了比较,得出了一些普遍、有
益的结论。
© 1994-2008 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
1  基本原理
考虑任意偏微分方程
Aφ = f   (in D) (1)
Bφ = g   (on S) (2)
式中, S 为求解区域D 的边界; A 、B 为微分算子; f 、
g 是已知的函数。若将计算区域划分为若干个小区
域(称之为控制体) , 控制方程[1 ] 在控制体Di 上积
分,再将区域内的积分方程化为边界积分方程,可得
∫Si
Lφd S =∫Di
f dD (3)
对每个控制体都应用式(3) ,并进一步将每个控
制体边界上的积分方程化为线性代数方程。这样经
过数值离散,再加入已知边界条件即可对原问题进
行数值求解。
对于式(3) 右端的域内积分项, 如果控制体
(CV) 取的足够小,可用控制体内某点的值与控制体
体积(或面积) 的乘积近似计算。
从以上的分析可以看出,有限体积法的基本思
想十分明确,物理涵义非常清晰,它表征了一个控制
体上的某种守恒———控制体(CV) 内的量φ与外界
(该控制体以外) 的交换(“流进”或“流出”控制体)
之差值等于该控制体中“源”f 的产生。
1. 1  有限体积法的两种算法
式(3) 中Di 选取的不同可构成不同的有限体积
算法,其中两种常见的选择是
1) 控制体顶点算法(VFVM)
在这种算法中控制体的选取与有限元中单元的
选取是相同的,其具体作法可见文献[3 ,5 ,6 ] 。
2) 控制体形心算法(CFVM)
在有限体积算法中, Di 也可这样确定:取有限
元法中单元的一部分组成。该算法一个最为直接、
容易确定的选择方式是:按体积(或面积) 将有限单
元均分到所含节点的控制体中。控制体形心算法
(CFVM) 比控制体顶点算法(VFVM) 的计算精度
高[1 ] ,且控制体的疏密、大小较易控制,适应性强等
优点。因此文中的算法采用CFVM。
1. 2  一类二阶椭圆型方程有限体积法列式
为便于阐述,此文只考虑二维问题。在以下各
部分推导中均是针对二维的二阶椭圆型方程来进行
的,但分析问题的思路、方法却有着普遍的意义。
二阶椭圆型方程的典型形式
    Δ·( k ( p) Δφ) = f   (in D , p ∈D)
(4)
    k ( p)

5 n
= - q   (on S2) (5)
φ = φ  (on S1) (6)
其中S1 ∪S2 = D , S1 ∩S2 = < 。假设求解区域已
划分为若干个控制体,在每个控制体上式(4) 积分,
并应用Green 公式,可将微分型控制方程转换为其
边界上的积分形式(分量表达)
 ∮S
j
( k ( p)

5 x
d y - k ( p)

5 y
d x) = cj (7)
其中cj 为“源项”由下式给出
cj =∫D
f dD (8)
式(7) 、(8) 中, cj 标识第j 个控制体的“源”项作用; Sj
是第j 个控制体的边界。
对每个控制体,都可作形如式(7) 的处理,并进
一步将式(7) 左端的积分项以相应节点的φ值表达
(具体作法见后详述) ,最后可得到有限体积法的系
统方程:
KΨ = C (9)
式中, K是整体系数矩阵; Ψ 是所有节点的φ组成
的向量; C 是“源”项的作用向量。
如在某个控制体部分边界上有第二类边界条件
式(5) 的作用,则式(7) 左端的积分项可直接计算
 ∮S
j
( k ( p)

5 x
d y - k ( p)

5 y
d x) = - ql (10)
式中, l 是相应边界的边长。第一类边界条件的处
理与有限元中第一类边界条件的处理一样,可作为
系统方程(9) 的约束。
1. 3  有限体积离散
假设根据实际需要,求解区域已被划分成若干
三角形网格或四边形网格(或三角形与四边形的混
合型网格) ,如图1 所示。某个节点所在的控制体是
取所有与该节点相连接的网格内之一点(如形心) 与
该网格相应边上一点(如中点) 所围成的多边形区域
(如图2) 。
  控制体生成后,就可对式(7) 、(8) 进行具体的计
算。在计算中以节点上的φ值为基本未知量,而设
k ( p) 在每个网格内为一定值。控制体任意一条边界
上的φ可用该边界所在网格之节点的φ值表示
φ( p) = Σ
n
i =1
Ni φi (11)
式中, n 是相应网格节点的个数;φi 是节点上的φ
2 四川大学学报(工程科学版) 第33 卷
© 1994-2008 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
图1  求解域网格的划分
Fig. 1  Grid scheme of the solution domain
图2  控制体的生成
Fig. 2  Control volume pattern
值。Ni 是插值基函数,对于不同类型的网格,Νi 的
具体形式应采用不同的技巧[5 ] 。文中借用有限元的
做法,三角形网格中Νi 取为三个面积坐标,而四边
形网格中Νi 选取同有限元中插值模式的选取一样。
计算实例表明,这样的作法计算精度比传统的FVM
算法[3 ,5 ]较高。
  将式(11) 代入式(7) 中,可将式(7) 左端积分项
表达为网格节点上φ值的线性表达。对所有控制
体都作如式(11) 、(7) 等的处理,便可得到式(9) 所
表达的系统方程。在第一类边界条件约束下求解代
数方程组(9) ,便可计算出所有节点上值的分布。
2  实例分析
例1  k 任意分布下圆形区域内φ值的计算
k 的分布是:斜划线网格中k = 4 , 直划线网格
中k = 9 ,其它网格k = 1。边界条件:第一类边界条
件是外圆边界上φ = 100cosφ (如图3) 。
图3  实例1 计算简图
Fig. 3  Calcuation sketch of example 1
  有限体积法计算结果如表1 所示,为便于分析
FVM的计算精度,精确解及该问题的有限元解答同
时列于表中。其中精确解为网格加密4 倍后的有限
元解答。
表1  例1 的计算结果
Tab. 1  Calculation result of example 1
  
节      点
17 18 19 20 21 33 34 35 41
FVM解53. 901 57. 710 50. 210 20. 394 - 11. 521 41. 612 24. 689 - 16. 472 - 12. 720
FEM解53. 692 58. 611 50. 234 20. 179 - 11. 774 41. 887 23. 915 - 17. 087 - 12. 026
精确解54. 194 57. 570 49. 940 20. 047 - 12. 213 42. 232 24. 094 - 17. 118 - 12. 209
  例2  矩形区域内φ值的计算
k 在斜划线网格中为10 , 在直划线网格中为
20 , 其它为1。边界条件为:在边界AD 上φ = 0 ,BC
上φ = 80 ,AB 边和CD 边上

5 n
= 0 (如图4) 。
  精确解为网格加密4 倍后的有限元解答,计算
结果表2。
图4  算例2 计算简图
Fig. 4  Calculation sketch of example 2
第3 期陈成军,等:二阶椭圆型方程的有限体积解法3
© 1994-2008 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
表2  例2 的计算结果
Tab. 2  Calculation result of example 2
  
节      点
24 25 26 27 28 31 32 33 34
FVM解17. 723 32. 962 47. 513 62. 670 63. 529 63. 524 62. 089 46. 510 32. 080
FEM解17. 673 32. 823 47. 513 62. 664 63. 549 63. 542 62. 124 46. 693 32. 074
精确解17. 685 32. 887 47. 425 62. 582 63. 460 63. 451 62. 017 46. 404 31. 967
3  结 论
有限体积法同有限元一样是非常有效的数值计
算手段,但二者相比,却各有千秋:
1) 若式(3) 中的f 为常数,有限体积法同有限元
的精度是相当的,但f 为非常数时,有限体积法的精
度较有限元稍低;
2) 有限体积法将求解域内的计算转化到边界
(控制体边界) 上计算,因此在处理三维问题时,FVM
较FEM有很大潜在的优势;
3) FEM系统方程的带宽较FVM小且对称,因此
占用内存少,计算速度快。但相对来讲, FVM 程序
实现比较容易一些。
文中是用有限体积法求解二阶椭圆型偏微分问
题进行的初步探索。有限体积法的物理涵义清晰明
了,且程序实现较有限元简单得多。随着对有限体
积法研究的逐步深入,可望今后在各类非线性问题
中得到广泛应用,并将会像有限元一样成为求解微
分方程的重要手段。
参考文献:
[1 ] Idelsohn S R , Onate E. Finite volumes and finite elements : two
“good friends”[J ] . Int J Num Meth Engng , 1994 , 37 : 3323~
3341.
[2 ]Fryer Y D. A gontrol volume procedure for solving the elastic
stress2strain equation on an unstructured mesh [J ] . Appl Math
Modelling , 1991 ,15 :639~645.
[ 3 ]Demirdzic I , Muzaferija S. Finite volume method for stress anal2
ysis in complex domains [J ] . Int J Num Meth Engng , 1994 ,
37 : 3751~3766.
[ 4 ]Banaszek J . Comparison of control volume and galerkin finite el2
ement methods for diffusion2type problems [ J ] . Num Heat
Trans , 1989 , 16 : 59~78.
[ 5 ] Peyret R , Taylon T D. Computational methods for fluid flow
[M] . New York : Spring Verlag , 1983.
[6 ]Zhou J G, Goodwill IM. Afinite volume method for steady state
2D shallow water flows[J ] . Int J NumMeth Heat Fluid , 1997 ,
3楼2008-05-17 09:13:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zyz4901806 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见