有限要素法入門 introduction to finite element …emperor.yz.yamagata-u.ac.jp › ~kamitani...

Post on 30-May-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

有限要素法入門

Introduction to

Finite Element Method (FEM)

2

Ⅰ . 2次元 Poisson 問題

問題設定

2D Poisson 問題

(*1)

−u = f in Ω

u = u on ΓD

q = q on ΓN

但し,q ≡ ∂u∂n

,

f : W 上で定義された既知関数,

u : ΓD上の既知関数,

q : ΓN上の既知関数,

n : ∂Ω(= ΓD ∪ ΓN)上の外向き単位

法線ベクトル.

Ω

ΓD

ΓN

n

3

重み付き残差表示

(∗1)⇐⇒ (∗2)

∀w(x) s.t. w|ΓD = 0 :

Ω

w(u + f )dxdy −∫

ΓN

w (q − q) dl = 0

u = u on ΓD

)自明!

)w(x)はΓN上で任意であるから,w|ΓN = 0を満たすように選べば,

Ω

w(u + f )dxdy = 0 . (a)

w(x)は Ω 内で任意性をもつから,

−u = f in Ω (b)

が成り立つ.

 (b) を (*2) の前半部に代入すると,

∀w(x) s.t. w|ΓD = 0 :∫

ΓN

w (q − q) dl = 0

∴ q = q on ΓN          

重み付き残差表示

4

弱形式

恒等式:wu = ∇ · (w∇u) − ∇w · ∇u の両辺をΩ内で領域積分すると,次式を得る.

Ω

wu dxdy =

Ω

∇ · (w∇u) dxdy −

Ω

∇w · ∇u dxdy

=

∂Ω

wq dl −

Ω

∇w · ∇u dxdy (∵ Green’s Theorem)

(∗1)⇐⇒ (∗2)

∀w(x) s.t. w|ΓD = 0 :

Ω

w(u + f )dxdy −∫

ΓN

w (q − q) dl = 0

u = u on ΓD

⇐⇒ (∗3)

∀w(x) s.t. w|ΓD = 0 :

Ω

∇w · ∇u dxdy =

Ω

w f dxdy +∫

ΓN

wqdl

u = u on ΓD ↑

弱形式

5

Ⅱ . 要素分割と近似関数

要素分割

i) Ωを互いに重ならない三角形要素の集合Ω1,Ω2, · · · ,ΩNeで近似:Ω Ne⋃

e=1

Ωe

ii) 節点の番号付け: x1, x2, · · · , xNn

iii) 要素−節点関係: σ(e, g) (g = 1, 2, 3)

Ω1Ω7

Ω6

Ω5

Ω3

Ω4

Ω2

Ω11

Ω9

Ω8

Ω10

Ω13

Ω15Ω14

Ω12

x1

x15

x14

x13x9

x12

x11

x10

x8

x7

x6

x5 x4

x3x2

x19

x18

x17

x16

x20

x22

x21xσ(e,1)

xσ(e,3)

xσ(e,2)

Ωe

6

Γe

xε(μ(e,1))

xε(μ(e,2))

iv) 境界要素の構成:Γ1,Γ2, · · · ,ΓNbe

v) 境界節点の番号付け:①,②,…,Nbn

vi) 境界要素−境界節点関係:µ(e, j) ( j = 1, 2)

vii) 境界節点−節点関係:ε(p) (p = 1, 2, · · · ,Nbn)

Γ1

Γ8

Γ6

Γ7

Γ2

Γ5

Γ4

Γ3

Γ13

Γ10

Γ12

Γ9

Γ11

⑩⑪

③②

7

準備データ

入力データ変 数 意 味

Nn 全節点数Ne 全要素数

xk (k = 1, 2, · · · ,Nn) 第 k 節点の位置ベクトル

σ(e, g) (e = 1, 2, · · · ,Ne; g = 1, 2, 3)第 e 要素 Ωe に属する g 番目の節点

の全体節点番号Nbn 境界節点数Nbe 境界要素数

µ(e, j) (e = 1, 2, · · · ,Nbe; j = 1, 2)第 e 境界要素 Γe に属する j 番目の節点

の境界節点番号ε(p) (p = 1, 2, · · · ,Nbn) 第 p 番目の境界節点の全体節点番号

