よくわかる領域分割法

Download Report

Transcript よくわかる領域分割法

よくわかる領域分割法
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法のアルゴ
リズムを理解する。