Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
差分法の基礎
三好 隆博
広島大学大学院理学研究科
2018年8月20日(月)-24日(金) 千葉大学総合校舎1号館4階情報演習室2宇宙磁気流体・プラズマシミュレーションサマーセミナー
内容
はじめに
差分法
移流方程式の差分法
高次精度風上差分法
はじめに
はじめに
微分方程式
未知関数とその導関数を含む方程式
自然現象などを記述する基礎方程式
( ) ( ) ( ) ( ) ( ) ( )
( ) ,0
,2
,
,,,,,,22
=⋅∇
+−∇=∇⋅+∂∂
+−=∂∂
=
+=+==
u
uuuu ∆ν∆
ερφ∆
σµ
ptΨrVΨ
mtΨi
dtdBtXtX
dtdX
dtdIILIIRtVtrF
dtrdm
はじめに
物理によくでる偏微分方程式
0222
2
2
=+∂∂
+∂∂
+∂∂
+∂∂
∂+
∂∂ F
yfE
xfD
yfC
yxfB
xfA
ρ=∂∂
+∂∂
−双曲型:
(波動方程式)
はじめに
双曲型方程式
線形移流方程式
非粘性Burgers方程式Maxwell方程式Euler方程式理想MHD方程式
微分方程式を計算機で解きたい!
はじめに
微分方程式の世界
無限と連続の世界計算機の世界
有限の0と1の世界連続場の離散化
空間 : x0, x1, ‥ 時間 : t0, t1, ‥実数値 : 0.1, 0.2, ‥
( )ctxf −0
x
( )ni ctxf −0
xix
$ ./a.out0.1000000014901160.100000000000000
program mainimplicit nonereal(8) :: aa = 0.1 ; write(*,*) aa = 0.1d0; write(*,*) a
end program main
はじめに
座標および変数の離散表記法
( )ji,
( )1, +ji
( )1, −ji
( )ji ,1+( )ji ,1−
( )jijiji yxuuyx ,,, , =
x∆
y∆
y
xi 1+i 2+i1−i2−i
j
1+j
2+j
1−j
2−j
はじめに
時間・空間座標および変数の離散表記法
( )ni,
( )1, +ni
( )1, −ni
( )ni ,1+( )ni ,1−
( )ninini txuutx ,,, =
x∆
t∆
t
xi 1+i 2+i2−i
n
1+n
2+n
1−n
2−n
1−i
差分法
微分法
差分法
差分法
( ) ( )x
xfxxfxf
x ∆∆
∆
−+=
∂∂
→0lim
( ) ( )
xff
xxfxxf
xf
ii
ii
i
∆
∆∆
−=
−+=
∂∂
+1
( )xfy =
ix 1+ix1−ix
x∆ x∆
1+if1−if
xxx ii ∆+≡+1
if
ただし、
x
前進差分 という 以上
y
差分法
前進差分の誤差
( ) ( )
( ) ( ) ( ) ( )
−+
∂∂
+∂
∂+=
−+=
∂∂
iii
i
ii
i
xfx
xfxxxfxxf
x
xxfxxf
xf
2
22
!21 ∆∆∆
∆∆
( ) ( )xOxxf
xf i
i
∆=∂
∂−
∂∂
⇒
( ) ( ) ( )222
!2xO
xxfx
xxf ii ∆∆ +
∂∂
+∂
∂=
誤差がΔxの1次に比例
Taylor展開
差分法
中心差分( ) ( ) ( )
( ) ( ) ( )
+∂
∂−
∂∂
+∂
∂−=
+∂
∂+
∂∂
+∂
∂+=
−
+
3
33
2
22
1
3
33
2
22
1
!3!2
!3!2
xxfx
xxfx
xxfxff
xxfx
xxfx
xxfxff
iiiii
iiiii
∆∆∆
∆∆∆
xff
xf ii
i ∆211 −+ −=
∂∂
⇒
( ) ( ) ( )4332
11
!32xO
xxfx
xff
xxf iiii ∆∆
∆+
∂∂
−−
=∂
∂⇒ −+
誤差がΔxの2次に比例
ix 1+ix1−ix
1+if1−if
差分法
1階差分法のまとめ
(1次後退差分)
(1次前進差分)
(2次中心差分)
(2次後退差分)
(4次中心差分)
xff
xf ii
i ∆1−−=
∂∂
xff
xf ii
i ∆−
=
∂∂ +1
xff
xf ii
i ∆211 −+ −=
∂∂
xffff
xf iiii
i ∆1288 2112 −−++ +−+−=
∂∂
xfff
xf iii
i ∆243 21 −− +−=
∂∂
差分法
二階中心差分( ) ( ) ( )
( ) ( ) ( )
+∂
∂−
∂∂
+∂
∂−=
+∂
∂+
∂∂
+∂
∂+=
−
+
3
33
2
22
1
3
33
2
22
1
!3!2
!3!2
xxfx
xxfx
xxfxff
xxfx
xxfx
xxfxff
iiiii
iiiii
∆∆∆
∆∆∆
211
2
2 2x
fffx
f iiii ∆
−+ +−=
∂∂
⇒
( ) ( )42 1122 2 xO
xfff
xxf iiii ∆
∆+
+−=
∂∂
⇒ −+
誤差がΔxの2次に比例
ix 1+ix1−ix
xff
xf ii
i ∆−
=
∂∂ +
+
1
2/1
xff
xf ii
i ∆1
2/1
−
−
−=
∂∂
差分法
誤差の比較
( ) ( )( ) ( )( ) x
x
exxxfexxf
311 2
++=′
+=
log 1
0 |f’
(0)-
f’0|
log10 Δx
移流方程式の差分法
移流方程式の差分法
線形移流方程式
0.const,0 >==∂∂
+∂∂ a
xua
tu
ここで、 とすると、dtdxa ≡
xdtdx
tdtd
dtdu
xu
dtdx
tu
∂∂
+∂∂
≡==∂∂
+∂∂ ,0
に沿って 0=duadtdx
=⇒
移流方程式の差分法
線形移流方程式
x
t adtdx
= :特性曲線 a
x
u
( ) ( )0,, atxutxu −=
移流方程式の差分法
FTCS(Forward-Time Centered-Space)法時間微分: 前進差分
空間微分: 中心差分
( )5.0=ν
振幅が単調に増大!
( )nininini
ni
ni
ni
ni
uuuu
xuua
tuu
111
111
2
02
−++
−++
−−=⇒
=−
+−
ν∆∆
xta ∆∆≡ν : Courant数
移流方程式の差分法
von Neumannの安定性解析厳密解の時間発展
( ) xee ixi ∆≡== ∆ κθθκ ,IIixn
i euκI= :I
πθ =
:κ虚数単位 波数
ix
2πθ =
ix
移流方程式の差分法
von Neumannの安定性解析厳密解の時間発展
θνϕ
θνϕ
−==∴
=≡⇒ −
exactexactg
eegg
,1
II
( ) ( )νθκ −∆− == itax ee i II:g 増幅率ini
ni geguu
θI=≡+1
( ) xee ixi ∆≡== ∆ κθθκ ,IIixn
i euκI= :I :κ虚数単位 波数
移流方程式の差分法
von Neumannの安定性解析FTCS法
無条件不安定
( )nininini uuuu 111 2 −++ −−=
ν
( )θνϕθνθν
sintan,1sin1
sin1122 −−=>+=∴
−=⇒
g
g I
( ) ( )( )( )θν
ν
θ
θθθθ
sin12
11
I
IIII
−=
−−= −+
i
iiii
e
eeege
I
移流方程式の差分法
Lax法(Lax-Friedrichs法)
02
2 11111
=∆−
+∆
+−
−+
−++
xuua
t
uuu ni
ni
ni
nin
i
( )ninini
nin
i uuuuu 1111
1
22 −+−++ −−
+=⇒
ν
移流方程式の差分法
Lax-Wendroff法
2次中心差分 → 2次後退差分: Warming-Beam法
( )32222
2tO
xuta
xutau
n
i
n
i
ni ∆+
∂∂∆
+
∂∂
∆−=
( ) ( )ninininininini uuuuuuu 112
111 2
22 −+−++ +−+−−=⇒
νν
2
22
2
2
,xua
tu
xua
tu
∂∂
=∂∂
∂∂
−=∂∂
( )3222
1
2tO
tut
tutuu
n
i
n
i
ni
ni ∆+
∂∂∆
+
∂∂
∆+=+
( )322 1122
11 ,222
txOx
uuutaxuutau
ni
ni
ni
ni
nin
i ∆∆+∆+−∆
+∆−
∆−= −+−+
移流方程式の差分法
風上差分法
0,011
>=∆−
+∆− −
+
axuua
tuu ni
ni
ni
ni
( ) ( )nininininini uuuuuu −−−−+−=⇒ +−+ 111 2||
2|| νννν
0,011
移流方程式の差分法
von Neumanの安定性解析 Lax法
Lax-Wendroff法
風上差分法
条件付き安定
( )θνϕθνθ tantan,sincos 1222 −−=+=g
( )( ) ( )
−−
−=+−−= −θν
θνϕθνθνcos11
sintan,sincos11 212222g
( )( ) ( )
−−
−=−−−= −θν
θνϕθννcos11
sintan,cos1121 1g
1
移流方程式の差分法
von Neumannの安定性解析増幅率
位相誤差
FTCS法 Lax法
θ
|| g
exactϕϕ
|| g
exactϕϕ
5.0=ν75.0=ν
0.1=ν5.0=ν75.0=ν
Lax-Wendroff法
|| g
exactϕϕ
0.1=ν75.0=ν
5.0=ν
風上差分法 || g
exactϕϕ
0.1=ν75.0=ν
5.0=ν
移流方程式の差分法
CFL(Courant-Friedrichs-Lewy)条件
ix 1+ix1−ix
1+nt
nt
t
x
xta ∆1ν
移流方程式の差分法
数値実験(cos関数)
FTCS法 Lax法
Lax-Wendroff法 風上差分法
( )5.0=ν
移流方程式の差分法
FTCS法
Lax法
風上差分法
Lax-Wendroff法
( ) ( )ninininjninini uuuuuuu 11111 221
2 −+−++ +−+−−=
ν
( )nininini uuuu 111 2 −++ −−=
ν
( ) ( )ninininininini uuuuuuu 11111 222 −+−++ +−+−−=
νν
( ) ( )ninininininini uuuuuuu 112
111 2
22 −+−++ +−+−−=
νν
>
時間1次・空間2次
時間1次・空間1次
時間1次・空間1次
時間2次・空間2次
>
1
移流方程式の差分法
数値実験(階段関数) ( )5.0=ν
FTCS法 Lax法
Lax-Wendroff法 風上差分法
ちょっとまとめ
線形移流方程式に対する様々な差分法を導出した。
FTCS法 Lax法 Lax-Wendroff法風上差分法 など
各差分法にvon Neumannの安定性解析を行った。CFL条件による条件付き安定ただし、FTCS法は絶対不安定
数値実験の結果から・・・
ちょっとまとめ
Lax-Wendroff法 風上差分法
いいとこ取りしたい。
高次精度風上差分法
高次精度風上差分法
高次精度差分法へのいざない
(例)常微分方程式の誤差評価
log10 h
4h∝
2h∝
h∝
log 1
0 |y-
y n|
高次精度風上差分法
保存型差分法(有限体積法)
aufxf
tu
==∂∂
+∂∂ ,0
x
2/1−ix
x∆02/1
2/1
=
∂∂
+∂∂
∫+
−
i
i
x
xdx
xf
tu
( ) ( ) 02/12/12/1
2/1
=−+∂∂
−+∫+
−ii
x
xxfxfudx
ti
i
02/12/1 =−+∗−
∗+ ii
i fftux∆∆∆ ∗+ 2/1if : 数値流束
iu 1+iu1−iu
2/1+ix2/3−ix 2/3+ix
∗+ 2/1if
∗+ 2/1if
高次精度風上差分法
FTCS法
Lax法
風上差分法
Lax-Wendroff法
( ) ( )ninininjninini uuuuuuu 11111 221
2 −+−++ +−+−−=
ν
( )nininini uuuu 111 2 −++ −−=
ν
( ) ( )ninininininini uuuuuuu 11111 22||
2 −+−++ +−+−−=
νν
( ) ( )ninininininini uuuuuuu 112
111 2
22 −+−++ +−+−−=
νν
高次精度風上差分法
保存型FTCS法
保存型Lax法
保存型風上差分法
保存型Lax-Wendroff法
( ) ( )niniiiinini uuafffxtuu +=−
∆∆
−= +∗+
∗−
∗+
+12/12/12/1
1
2,
( ) ( ) ( )ninininiiiinini uuauuafffxtuu −−+=−
∆∆
−= ++∗+
∗−
∗+
+112/12/12/1
1
22,
ν
( ) ( ) ( )ninininiiiinini uuauuafffxtuu −−+=−
∆∆
−= ++∗+
∗−
∗+
+112/12/12/1
1
2||
2,
( ) ( ) ( )ninininiiiinini uuauuafffxtuu −−+=−
∆∆
−= ++∗+
∗−
∗+
+112/12/12/1
1
22, ν
高次精度風上差分法
Godunovの定理 [1959]移流方程式 ut + aux = 0 に対する2次またはそれ以上の高次精度のどのような線形スキームも解の単調性を維持できない
線形スキーム
単調性を維持するためには全ての係数が非負
⇒ 単調スキーム=「1次精度」の風上差分法
const.:1 kk
nkik
ni cucu ∑ ++ =
( )∑∑∑ +++++++++ −=−=−k
nki
nkik
k
nkik
k
nkik
ni
ni uucucucuu 11
111
高次精度風上差分法
風上差分法
単調性を維持する線形スキーム(単調スキーム)
Lax-Wendroff法空間3点、時間1点で最も高次な線形スキーム
非線形スキーム
風上差分法とLax-Wendroff法を非線形結合
ii auf =∗+ 2/1
( )( )
−−+= +
∗+
ni
ni
nii uuuaf 12/1 12
1 ν
( ) ( )
−−+= ++
∗+
ni
nii
nii uuuaf 12/12/1 12
1 Φν 2/1+iΦ : 流束制限関数
高次精度風上差分法
全変動(Total Variation)
ut + ux = 0 の物理的な解の全変動は増加しない
離散系における全変動 [Harten, 1983]
TV n+1 ≤ TV n (TVD条件)を満足するスキームTVDスキーム
∫ ∂∂
≡ dxxuTV
∑ −≡ +i
ni
ni
n uuTV 1
高次精度風上差分法
( ) ( ) ni
ni
ni
ni
ii
iin
ini
ni
ni
uuuur
ruuuu
−−
≡−+
−−=
−−
+
−+−
−
+
1
12/12/1
1
1
,1211
211 ΦννΦνν
( )∗+∗++ −−= 2/12/11 iinini ffxtuu
∆∆
に代入
ni
ni
ni
ni
ni
nin
ini
ni
ni uuuuuu
uuuu
≥≥≤≤⇒≤−−
≤ +−+
−−
+1
11
11
1
or10
niu 1−
niu
1+niu
0>a
niu 1−
niu
1+niu
高次精度風上差分法
( ) ( ) 11211
2110 2/12/1 ≤−+
−−≤ +−
i
ii r
ΦννΦνν
νΦΦ
ν −≤−≤−⇒ +− 1
22 2/12/1
i
ii r
ここで十分条件について考えると、0≤ν≤1なので、
22 2/12/1 ≤−≤− +−i
ii r
ΦΦ
で、これは、以下が満たされれば自動的に満足
20,20 2/12/1 ≤≤≤≤ ++i
ii r
ΦΦ
高次精度風上差分法
20,20 2/12/1 ≤≤≤≤ ++ ri
iΦΦ
2
1
2/1+iΦ
r単調性を維持
1 Lax-Wendroff
00 2/1 =⇒< +ir Φ
Warming-Beam(風上版Lax-Wendroff)
高次精度風上差分法
20,20 2/12/1 ≤≤≤≤ ++ ri
iΦΦ
2
1
2/1+iΦ
r
1
00 2/1 =⇒< +ir Φ
minmod limiter
2次精度
superbee limiter
高次精度風上差分法
流束制限関数の例
( ) ( ) ( )( )2,min,1,2min,0max rrr =Φ
( ) ( )( )rr ,1min,0max=Φ
( ) ( )( )( )2,32,2min,0max rrr +=Φ
( )||1||
rrrr
++
=Φ
minmod limiter:
superbee limiter:
Koren limiter (3次精度):
van Leer limiter:
高次精度風上差分法
MUSCLMonotonic Upwstream-centered Schemes for
Conservation Laws [van Leer, 1979]制限関数付き高次変数補間を用いた有限体積法
高次精度風上差分法
1次精度風上差分法
2/1+ix2/1−ix 2/3+ix2/3−ix 2/5+ix
1+iuiu
2+iu1−iu
( ) ( )ninininii uuauuaf −−+= ++∗+ 112/1 2||
2
∗+ 2/1if
∗− 2/1if
∗+ 2/3if
u
x
高次精度風上差分法
2次精度風上差分法
u
x2/1+ix2/1−ix 2/3+ix2/3−ix 2/5+ix
Riu 2/1+
∗+ 2/1if
∗− 2/1if
∗+ 2/3if
( ) ( )LiRiRiLii uuauuaf 2/12/12/12/12/1 2||
2 ++++∗+ −−+=
Liu 2/1+
Riu 2/3+Liu 2/3+
Riu 2/1−
Liu 2/1−
高次精度風上差分法
MUSCL
u
x2/1+ix2/1−ix 2/3+ix2/3−ix 2/5+ix
∗+ 2/1if
∗− 2/1if
∗+ 2/3if
( ) ( )LiRiRiLii uuauuaf 2/12/12/12/12/1 2||
2 ++++∗+ −−+=
Riu 2/3+Liu 2/3+
Riu 2/1−
Liu 2/1−
Riu 2/1+Liu 2/1+
制限関数によってTVD条件を満足
12/12/11 ++−− ≤≤≤≤ iLii
Rii uuuuu
高次精度風上差分法
MUSCL
( ) ( ) ( ) ( ) ( ) ( ) ( )32
2
21 xO
xxuxx
xxuxxxuxu iiiii ∆+∂
∂−+
∂∂
−+=
( ) ( ) ( ) ( ) ( )222
xOx
xuxxxxu
xxu i
ii ∆+
∂∂
−+∂
∂=
∂∂
ix のまわりでTaylor展開
( ) ( ) ( )222
2
2
xOx
xux
xu i ∆+∂
∂=
∂∂
高次精度風上差分法
MUSCL
( ) ( ) ( ) ( )4222
241 2/1
2/1
xOx
xuxxudxxux
u iix
xii
i
∆+∂
∂∆+=
∆= ∫
+
−
2/12/1 +−
高次精度風上差分法
MUSCL
( ) ( ) ( ) ( )3222
2
1221 xO
xuxxx
xuxxuxu
ii
iii ∆+
∂∂
∆−−+
∂∂
−+=
( ) ( )3222
2/12/1 122xO
xux
xuxuxuu
iiii
Li ∆+
∂∂∆
+
∂∂∆
+=≡ ++
( ) ( )3222
2/12/1 122xO
xux
xuxuxuu
iiii
Ri ∆+
∂∂∆
+
∂∂∆
−=≡ −−
高次精度風上差分法
MUSCL
iii
Li x
uxxuxuu
∂∂∆
+
∂∂∆
+=+ 222
2/1 42κ
31=κ : 3次精度
( )2112
xOxuu
xu ii
i
∆+∆−
=
∂∂ −+
以下を用いると・・・
あとちょっと。
iii
Ri x
uxxuxuu
∂∂∆
+
∂∂∆
−=− 222
2/1 42κ
( )22 1122 2 xO
xuuu
xu iii
i
∆+∆
+−=
∂∂ −+
高次精度風上差分法
MUSCL
( ) ( )iiiiiLi uuuuuu −+
+−−
+= +−+ 112/1 41
41 κκ
( ) ( )112/1 41
41
−+− −+
−−−
−= iiiiiRi uuuuuu
κκ
1−=κ : 2次の完全風上差分0=κ : 2次の風上バイアス差分
31=κ : 3次の風上バイアス差分0=κ : 隣接セル値の代数平均
高次精度風上差分法
MUSCL
( ) ( )iiiiiLi uuuuuu −+
+−−
+= +−+ 112/1 41
41 κκ
( ) ( )112/1 41
41
−+− −+
−−−
−= iiiiiRi uuuuuu
κκ
( ) ( )112/11 41
43
−+++ −−
−−−
=−⇒ iiiiLii uuuuuu
κκ
( ) ( )iiiiiRi uuuuuu −−
−−−
=−⇒ +−−− 1112/1 41
43 κκ
高次精度風上差分法
MUSCL
( )( ) ( )( )iiiiiLi uuruuruu −+
+−−
+= +−+ 112/1 411
41 ΦκΦκ
( )( ) ( )( )112/1 141
41
−+− −+
−−−
−= iiiiiRi uuruuruu Φ
κΦκ
ii
ii
uuuur−
−≡
+
−
1
1 ( )rΦ :(流束)制限関数
( ) ( )rrr 1ΦΦ = の場合、
( )( ) ( )( )iiiRiiiiLi uuruuuuruu −−=−+= +−−+ 12/112/1 21,1
21 ΦΦ
高次精度風上差分法
数値実験(cos関数) ( )5.0=ν
風上差分法 MUSCL (minmod)
MUSCL (van Leer) MUSCL (Koren)
高次精度風上差分法
数値実験(階段関数) ( )5.0=ν
風上差分法 MUSCL (minmod)
MUSCL (van Leer) MUSCL (Koren)
高次精度風上差分法
WENOスキームWeighted Essentially Non-Oscillatory scheme
[Jiang+, 1996]ENOでは滑らかさを指標にして補間関数を選択TVB(Total Variation Bounded)
WENOはENOの重み付き平均で高次精度化ここでは結果だけ
BTV n ≤
高次精度風上差分法
数値実験(cos関数) ( )5.0=ν
風上差分法 MUSCL (Koren)
5th-order WENO3rd-order WENO
高次精度風上差分法
数値実験(階段関数) ( )5.0=ν
風上差分法 MUSCL (Koren)
5th-order WENO3rd-order WENO
まとめ
重要なキーワード幾つおぼえてますか?
風上差分法
CFL条件 / Courant数 von Neumannの安定性解析Godunovの定理TVD / MUSCL / WENO
後半は難しい上に、駆け足になったはずです。(予定)
大丈夫、大事なことは2時限目にもう一度いいます。大丈夫、飯島先生がしっかりと教えてくれます。
一旦おしまい
お疲れ様でした
差分法の基礎第壱限目内容はじめにはじめにはじめにはじめにはじめにはじめにはじめに差分法差分法差分法差分法差分法差分法差分法移流方程式の�差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法移流方程式の差分法ちょっとまとめちょっとまとめ高次精度�風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法高次精度風上差分法まとめ一旦おしまい