有限差分法

計算流体力学
(第4回資料)
2014年10月24日
3.一般化座標を用いた差分法
曲線境界の取り扱い法(直交不等間隔格子)
h
3.1 曲線境界の取り扱い法
bh B
O
P
u A  uO  ah
A
ah
u P  uO  h
Q
方法1)境界と格子が一致しなくても領域を長方形格子に分割する方法
u u

 0 ( a  x 2  y 2  b)
x 2 y 2
2
2

h
境界条件
P
x
u ( x, y )  u1 ( x 2  y 2  a)
bh B
O
A
ah
u
x 2
O
1
 2u
 (ah) 2 2
2
x
1
 2u
 ( h) 2 2
2
x
O
O
・・・
・・・
(a)
(b)
1
 2u
u A  au P  (1  a )uO  a (1  a )h 2 2
2
x
2
・・・
 1
1
1 
uA 
u P  uO 

a
(
1
a
)
1
a
a 




2
h2
O

2  1
1
1 
uB 
uQ  uO 

h 2  b(1  b)
1 b
b 
O

 2u
y 2
O
O
同様に
 2u
y 2
Q
u ( x, y )  u2 ( x 2  y 2  b)
u
x
O
h
(a)  (b)a :
y
u
x
h

境界位置に節点をとり直交座標系で差分近似を行う
 2u
x 2
O

2
h2
 1
ab 
1
1
1
uA 
uB 
uP 
uQ 
uO 





a
(
1
a
)
b
(
1
b
)
1
a
1
b
ab


面倒、精度劣る⇒一般化座標を用いる方法(方法2)が主流
曲線境界の取り扱い法(一般化座標)
方法2)変数変換を用いて領域(物理空間)を長方形領域(計算空間)に
写像して解く方法
y
 A
aB
u2
C
bD
u2
aB
x
a
u1
x(r ,  )  r cos  0
y (r ,  )  r sin 
極座標変換
y  r sin 
C
bD
a
計算空間
 2u 1 u 1  2u


0
r 2 r r r 2  2

物理空間
x(r , )  r cos  0
y (r , )  r sin 
 2u 1 u 1  2u


0
r 2 r r r 2  2
境界条件 u (a, )  u1
u (b,  )  u2
B
u1

B
D
r
x
D
2
x  r cos  ( 0  r  , 0    2 )
u2
C b
A
r

 2u  2u

0
x 2 y 2
 A
r
y
x
r
u1
A
物理空間
r ( x, y )  x 2  y 2
 ( x, y )  tan 1
r
y
x
C b
r
u1
y
r ( x, y )  x 2  y 2
 ( x, y )  tan 1
u2
曲線境界の取り扱い法(一般化座標)
2

計算空間
ui , j 1  2ui , j  ui , j 1
(r ) 2

1 ui , j 1  ui , j 1 1 ui 1, j  2ui , j  ui 1, j
 2
0
2r
r
r
( ) 2
周期境界条件
u (r ,0)  u (r ,2 )


u ( r ,0 ) 
u (r ,2 )


長所:格子点を境界上に分布させることができる
境界条件を精度良く課すことができる
1次元の座標変換(一般化座標)
1次元の座標変換(一般化座標)
X  X ( x)
x
x
物理面
 X 
1



x x X (dx / dX ) X
X
x  x( X )
計算面
写像関数


1


dx
dX
X
(
/
)

2
2
2
1

(d x / dX ) 


(dx / dX ) 2 X 2 (dx / dX ) 3 X
2
 

1


x 2 x x (dx / dX ) X
元の微分方程式をXを独立変数とするように変数変換を行う
Xについて等間隔の格子を用いる
x



X
物理面の格子の座標から求まる
写像関数
dx
dX
例)
u
x
2次元の座標変換(一般化座標)
式(1)においてfをxとおき、
式(1)においてfをyとおく
 x 
  1  x x   x x  1  x 
 y

  0   x y   x y  0
 x

x  xi

1
u
(dx / dX ) X
x  xi
x  xi


xi 1  2 xi  xi 1
(X ) 2
ui 1  ui 1 ui 1  ui 1
1

( xi 1  xi 1 ) / 2X 2X
xi 1  xi 1
x   x  1
  
y   x  0
 x   x
 
 x   y
x  y面(物理面)での微係数    面(計算面)での微係数
xi 1  xi 1
d 2x
, 2
2X
dX
2次元の座標変換(一般化座標)
 x
y
 
f
  x f   x f (1)

f
  y f   y f (2)


物理面の格子の座標が与えられていれば良い
(X面でのきざみ幅が現れない)
X
f  f 


x x  x
f  f 


y y  y
x  xi
計算面上で差分化する
1
x  1
 y
1
 

y  0 x x  y
y y
 y 
 x  1  J 
 

x  0  y 

 J 
J  x y  x y
式(2)においてfをxとおき、
式(2)においてfをyとおく
 x

 y  0   y x   y x  0 

 y

  1  y y   y y  1
 y

2次元の座標変換(一般化座標)
 x
y
 
x   y  0
  
y   y  1
 y   x
 
 y   y
1
x  0
1
 
y  1 x x
y y
 y
 y
 
 x 
 x  0  J 
 

x  1  x 
 J 
J  x y  x y
従って式(1), (2)は
計算面で差分近似を行う
y
y
f
1
 f x   x f   x f   f   f   y f  y f x
J
J
J
x
x
f
1
 f y   y f   y f 
  x f  x f f 
f y
J
J
J
物理面での格子の座標がわかれば求まる
参考文献:桑原邦郎・河村哲也「流体計算と差分法」朝倉書店
格子形成法
格子形成法
偏微分方程式法:物理面の格子点の座標を偏微分方程式を解くことにより
求める方法
(楕円型方程式、放物型方程式、双曲型方程式)
例:楕円型方程式
 2  2

  xx   yy  0
x 2 y 2
  0 on AD
  J on BC
   0 ( x, y ) on AB
( x, y ) on CD
   1 (1)
 2  2

  xx   yy  0
x 2 y 2
  0 on AD
  K on BC
   0 ( x, y ) on AB
( x, y ) on CD
  1 x, yを与えて ,を求める問題   ,を与えてx, yを求める問題に変換
格子形成法
式(1),(2)を一組の方程式と考え,独立変数と従属変数の変換を行う

2x
2x
2x


0
2


 2
(3)

2 y
2 y
2 y


0
2


 2
(4)
  x2  y2 ,   x x  y y ,   x2  y2
Poisson方程式(ソース項がある場合)
 2  2
  P ( x, y )

x 2 y 2

 x
2x
2x
2x
x 
0


 J 2  P
Q
2


 2
 
 
 2  2

 Q( x, y )
x 2 y 2

 y
y 
2 y
2 y
2 y
0
Q
 J 2  P


2
 
 2


 
(2)
参考文献:桑原邦郎・河村哲也「流体計算と差分法」朝倉書店