β(p) (p = 1, 2, · · · ,Nbn) β(p) ≡

0 : xε(p) ∈ ΓD

1 : xε(p) ∈ ΓN

d(p) (p = 1, 2, · · · ,Nbn)第 p 番目の境界節点 xε(p) 上で

与えられた u or q の値

8

誘導データ

【定義】

ν(e) ≡ β(µ(e, 1)) · β(µ(e, 2)) (e = 1, 2, · · · ,Nbe)

α(k) ≡β(p) (∃p : ε(p) = k)1 (otherwise)

(k = 1, 2, · · · ,Nn)

【幾何学的意味】

境界要素の分類

ν(e) =

0 : Γe ∈ ΓD

1 : Γe ∈ ΓN

節点を付加条件により分類

α(k) =

0 (xk ∈ ΓD)1 (otherwise)

9

近似関数

【仮定】三角形要素Ωe内で関数 u(x), w(x) が x, y に関する完全1次多項式 

w(x) =3∑

i=1

wσ(e,i) Li(x),

u(x) =3∑

j=1

uσ(e, j) Lj(x)

但し,wk ≡ w(xk) , uk ≡ u(xk) .

L1(x), L2(x), L3(x):面積座標,1次形状関数

10

∵)u(x) = a + bx + cyとおくと,

uσ(e,k) = u(xσ(e,k)) (k = 1, 2, 3)

⇐⇒

uσ(e,1)uσ(e,2)uσ(e,3)

= Ae

abc

where Ae ≡

1 xσ(e,1) yσ(e,1)1 xσ(e,2) yσ(e,2)1 xσ(e,3) yσ(e,3)

⇐⇒

abc

= A−1

e

uσ(e,1)uσ(e,2)uσ(e,3)

(∵ | det Ae| = 2(area of Ωe) 0)

このとき,u(x) =[1 x y

]

abc

=[1 x y

]A−1

e

uσ(e,1)uσ(e,2)uσ(e,3)

ここで,[L1(x) L2(x) L3(x)

]≡[1 x y

]A−1

e

とおくと,

u(x) =[L1(x) L2(x) L3(x)

]

uσ(e,1)uσ(e,2)uσ(e,3)

=

3∑

j=1

uσ(e, j)Lj(x)

11

1次形状関数の計算法

x∗ ≡[1 x y

]T, ai ≡

[1 xσ(e,i) yσ(e,i)

]T(i = 1, 2, 3)

とおくと,1次形状関数は次式から計算できる.

Li(x) = x∗T a∗i = x∗ · a∗i

但し,a∗i ≡a j × ak

det Ae( (i, j, k) : cyclic ).

∵)ベクトル a∗j の定義式を用いると,

aTi a∗j = δi j ⇐⇒

aT1

aT2

aT3

[a∗1 a∗2 a∗3

]= E i.e. A−1

e =

aT1

aT2

aT3

−1

=[a∗1 a∗2 a∗3

]

上式を Li(x) の定義式に代入して,[L1(x) L2(x) L3(x)

]≡ x∗T A−1

e = x∗T[a∗1 a∗2 a∗3

]=[x∗ · a∗1 x∗ · a∗2 x∗ · a∗3

]

12

Ⅲ . 弱形式の離散化

(∗1)⇐⇒ (∗3)

∀w(x) s.t. w|ΓD = 0 :

Ω

∇w · ∇u dxdy =

Ω

w f dxdy +∫

ΓN

wqdl

u = u on ΓD

左辺第1項

Ω

∇w · ∇u dxdy =Ne∑

e=1

Ωe

∇w · ∇u dxdy

=

Ne∑

e=1

3∑

i=1

3∑

j=1

wσ(e,i)

(

Ωe

∇Li · ∇Lj dxdy)

uσ(e, j) = wT Au

但し,w ≡ [w1,w2, · · · ,wNn ]T ,u ≡ [u1, u2, · · · , uNn ]T

A ≡Ne∑

e=1

3∑

i=1

3∑

j=1

eσ(e,i)eTσ(e, j)

(

Ωe

∇Li · ∇Lj dxdy)

13

右辺第1項

