有限差分法

計算流体力学(第2回資料)
離散化解析手法の比較
2014年10月3日
有限差分法
各種離散化解析手法
1) 有限要素法(Finite Element Method; FEM)
2) 有限差分法(Finite Difference Method; FDM)
3) 有限体積法(Finite Volume Method; FVM)
4) その他の手法
境界要素法,個別要素法,粒子法,格子ボルツマン法等
支配方程式
(偏微分方程式)
連立一次方程式
差分近似
有限体積法
支配方程式
(偏微分方程式)
支配方程式の積分形
コントロール
ボリュームで積分
FDM,FVM,FEM等
連立一次方程式
離散化近似(積分、微分、補間)
有限要素法
直接法,反復法
FDMが一般的
有限差分法
特徴:
微分方程式の各微分項を差分近似を用いて離散化する.
格子点で微分方程式を満足する.
支配方程式
(偏微分方程式)
重み付き残差式
(仮想仕事の原理式)
重み付き残差法
連立一次方程式
離散化近似(補間、積分)
有限差分法
構造格子を基本としているため,複雑形状への適用は困難
→一般化座標に基づく方法
非構造格子の物理空間を,構造格子をもつ計算空間に写像し,
計算空間上で一般化座標に変換された支配方程式を差分近似
する方法
格子点に関する連立一次方程式を構成して解く
有限要素法
6
有限体積法
1960年代にLos Alamos研究所において,非構造格子に基づく
流体解析手法として開発
多くの商用流体解析コードに採用されている
節点中心またはセル中心に
コントロールボリュームをとる
節点値を未知数とする近似多項式を用いて,離散化された
重み付き残差式を導き,節点値に関する連立一次方程式を
構成して解く
積分式を離散化(差分近似,中点公式)し,セル節点に関する
連立一次方程式を構成して解く
重み付き残差法
重み関数のとり方
有限差分法では, w   ( x,  )


wL(u )d  L(u )  0 at x   (格子点)
有限体積法では, w  1


wL(u )d   L(u )d  0

有限要素法では, w 


w
wL(u )d  0
8
各種手法の長所・短所
離散化手法
長所
短所
有限差分法 ・精度が明確
・高次精度化が容易
・物理量は必ずしも保存されない
・複雑形状への適用がやや難
有限体積法 ・物理量は保存される
・複雑形状への適用が容易
・高次精度化がやや難
有限要素法 ・複雑形状への適用が容易
・高次精度化が比較的容易
・物理量は必ずしも保存されない
・計算時間が比較的かかる
いずれの手法も,領域型の解法で離散化により得られる連立一次方程式の
係数行列は疎(sparse)で三重対角性(tridiagonal)を有する
・
・
0   u1  ・
    ・
 ・
・
   

0
・
・
・ u j   ・
0
   

・     ・
 ・
 0
・
・ u n  ・
差分法の基礎
差分法の基礎
テーラー展開
u
x
u
u j 1  u j  x
x
u j 1  u j  x
1階微分の公式
u
x
j

j

u j 1  u j 1
2x
中心差分
 2u
x 2
(1)+(2)より
(2)
j
j-1
j
Δx
j+1
uj
x
n 1
Δx
uj
 O((x) 2 )
n
j

uj
uj
 O ( t )
前進差分
(4)より
u
t
n
j
1次精度
u j  u j 1

 O(t )
t
n
j

uj
n-1
n 1
Δt
1次精度
uj
1
 2u
 (t ) 2 2
2
t
n
j
1
 3u
 (t ) 3 3
6
t
n
j
 O((t ) 4 ) (3)
n 1
u
 u j  t
t
n
j
2
1
2  u
 (t )
2
t 2
n
j
3
1
3  u
 (t )
6
t 3
n
j
 O((t ) 4 ) (4)
n
 O((t ) 2 )
2t
中心差分
t
n+1
n 1
Δt
 2u
x 2
t
i, j

 2u
y 2
ラプラス方程式
i, j

ui 1, j  2ui , j  ui 1, j
( x )
2

2次精度
 2u j  u j
n
t
2
n 1
 O((t ) 2 )
ui , j 1  2ui , j  ui , j 1
( y ) 2
if x  y  h
1
(ui 1, j  ui 1, j  ui , j 1  ui , j 1  4ui , j )  0
h2
n 1
2階微分の公式
2
(3)+(4)より  u2 nj  u j
n
n 1
後退差分
u
(3)-(4)より
t
2次精度
n
j
n
 2u  2u

0
x 2 y 2
n
t
n
 O((x) 2 )
差分法の基礎
u
u
t
x 2
2次精度
1階微分の公式
(3)より
u j 1  2u j  u j 1
u
t
 u j  t
差分法の基礎
n 1

時間の離散化に対してもTaylor展開を適用する
u j 1  u j
u
x
(1)-(2)より
(1)
u
 O(x)
x
1次精度
前進差分
u j  u j 1
u
(2)より
 O ( x )
j 
x
x
1次精度
後退差分
(1)より
2階微分の公式
1
 2u
1
 3u
(x) 2 2 j  (x) 3 3 j  O((x) 4 )
j 
2
x
6
x
3
2
1

u
1
4
3  u
2

(

x
)

(

x
)
j
j
j  O (( x ) )
2
x 2
6
x 3
j+1
j
j-1
i-1
i
i+1
0
例題(1)
棒の格子点の温度を中心差分により求めなさい。
d 2u
 0 (1)
dx 2
厳密解
1)基本問題
u=1
u=0
1
d 2u
dx 2
2
2
 0 :
境界条件より
c2  1
3
u3  2u2  u1
0
(x) 2
0  c1  1  c1  1
となるので、
u ( x)   x  1
0  2u2  1
0
(0.5) 2
u2  0.5
式 (1)をxについて2回積分
du
 c1
dx
u  c1 x  c2
u=1
1
u=0
2
3