よくわかる領域分割法 1TE08713M B4 北川 幸弥
目的 有限要素法に用いられる「領域分割法」とは何かを参考資料をもとに理解する。 具体的な問題を解いてみて領域分割法への理解を深める。
参考資料 領域分割型有限要素法による超並列計算
− 𝜕 2 𝑢 𝜕 𝑥 2 − 𝜕 2 𝑢 𝜕 𝑦 2 =1 (Ω内) 𝑢=0 (𝑥=1,𝑦=0) 法線方向成分 =0 (領域境界上) 問題 − 𝜕 2 𝑢 𝜕 𝑥 2 − 𝜕 2 𝑢 𝜕 𝑦 2 =1 (Ω内) 𝑢=0 (𝑥=1,𝑦=0) 法線方向成分 =0 (領域境界上)
有限要素 要素係数マトリックス 𝐴 𝑒1 , 𝐴 𝑒2 𝐴 𝑒1 = 1 2 1 −1 0 −1 2 −1 0 −1 1 , 𝐴 𝑒2 = 1 2 1 0 −1 0 1 −1 −1 −1 2 要素自由項ベクトル 𝑓 𝑒1 , 𝑓 𝑒2 𝑓 𝑒1 = 1 24 1 1 1 , 𝑓 𝑒2 = 1 24 1 1 1
𝐾 𝑢 = 𝑓 𝐾 = 2 −1 0 −1 0 0 0 0 0 −1 4 −1 0 −2 0 0 0 0 0 −1 2 0 0 −1 0 0 0 −1 0 0 4 −2 0 −1 0 0 0 −2 0 −2 8 −2 0 −2 0 0 0 −1 0 −2 4 0 0 −1 0 0 0 −1 0 0 2 −1 0 0 0 0 0 −2 0 −1 4 −1 0 0 0 0 0 −1 0 −1 2 𝑢 = 𝑢 1 𝑢 2 𝑢 3 𝑢 4 𝑢 5 𝑢 6 𝑢 7 𝑢 8 𝑢 9 𝑓 = 1 24 2 3 1 3 6 3 1 3 2
𝐾𝑢=𝑓 𝐾= 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 0 0 4 −2 0 0 0 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 0 0 −1 −1 2 𝑢= 𝑢 1 𝑢 2 𝑢 3 𝑢 4 𝑢 5 𝑢 6 𝑢 8 𝑢 9 𝑓= 1 24 2 3 1 3 6 3 3 2
結果(前進消去・後退代入) プログラム 手計算 𝑢 1 = 29 24 =1.20833⋯ 𝑢 2 = 31 24 =1.29166⋯ 𝑢 3 = 4 3 =1.33333⋯ 𝑢 4 = 23 24 =0.95833⋯ 𝑢 5 = 57 48 =1.1875 𝑢 6 = 31 24 =1.29166⋯ 𝑢 8 = 23 24 =0.95833⋯ 𝑢 9 = 29 24 =1.20833⋯ プログラム 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.250 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) = 𝑢 1 𝑢 2 𝑢 4 𝑢 5 , 𝑢 (2) = 𝑢 2 𝑢 3 𝑢 5 𝑢 6 , 𝑢 (3) = 𝑢 4 𝑢 5 𝑢 8 , 𝑢 (4) = 𝑢 5 𝑢 6 𝑢 8 𝑢 9 𝑅 (1) 𝑇 = 1 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 , 𝑅 (2) 𝑇 = 0 0 0 0 1 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 𝑅 (3) 𝑇 = 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 , 𝑅 (4) 𝑇 = 0 0 0 0 0 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 2 1+1 −1 −1 0+0 −1 2 0 −1 −1 0 2 −1 0+0 −1 −1 1+1 ① ② ④ ⑤ タイプ1 タイプ2 𝐾 (1) = 1 2 2 −1 −1 0 −1 2 0 −1 −1 0 2 −1 0 −1 −1 2 , 𝐾 (2) = 1 2 2 −1 −1 0 −1 2 0 −1 −1 0 2 −1 0 −1 −1 2 𝐾 (3) = 1 2 2 −1 0 −1 2 −1 0 −1 2 , 𝐾 (4) = 1 2 2 −1 −1 0 −1 2 0 −1 −1 0 2 −1 0 −1 −1 2
𝑓→ 𝑓 (𝑖) 𝐾 (1) = 1 24 1+1 1 1 1+1 ① ② ④ ⑤ 𝑓 (1) = 1 24 2 1 1 2 , 𝑓 (2) = 1 24 2 1 1 2 , 𝑓 (3) = 1 24 2 1 2 , 𝑓 (4) = 1 24 2 1 1 2
𝑢 (𝑖) → 領域内部 𝑢 𝐼 (𝑖) +領域間境界上 𝑢 𝐵 (𝑖) 𝑢 (𝑖) → 領域内部 𝑢 𝐼 (𝑖) +領域間境界上 𝑢 𝐵 (𝑖) 𝑢 (1) = 𝑢 1 𝑢 2 𝑢 4 𝑢 5 , 𝑢 (2) = 𝑢 3 𝑢 2 𝑢 5 𝑢 6 , 𝑢 (3) = 𝑢 4 𝑢 5 𝑢 8 , 𝑢 (4) = 𝑢 9 𝑢 5 𝑢 6 𝑢 8 𝑢 𝐼 (1) = 𝑢 1 , 𝑢 𝐵 (1) = 𝑢 2 𝑢 4 𝑢 5 , 𝑢 𝐼 (2) = 𝑢 3 , 𝑢 𝐵 (2) = 𝑢 2 𝑢 5 𝑢 6 𝑢 𝐼 (3) = 𝑢 7 =0, 𝑢 𝐵 (3) = 𝑢 4 𝑢 5 𝑢 8 , 𝑢 𝐼 (4) = 𝑢 9 , 𝑢 𝐵 (4) = 𝑢 5 𝑢 6 𝑢 8
同様に、 𝐾 (1) = 1 2 2 −1 −1 0 −1 2 0 −1 −1 0 2 −1 0 −1 −1 2 , 𝐾 (2) = 1 2 2 −1 0 −1 −1 2 −1 0 0 −1 2 −1 −1 0 −1 2 𝐾 (3) = 1 2 2 −1 0 −1 2 −1 0 −1 2 , 𝐾 (4) = 1 2 2 0 −1 −1 0 2 −1 −1 −1 −1 2 0 −1 −1 0 2 𝑓 (1) = 1 24 2 1 1 2 , 𝑓 (2) = 1 24 1 2 1 2 , 𝑓 (3) = 1 24 2 1 2 , 𝑓 (4) = 1 24 2 2 1 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 0 0 0 0 1 0 0 0 , 𝑅 (2) = 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 , 𝑅 (3) = 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 , 𝑅 (4) = 1 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 0 0 0 0 0 1
𝐾 𝐼𝐼 (1) =1, 𝐾 𝐼𝐵 1 = 1 2 −1 −1 0 , 𝐾 𝐵𝐵 (1) = 1 2 2 0 −1 0 2 −1 −1 −1 2 𝐾 𝐼𝐼 (2) =1, 𝐾 𝐼𝐵 2 = 1 2 −1 0 −1 , 𝐾 𝐵𝐵 (2) = 1 2 2 −1 0 −1 2 −1 0 −1 2 𝐾 𝐼𝐼 (3) =0, 𝐾 𝐼𝐵 3 = 0 0 0 , 𝐾 𝐵𝐵 (3) = 1 2 2 −1 0 −1 2 −1 0 −1 2 𝐾 𝐼𝐼 (4) =1, 𝐾 𝐼𝐵 4 = 1 2 −1 −1 0 , 𝐾 𝐵𝐵 (4) = 1 2 2 −1 −1 −1 2 0 −1 0 2 𝑓 𝐼 (1) = 1 12 , 𝑓 𝐵 (1) = 1 24 1 1 2 , 𝑓 𝐼 (2) = 1 24 , 𝑓 𝐵 (2) = 1 24 2 1 2 𝑓 𝐼 (3) =0, 𝑓 𝐵 (3) = 1 24 2 1 2 , 𝑓 𝐼 (4) = 1 12 , 𝑓 𝐵 (4) = 1 24 2 1 1 𝑅 𝐼 (1) =1, 𝑅 𝐵 (1) = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 , 𝑅 𝐼 (2) =1, 𝑅 𝐵 (2) = 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 𝑅 𝐼 (3) =0, 𝑅 𝐵 (3) = 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 , 𝑅 𝐼 (4) =1, 𝑅 𝐵 (4) = 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
全体の領域間境界 𝑢 𝐵 → 部分領域間境界 𝑢 𝐵 (𝑖) 全体の領域間境界 𝑢 𝐵 → 部分領域間境界 𝑢 𝐵 (𝑖) 𝑢 𝐵 = 𝑢 2 𝑢 4 𝑢 5 𝑢 6 𝑢 8 → 𝑢 𝐵 (1) = 𝑢 2 𝑢 4 𝑢 5 , 𝑢 𝐵 (2) = 𝑢 2 𝑢 5 𝑢 6 , 𝑢 𝐵 (3) = 𝑢 4 𝑢 5 𝑢 8 , 𝑢 𝐵 (4) = 𝑢 5 𝑢 6 𝑢 8 𝑅 𝐵 (1) 𝑇 = 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ,𝑅 𝐵 (2) 𝑇 = 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 𝑅 𝐵 (3) 𝑇 = 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 ,𝑅 𝐵 (4) 𝑇 = 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
𝐾𝑢=𝑓の分割
領域内部 領域間境界上
インタフェース問題 𝐾 𝐵𝐵 (1) − 𝐾 𝐼𝐵 (1) 𝑇 𝐾 𝐼𝐼 (1) −1 𝐾 𝐼𝐵 (1) = 1 2 2 0 −1 0 2 −1 −1 −1 2 − 1 2 −1 −1 0 ∙ 1 2 −1 −1 0 = 1 4 3 −1 −2 −1 3 −2 −2 −2 4 𝐾 𝐵𝐵 (2) − 𝐾 𝐼𝐵 (2) 𝑇 𝐾 𝐼𝐼 (2) −1 𝐾 𝐼𝐵 (2) = 1 2 2 −1 0 −1 2 −1 0 −1 2 − 1 2 −1 0 −1 ∙ 1 2 −1 0 −1 = 1 4 3 −2 −1 −2 4 −2 −1 −2 3 𝐾 𝐵𝐵 (3) − 𝐾 𝐼𝐵 (3) 𝑇 𝐾 𝐼𝐼 (3) −1 𝐾 𝐼𝐵 (3) = 1 2 2 −1 0 −1 2 −1 0 −1 2 −0= 1 2 2 −1 0 −1 2 −1 0 −1 2 𝐾 𝐵𝐵 (4) − 𝐾 𝐼𝐵 (4) 𝑇 𝐾 𝐼𝐼 (4) −1 𝐾 𝐼𝐵 (4) = 1 2 2 −1 −1 −1 2 0 −1 0 2 − 1 2 0 −1 −1 ∙ 1 2 0 −1 −1 = 1 4 4 −2 −2 −2 3 −1 −2 −1 3
𝑓 𝐵 (1) − 𝐾 𝐼𝐵 (1) 𝑇 𝐾 𝐼𝐼 (1) −1 𝑓 𝐼 (1) = 1 24 1 1 2 − 1 2 −1 −1 0 ∙2∙ 1 24 = 1 24 2 2 2 𝑓 𝐵 (2) − 𝐾 𝐼𝐵 (2) 𝑇 𝐾 𝐼𝐼 (2) −1 𝑓 𝐼 (2) = 1 24 2 1 2 − 1 2 −1 0 −1 ∙ 1 24 = 1 48 5 2 5 𝑓 𝐵 (3) − 𝐾 𝐼𝐵 (3) 𝑇 𝐾 𝐼𝐼 (3) −1 𝑓 𝐼 (1) = 1 24 2 1 2 −0= 1 24 2 1 2 𝑓 𝐵 (4) − 𝐾 𝐼𝐵 (4) 𝑇 𝐾 𝐼𝐼 (4) −1 𝑓 𝐼 (4) = 1 24 2 1 1 − 1 2 0 −1 −1 ∙2∙ 1 24 = 1 24 2 2 2 𝑅 𝐵 (1) 𝑇 = 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ,𝑅 𝐵 (2) 𝑇 = 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 𝑅 𝐵 (3) 𝑇 = 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 ,𝑅 𝐵 (4) 𝑇 = 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
1 4 6 −1 −4 −1 0 −1 7 −4 0 0 −4 −4 16 −4 −4 −1 0 −4 6 −1 0 0 −4 −1 7 = 1 48 9 8 12 9 8 ↑ シュアコンプリメント行列
結果(領域間境界) プログラム 手計算 𝑢 2 = 31 24 =1.29166⋯ 𝑢 4 = 23 24 =0.95833⋯ 𝑢 5 = 57 48 =1.1875 𝑢 6 = 31 24 =1.29166⋯ 𝑢 8 = 23 24 =0.95833⋯ プログラム 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 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) = 𝐾 𝐼𝐼 (1) −1 𝑓 𝐼 (1) − 𝐾 𝐼𝐵 (1) 𝑢 𝐵 (1) =1∙ 1 12 − 1 2 −1 −1 0 ∙ 1 48 62 46 114 = 29 24 𝑢 𝐼 (2) = 𝐾 𝐼𝐼 (2) −1 𝑓 𝐼 (2) − 𝐾 𝐼𝐵 (2) 𝑢 𝐵 (2) =1∙ 1 24 − 1 2 −1 0 −1 ∙ 1 48 62 114 62 = 4 3 𝑢 𝐼 (3) = 𝑢 7 =0 𝑢 𝐼 (4) = 𝐾 𝐼𝐼 (4) −1 𝑓 𝐼 (4) − 𝐾 𝐼𝐵 (4) 𝑢 𝐵 (4) =1∙ 1 12 − 1 2 0 −1 −1 ∙ 1 48 114 62 46 = 29 24
結果(領域分割法) 直接法(基礎式) 領域分割法 𝑢 1 = 29 24 =1.20833⋯ 𝑢 1 = 29 24 =1.20833⋯ 𝑢 2 = 31 24 =1.29166⋯ 𝑢 3 = 4 3 =1.33333⋯ 𝑢 4 = 23 24 =0.95833⋯ 𝑢 5 = 57 48 =1.1875 𝑢 6 = 31 24 =1.29166⋯ 𝑢 8 = 23 24 =0.95833⋯ 𝑢 9 = 29 24 =1.20833⋯ 領域分割法 𝑢 1 = 29 24 =1.20833⋯ 𝑢 2 = 31 24 =1.29166⋯ 𝑢 3 = 4 3 =1.33333⋯ 𝑢 4 = 23 24 =0.95833⋯ 𝑢 5 = 57 48 =1.1875 𝑢 6 = 31 24 =1.29166⋯ 𝑢 8 = 23 24 =0.95833⋯ 𝑢 9 = 29 24 =1.20833⋯
今後に向けて インターフェース問題に対するCG法のアルゴリズムを理解する。