【仮定】三角形要素Ωe内で非同次関数 f(x) が x, y に関する完全1次多項式 

f (x) =3∑

j=1

fσ(e, j) Lj(x)    但し, fk ≡ f (xk).

Ω

w f dxdy =Ne∑

e=1

3∑

i=1

3∑

j=1

wσ(e,i)

(

Ω

Li(x)Lj(x)dxdy)

fσ(e, j) = wT b

但し,b ≡ B f , f ≡ [ f1, f2, · · · , fNn ]T ,

B ≡Ne∑

e=1

3∑

i=1

3∑

j=1

eσ(e,i)eTσ(e, j)

(

Ωe

Li(x)Lj(x) dxdy)

=1

12

Ne∑

e=1

S e

3∑

i=1

3∑

j=1

eσ(e,i)eTσ(e, j) +

3∑

i=1

eσ(e,i)eTσ(e,i)

S e =12|det Ae|

14

右辺第2項∫

ΓN

wq dl =Nbe∑

e=1

ν(e)∫

Γe

wq dl

x ∈ Γe(⊂ ΓN)のとき,

w(x) =2∑

i=1

wε(µ(e,i))φi(ξ), q =2∑

j=1

d(µ(e, j))φ j(ξ)

但し,φi(ξ) ≡1 + (−1)iξ

2(i = 1, 2).

ΓN

wq dl =Nbe∑

e=1

ν(e)2∑

i=1

2∑

j=1

wε(µ(e,i))

(∫

Γe

φiφ j dl)

d(µ(e, j)) = wT c

但し,c ≡ 16

Nbe∑

e=1

ν(e) le2∑

i=1

eε(µ(e,i))

2∑

j=1

d(µ(e, j)) + d(µ(e, i))

le ≡ |xε(µ(e,2)) − xε(µ(e,1))| : Γeの長さ.

← 仮定

15

命題 (*3) の離散形

(∗3)′

∀w s.t. ”α(k) = 0⇒ wk = 0” : wT [Au − (b + c)] = 0and”α(k) = 0⇒ uk = uk”

ベクトル u ≡∑

β(p)=0

dpeε(p) を定義し,

行列 F ≡∑

α(k)=0

ekeTk , U ≡ E − F を導入すれば,

(∗3)′ ⇐⇒

∀v : (Uv)T [Au − (b + c)] = 0andFu = u

⇐⇒

UT [Au − (b + c)] = 0Fu = u

⇐⇒

A∗u = b∗

where A∗ ≡ UT AU + F, b∗ ≡ UT (b + c − Au) + u

16

行列 F, U の基本的性質

F ≡∑α(k)=0

ekeTk ,   U ≡ E − F =

∑α(k)0

ekeTk

【意味】 ベクトル x に対して,Fx =∑α(k)=0

xkek, Ux =∑α(k)0

xkek.

即ち,Fxはα(k) = 0を満たす x の成分のみを抽出してできたベクトルである.

   Uxはα(k) 0を満たす x の成分のみを抽出してできたベクトルである.

【性質】1) F2 = F, U2 = U, FU = UF = O,2) Fx = 0 ∧ Uy = 0⇐⇒ Fx + Uy = 0

∵)1)

F2 =∑α(k)=0

ekeTk

∑α(m)=0

emeTm =

∑α(k)=0

∑α(m)=0

ekeTmδkm =

∑α(k)=0

ekeTk = F

FU = F(E − F) = F − F2 = O, UF = (E − F)F = F − F2 = O .

2) )自明 )Fx + Uy = 0の両辺に左から F, U を掛ければ,それぞれ

Fx = 0, Uy = 0が得られる. 

17

【定理】

1) Fu = 0⇐⇒ ∃x : u = Ux

2) U f = 0⇐⇒ ∃x : f = Fx

∵)

1) 

) 自明.

) Uu = xとおくと,U2u = Ux ∴ Uu = Ux

一方,Fu = 0 ∴ u = Fu + Uu = Ux .

2) 1) と全く同様にして証明できる.

18

Ⅳ . FEM 型連立1次方程式

係数行列 A*の構造(正定値対称帯行列)

【性質1】

行列 A と A*は対称行列である.

∵) A ≡Ne∑

e=1

3∑

