よくわかる領域分割法

Report
よくわかる領域分割法
1TE08713M
B4
北川 幸弥
目的
• 有限要素法に用いられる「領域分割法」とは
何かを参考資料をもとに理解する。
• 具体的な問題を解いてみて領域分割法への
理解を深める。
参考資料
領域分割型有限要素法による超並列計算
問題
2 
− 2

−
2 
 2
=1
(Ω内)
=0
( = 1,  = 0)
法線方向成分 = 0 (領域境界上)
有限要素
要素係数マトリックス1 , 2
1
0 −1
1 1 −1 0
1 1
= −1 2 −1 , 2 =
0
1 −1
2
2
0 −1 1
−1 −1 2
要素自由項ベクトル1 , 2
1 1
1 1
1 =
1 , 2 =
1
24
24
1
1
 = 
2 −1
−1 4
0 −1
−1 0
 = 0 −2
0
0
0
0
0
0
0
0
0 −1 0
−1 0 −2
2
0
0
0
4 −2
0 −2 8
−1 0 −2
0 −1 0
0
0 −2
0
0
0
1
2
3
4
 = 5
6
7
8
9
=
0
0
0
0
−1 0
0 −1
−2 0
0
4
2
0
0 −1
−1 0
1
24
2
3
1
3
6
3
1
3
2
0
0
0
0
0
0
0
0
−2 0
0 −1
−1 0
4 −1
−1 2
 = 
2 −1 0 −1 0
0
0
0
−1 4 −1 0 −2 0
0
0
0 −1 2
0
0 −1 0
0
1 −1 0
0
4 −2 0
0
0
=
2 0 −2 0 −2 8 −2 −2 0
0
0 −1 0 −2 4
0 −1
0
0
0
0 −2 0
4 −1
0
0
0 −1 −1 2
0
0
1
2
3
4
= 
5
6
8
9
=
1
24
2
3
1
3
6
3
3
2
結果(前進消去・後退代入)
•
手計算
29
= 1.20833 ⋯
24
31
2 =
= 1.29166 ⋯
24
4
3 = = 1.33333 ⋯
3
23
4 =
= 0.95833 ⋯
24
57
5 =
= 1.1875
48
31
6 =
= 1.29166 ⋯
24
23
8 =
= 0.95833 ⋯
24
29
9 =
= 1.20833 ⋯
24
1 =
• プログラム
Total Matrix is
1.0000 -0.5000 0.0000 -0.5000 0.0000 0.0000 0.0000 0.0000
-0.5000 2.0000 -0.5000 0.0000 -1.0000 0.0000 0.0000 0.0000
0.0000 -0.5000 1.0000 0.0000 0.0000 -0.5000 0.0000 0.0000
-0.5000 0.0000 0.0000 2.0000 -1.0000 0.0000 0.0000 0.0000
0.0000 -1.0000 0.0000 -1.0000 4.0000 -1.0000 -1.0000 0.0000
0.0000 0.0000 -0.5000 0.0000 -1.0000 2.0000 0.0000 -0.5000
0.0000 0.0000 0.0000 0.0000 -1.0000 0.0000 2.0000 -0.5000
0.0000 0.0000 0.0000 0.0000 0.0000 -0.5000 -0.5000 1.0000
Total vector is
0.08333333
0.125
0.04166667
0.125
0.250
0.125
0.125
0.08333333
u[0]= 1.20833e+00
u[1]= 1.29167e+00
u[2]= 1.33333e+00
u[3]= 9.58333e-01
u[4]= 1.18750e+00
u[5]= 1.29167e+00
u[6]= 9.58333e-01
u[7]= 1.20833e+00
領域分割法
()
領域Ω→領域Ω
1
2
3

 = 4
5
6
8
9
 (1)

 (3)

1
= 0
0
0
→ (1)
0
1
0
0
0
0
0
0
0
0
1
0
2
5
1
4



= 2 , (2) = 3 , (3) = 5 , (4) = 6
4
5
8

8
5
6
9
0
0
0
1
0
0
0
0
0
0
0
0
0
0 1
0 ,  (2)  = 0 0
0
0 0
0
0 0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0 0
0 0 0 1 0 0 0 0

= 0 0 0 0 1 0 0 0 , (4) = 0 0
0 0
0 0 0 0 0 0 1 0
0 0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
→
K (1)
 (1) =
()