i=1

3∑

j=1

eσ(e,i)eTσ(e, j)

(

Ωe

∇Li · ∇Lj dxdy)より,

AT =

Ne∑

e=1

3∑

i=1

3∑

j=1

eσ(e, j)eTσ(e,i)

(

Ωe

∇Li · ∇Lj dxdy)

=

Ne∑

e=1

3∑

j=1

3∑

i=1

eσ(e,i)eTσ(e, j)

(

Ωe

∇Lj · ∇Li dxdy)

(∵ i↔ j )

= A

行列 A が対称であれば,A∗ ≡ UT AU + Fより,行列 A*も対称となる.

19

【性質2】

行列 A は半正定値であり,A*は正定値である.

∵)

(h, Ah) = hT

Ne∑

e=1

3∑

i=1

3∑

j=1

eσ(e,i) eTσ(e, j)

(

Ωe

∇Li · ∇Lj dxdy) h

=

Ne∑

e=1

Ωe

∣∣∣∣∣∣∣∇

3∑

i=1

hσ(e,i)Li(x)

∣∣∣∣∣∣∣

2

dxdy 0

(h, Ah) = 0⇐⇒3∑

i=1

hσ(e,i)Li(x) = C (const.) (e = 1, 2, · · · ,Ne)

⇐⇒ h = C[1 1 · · · 1

]T 0 (∵ Li(xσ(e, j)) = δi j)

従って,行列 A は半正定値である.

(a)

(b)

20

(h, A∗h) = (Uh, AUh) + (Fh, Fh) (∵ F2 = F)

= (Uh, AUh) + ‖Fh‖2 0 (∵ (a))

(h, A∗h) = 0⇐⇒ (Uh, AUh) = 0, Fh = 0

⇐⇒ Uh = C[1 1 · · · 1

]T, Fh = 0 (∵ (b))

⇐⇒ (E − F)h = C[1 1 · · · 1

]T, Fh = 0 (∵ U = E − F)

⇐⇒ h = C[1 1 · · · 1

]T, Fh = 0

⇐⇒ h = 0

従って,行列 A*は正定値である.      

21

【定義】 行列 A に対して,mA ≡ Maxapq =0

|p − q|を A の半バンド幅という.

O

O: 非零要素

:零要素

mA

mA

22

【性質3】集合 S = (p, q)| ∃e∃(i, j) : p = σ(e, i) ∧ q = σ(e, j) に対して,

m∗A ≡ Max

(p,q)∈S|p − q| = Max

e

(Maxp,q

|σ(e, p) − σ(e, q)|)

で定義される m∗A は,不等式 mA m∗

A を満たす.

 m∗Aは擬似半バンド幅と呼ばれる.

∵)T ≡ (p, q)| apq = 0とおく.(p, q) /∈ S と仮定すると,

apq = 0

∵ A ≡

Ne∑

e=1

3∑

i=1

3∑

j=1

eσ(e,i)eTσ(e, j)

(

Ωe

∇Li · ∇Lj dxdy)

i.e. (p, q) /∈ T    ∴ T ⊂ S

∴ (mA =) Max(p,q)∈T

|p − q| Max(p,q)∈S

|p − q| (= m∗A)   

擬似半バンド幅 ← 要素−節点関係: σ(e, g) (g = 1, 2, 3)だけから定まる.

23

x1

x6

x11x10x9

x8x7x5

x4x3x2

x12

x16x13 x15x14

x13

x3

x1x2x11

x5x4x12

x16x15x14

x6

x7x10 x8x9

11

278

88

95

43

299

1212

122 12

(a) mA*= 4 (b) mA*= 12

m∗A ≡ Max

(p,q)∈S|p − q| = Max

e

(Maxp,q

|σ(e, p) − σ(e, q)|)

m∗A を減らせば,FEM での計算に要するメモリ量と CPU 時間を軽減できる.

24

ソルバー

係数行列 A*の性質 ソルバー A∗u = b∗の解法の具体形

正定値対称帯行列帯行列に対する

修正 Cholesky 分解

① A∗ = LDLT

② Ly = b∗

  DLT u = y

正定値対称疎行列不完全 Cholesky 分解付き

共役勾配法 (ICCG 法 )

top related