①
②
④
⑤
1 + 1 −1 −1 0 + 0
1 −1
−1
0
2
=
−1
0
2
2 −1
0 + 0 −1 −1 1 + 1
1
2
 (3) =
2 −1 −1
−1 2
0
−1 0
2
0 −1 −1
1
2
2 −1
−1 2
0 −1
0
−1 , (2) = 1
2
−1
2
0
1
−1 , (4) = 2
2
①
②
④
⑤
2 −1
−1 2
−1 0
0 −1
2 −1
−1 2
−1 0
0 −1
タイプ1
タイプ2
−1 0
0 −1
2 −1
−1 2
−1 0
0 −1
2 −1
−1 2
→ 
 (1)
 (1)
=
1
24
1+1
1
1
=
24 1
1+1
2
1 ,  (2) = 1
24
1
2
()
①
②
④
⑤
2
2
1
1
1 ,  (3) =
(4)
1 ,  = 24
24
1
2
2
2
1
1
2

()
()
→ 領域内部 +領域間境界上
9
1
3
4



(1) = 2 , (2) = 2 , (3) = 5 , (4) = 5
4
5
6

8
5
6
8
2
2
 (1) = 1 ,  (1) = 4 ,  (2) = 3 ,  (2) = 5
5
6
4
5
 (3) = 7 = 0,  (3) = 5 ,  (4) = 9 ,  (4) = 6
8
8
()
同様に、
 (1) =
1
2
 (3) =
 (1) =
(1)
1
0
0
= 0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
2
−1
−1
0
1
2
1
24
−1 −1 0
2
0 −1 , (2) = 1
2
0
2 −1
−1 −1 2
2 −1 0 −1
−1 2 −1 0
0 −1 2 −1
−1 0 −1 2
2
0 −1 −1
2 −1 0
1
0
2 −1 −1
−1 2 −1 , (4) = 2 −1
−1 2
0
0 −1 2
−1 −1 0
2
2
1 ,  (2) = 1
24
1
2
1
2
2 ,  (3) = 1 1 ,  (4) = 1
24
24
1
2
2
0
1 0 0 0
0
0
0 0 0 0
0
0
0 1 0 0
0
0 ,  (2) = 0 0 0 0 , (3) = 1
1
0 0 1 0
0
0
0
0 0 0 1
0
0
0 0 0 0
0
0 0 0 0
0
0
0
0
0
1
0
0
0
2
2
1
1
0
1 0 0 0
0
0 0 0 0
0
0 0 0 0
0 , (4) = 0 0 0 0
0
0 0 0 0
0
0 1 0 0
1
0 0 1 0
0
0 0 0 1

(1)

(2)


(4)
= 1, 
1
1
= −1
2
= 1, 
2
1
= −1
2
(3)
= 0, 
3
= 0
= 1, 
1
= −1
2
(1)
1
(1)
=
12
, 
=
 (3) = 0,  (3) =
1
0
 (1) = 1,  (1) = 0
0
0
0
1
(3)
(3)
 = 0,  = 0
0
0
0 −1 , 
(2)
0 0 , 
4

−1 0 , 
(1)
(3)
−1 0 , 
1
24
1
24
0
1
0
0
0
0
0
1
0
0
0 −1
1 2
=
0
2 −1
2
−1 −1 2
1 2 −1 0
= −1 2 −1
2
0 −1 2
1 2
= −1
2
0
(4)
−1 0
2 −1
−1 2
1 2 −1 −1
= −1 2
0
2
−1 0
2
1
1
1
(2)
(2)
1 ,  = 24 ,  = 24
2
2
1
1
(4)
(4)
1 ,  = 12 ,  = 24
2
0
0
1 ,  (2) = 1,  (2) =
0
0
0
0
0 ,  (4) = 1,  (4) =
0
1
1
0
0
0
0
0
0
1
0
0
2
1
2
2
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
全体の領域間境界 → 部分領域間境界 ()
2
4
 = 5
6
8

→  (1)
(1) 
 (3)

1
= 0
0
0
= 0
0
2
2
4
5
= 4 ,  (2) = 5 ,  (3) = 5 ,  (4) = 6
5
6
8
8
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0

0 ,  (2) =
0
0

0 ,  (4) =
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
 = の分割
領域内部
領域間境界上
インタフェース問題

(1)

(2)
−
−
(1) 
(2) 


(4)
−


(3)
(4) 
(1) −1
(2) −1
−


(1)

(2)
(3) 
(4) −1


1 2
=
0
2
−1
0
2
−1
−1
1 −1 1
−1 − −1 ∙ −1
2
2
2
0
1 2
= −1
2
0
−1
2
−1
0
1 −1 1
−1 −
0 ∙ −1
2
2
2
−1
(3) −1
(4)

(3)
1 2
= −1
2
−1
1 2
= −1
2
0
−1
2
0
−1
2
−1
1 3
0 = −1
4
−2
−1
3
−2
−2
−2
4
1 3
−1 = −2
4
−1
−2
4
−2
−1
−2
3
−2
3
−1
−2
−1
3
−1
0
0
1 2
−1 − 0 = −1
2
2
0
−1
1 0
1
0 − −1 ∙ 0
2
2
2
−1
−1
−1
2
−1
0
−1
2
1 4
−1 = −2
4
−2

(1)

−
(2)
−


(4)
(1) 
(3)
−

 (3)
(2) 
−
(4) 
(1) 




(4) −1
0
1
0
1
0
0

(2) −1
(3) 

1
= 0
0
0
= 0
0
(1) −1
0
0
1
0
1
0
(1)

1 1
1 −1
1
1 2
=
=
1 − −1 ∙ 2 ∙
2
24
2
24 24
2
0
2
(2)
(3) −1

(4)
0
0
0
0
0
0
1 2
1 −1 1
1 5
=
=
1 −
0 ∙
2
24
2
24 48
2
−1
5

(1)
1 2
1 2
=
1 −0=
1
24
24
2
2
1 2
1 0
1
1 2
=
=
1 − −1 ∙ 2 ∙
2
24
2
24 24
1
−1
2
0

0 ,  (2) =
0
0

0 ,  (4) =
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
6 −1 −4 −1 0
0
1 −1 7 −4 0
1
−4 −4 16 −4 −4 =
4 −1 0 −4 6 −1
48
0
0 −4 −1 7
↑
シュアコンプリメント行列
9
8
12
9
8
結果(領域間境界)
•
手計算
31
2 =
= 1.29166 ⋯
24
23
4 =
= 0.95833 ⋯
24
57
5 =
= 1.1875
48
31
6 =
= 1.29166 ⋯
24
23
8 =
= 0.95833 ⋯
24
• プログラム
Total Matrix is
1.5000 -0.2500 -1.0000 -0.2500 0.0000
-0.2500 1.7500 -1.0000 0.0000 0.0000
-1.0000 -1.0000 4.0000 -1.0000 -1.0000
-0.2500 0.0000 -1.0000 1.5000 -0.2500
0.0000 0.0000 -1.0000 -0.2500 1.7500
Total vector is
0.1875
0.16666667
0.2500
0.1875
0.16666667
u[0]= 1.29167e+00
u[1]= 9.58333e-01
u[2]= 1.18750e+00
u[3]= 1.29167e+00
u[4]= 9.58333e-01
結果(領域内部)

(1)

(2)
= 
(1) −1
= 
(2) −1

(1)

− 
(2)
(1)
− 

(2)
(1)

(2)
−1
1 62
0 ∙
46
48
114
=
29
24
0
1 62
−1 ∙
114
48
62
=
4
3
−1
1 114
−1 ∙
62
48
46
=
29
24
1 1
=1∙
− −1
12 2
1 1
= 1∙
− −1
24 2
 (3) = 7 = 0

(4)
= 
(4) −1

(4)
− 
(4)

(4)
1 1
=1∙
− 0
12 2
結果(領域分割法)
•
領域分割法
29
1 =
= 1.20833 ⋯
24
31
2 =
= 1.29166 ⋯
24
4
3 = = 1.33333 ⋯
3
23
4 =
= 0.95833 ⋯
24
57
5 =
= 1.1875
48
31
6 =
= 1.29166 ⋯
24
23
8 =
= 0.95833 ⋯
24
29
9 =
= 1.20833 ⋯
24
• 直接法(基礎式)
29
= 1.20833 ⋯
24
31
2 =
= 1.29166 ⋯
24
4
3 = = 1.33333 ⋯
3
23
4 =
= 0.95833 ⋯
24
57
5 =
= 1.1875
48
31
6 =
= 1.29166 ⋯
24
23
8 =
= 0.95833 ⋯
24
29
9 =
= 1.20833 ⋯
24
1 =
今後に向けて
• インターフェース問題に対するCG法のアルゴ
リズムを理解する。

similar documents