第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/gotoh_home_page/edu/public_course/text/text_4th.pdf ·...

53
1 中部 CAE 懇話会:「流体伝熱基礎講座」 第4回:流体計算の時間進行法と計算アルゴリズム 名古屋工業大学・大学院工学研究科・機能工学専攻 教授 森西洋平 講義内容: 1.時間進行法 1・1 線形多段解法 1・1・1 アダムス・バシュフォース公式 1・1・2 アダムス・モルトン公式 1・1・3 後退差分公式 1・2 ルンゲ・クッタ法 1・2・1 陽的ルンゲ・クッタ法 1・2・2 陰的ルンゲ・クッタ法 1・3 時間進行法の安定性解析 1・3・1 線形多段解法の絶対安定領域 1・3・2 ルンゲ・クッタ法の絶対安定領域 2.非圧縮性流れの計算アルゴリズム 2・1 差分格子系と MAC 法系統の解法 2・1・1 レギュラ格子を用いる差分法の問題点 2・1・2 MAC 法とスタガード格子 2・1・3 SMAC 法 2・1・4 HSMAC 法(SOLA 法) 2・2 フラクショナル・ステップ法 2・2・1 フラクショナル・ステップ法と分離誤差 2・2・2 DD のフラクショナル・ステップ法 2・3 SIMPLE 法系統の解法 2・3・1 SIMPLE 法 2・3・2 SIMPLER 法 2・3・3 SIMPLEC 法

Upload: others

Post on 02-Jan-2020

37 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

1

中部 CAE 懇話会:「流体伝熱基礎講座」

第4回:流体計算の時間進行法と計算アルゴリズム

名古屋工業大学・大学院工学研究科・機能工学専攻 教授 森西洋平

講義内容:

1.時間進行法

1・1 線形多段解法

1・1・1 アダムス・バシュフォース公式

1・1・2 アダムス・モルトン公式

1・1・3 後退差分公式

1・2 ルンゲ・クッタ法

1・2・1 陽的ルンゲ・クッタ法

1・2・2 陰的ルンゲ・クッタ法

1・3 時間進行法の安定性解析

1・3・1 線形多段解法の絶対安定領域

1・3・2 ルンゲ・クッタ法の絶対安定領域

2.非圧縮性流れの計算アルゴリズム

2・1 差分格子系と MAC 法系統の解法

2・1・1 レギュラ格子を用いる差分法の問題点

2・1・2 MAC 法とスタガード格子

2・1・3 SMAC 法

2・1・4 HSMAC 法(SOLA 法)

2・2 フラクショナル・ステップ法

2・2・1 フラクショナル・ステップ法と分離誤差

2・2・2 DD のフラクショナル・ステップ法

2・3 SIMPLE 法系統の解法

2・3・1 SIMPLE 法

2・3・2 SIMPLER 法

2・3・3 SIMPLEC 法

Page 2: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

2

第1章 時間進行法 目的: 1階常微分方程式に対する時間進行法を理解する. 本章では変数 ( )tu に関する次の1階常微分方程式の初期値問題の時間進行法(数値時間積分法)

を考える.

・( ) ( )( ) ( )0, tttutF

dttdu

>= (1.1)

・ ( ) 00 utu = (1.2) つまり,時間刻み幅 tΔ 毎の時間離散点上の値 ( )ttu Δ+0 , ( )ttu Δ+ 20 , ( )L,30 ttu Δ+ , を,式(1.2)を初期条件として式(1.1)を満足させながら求めたい. 時間進行法を構築するため,まず ( )ttu Δ+ を ( )tu まわりにテイラー展開して式(1.1)を使用する

と次式を得る.

( ) ( ) ( ) ( ) ( ) ( )LL +

Δ++

Δ+

Δ+Δ+=Δ+

n

nn

dttud

nt

dttudt

dttudt

dttduttuttu

!!32 3

33

2

22

( ) ( )( ) ( )( ) ( )( )+

Δ+

Δ+Δ+= 2

232 ,!3

,2

,dt

tutFdtdt

tutdFttuttFtu

( ) ( )( )( ) LL +

Δ+

1

1 ,! n

nn

dttutFd

nt

(1.3)

時間に関する離散点上の値を表現するため,

tnt n Δ= , ttt nn Δ+=+1,

( )nn tuu =

( )( )nnn tutFF ,= の表記を使用する.以降も同様. 最も単純な時間進行法はテイラー展開の右辺第3項

以降を打ち切って構成される陽的オイラー法である.

・nnn Ftuu ⋅Δ+=+1

あるいは

・( ) n

nnF

tuu

−+1

陽的オイラー法では,nt における勾配

nF とnu から

1+nu を計算する. 図 1.1 陽的オイラー法による時間進行

t

u(t)

t n

Δt

Euler explicit

F n

t n+1

u(t)u n

u n+1

Page 3: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

3

式(1.1)と陽的オイラー法をテイラー展開を通して比べると,打ち切誤差の初項が ( )1tO Δ となり,

陽的オイラー法は1次精度しか持たないことがわかる. 時間進行法の精度を向上させる方法として以下がしばしは採用される. 1) 線形多段解法:・

1+nu を計算する際に,時刻nt および

1+nt での情報のみならず,さらに過去

の情報(時刻1−nt ,

2−nt ,・・・)も利用して高次精度化を行う. ・計算の出発点近傍で別の時間進行法を使用する必要があること,および時間 刻み幅の変更が容易でないことに注意が必要. ・代表は, アダムス・バシュフォース(AB)公式,

アダムス・モルトン(AM)公式, 後退差分(BD)公式.

2) 1段解法:・

1+nu を計算する際に,基本的に時刻nt での情報(およびそれから計算される値)

のみを利用して高次精度化を行うもの. ・代表は,ルンゲ・クッタ(RK)法.

以下本章では,線形多段階法としてアダムス・バシュフォース(AB)公式,アダムス・モルトン(AM)

公式,後退差分(BD)公式,また1段階法としてルンゲ・クッタ(RK)法を取り上げ紹介する.また,

これら時間進行法の数値安定性についても示す. 補足:1階常微分方程式を扱う理由

流体運動の支配方程式は一般に偏微分方程式である輸送方程式として記述されるが,なぜ1階

常微分方程式を扱うのかを説明する.例として外力を伴う1次元移流拡散方程式を考える.

・ fxu

xuU

tu

+∂∂

+∂∂

−=∂∂

2

変数 ( )xtuu ,= が独立変数 t と x の双方に依存するのでこの方程式は偏微分方程式である.またよ

り一般的に移流速度 ( )xtUU ,= ,拡散係数 ( )xt,νν = および外力 ( )xtff ,= も時間と空間の双方

に依存するものとする.ここで,空間に等間隔格子( 1Ni0xixi +≤≤= ,Δ )を使用し,離散値

を ( ) ( ) iii utuxtu ==, のように表現し,空間2階微分を2次精度中心差分で近似する.

・ ( )Nifx

uuuxuu

Udt

dui

iiii

iii

i ≤≤+Δ

+−+

Δ−

−= −+−+ 1,2

2 21111 ν

空間離散化後の変数は ( )tuu ii = なので偏微分が常微分に変わる.さらに変数を

[ ]TNuuu ,, ,21 L=u とベクトル表記し,端点 1,0 += Ni に対する境界条件も含めて上式を書き直

すと次の離散システム方程式を得る.

・( ) ( ) ( ) ( ) ( )( )ttFtttA

dttd ubuu ,=+=

( )tA は差分の係数を要素とする ( )NN × の行列, ( )tb は外力と境界条件を含むベクトルである.

このように流体運動の支配方程式を空間離散化した後に変数をベクトル表記すると,空間離散化

後の時間発展方程式は基本的に式(1.1)の形となる.空間多次元の場合も同様である.なお,離散

システム方程式の変数はベクトルu ,式(1.1)の変数はスカラーu であるが,時間進行法の構成に

違いは生じない.

Page 4: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

4

1・1 線形多段階法 ( )1+N 段の線形多段階法(Linear multi-step methods)は一般に次式で記述される.ただし

01 ≠α .

・ ∑ ∑=Δ −= −=

++1 11Nj Nj

jnj

jnj Fu

tβα

特に, 11 =α , 10 −=α , 01 =β , ( ) 01 =−≤jjα とする次の時間進行法はアダムス・バシュフ

ォース公式(Adams -Bashforth formula)と呼ばれる陽解法( 01 =β )となる.

・( ) ( )L+++=

Δ− −

−−

+2

21

10

1nnn

nnFFF

tuu βββ アダムス・バシュフォース公式

図 1.2 アダムス・バシュフォース公式による時間進行

また, 11 =α , 10 −=α , 01 ≠β , ( ) 01 =−≤jjα とする次の時間進行法はアダムス・モルトン

公式(Adams -Moulton formula)と呼ばれる陰解法となる.

・( ) ( )L++++=

Δ− −

−−

−+

+2

21

101

1

1nnnn

nnFFFF

tuu ββββ アダムス・モルトン公式

図 1.3 アダムス・モルトン公式による時間進行

t

u(t)

t n

Δt

Adams–Bashforth

F n

t n+1

u(t)

u n

u n+1

t n–1

F n–1

t n–2

F n–2

ΔtΔt

t

u(t)

t n

Δt

Adams–Moulton

F n

t n+1

u(t)

u n

u n+1

t n–1

F n–1

t n–2

F n–2

ΔtΔt

F n+1

Page 5: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

5

さらに, 01 ≠α , 11 =β , ( ) 00 =≤jjβ とする次の時間進行法は後退差分公式(Backward difference formula)と呼ばれる.後退差分公式も陰解法である.

・( ) 1

110

11 +

−−

+

+++ nnnn

Ft

uuu Lααα 後退差分公式

図 1.4 後退差分公式による時間進行

以下でそれぞれに対する4次精度までの公式を示す.

t

u(t)

t n

Δt

Backward–difference

t n+1

u(t)

u n

u n+1

t n–1t n–2

ΔtΔt

F n+1

u n–1

u n–2

Page 6: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

6

1・1・1 アダムス・バシュフォース公式 時間1次精度から4次精度までのアダムス・バシュフォース(AB)公式は以下のとおりである.

・( ) n

n1nF

tuu

=−+

Δ 陽的オイラー法(AB1)

・( ) ( )1nn

n1nFF3

21

tuu −

+−=

−Δ

AB2

・( ) ( )2n1nn

n1nF5F16F23

121

tuu −−

++−=

−Δ

AB3

・( ) ( )3n2n1nn

n1nF9F37F59F55

241

tuu −−−

+−+−=

−Δ

AB4

1次精度の公式(AB1)は陽的オイラー法である.特に精度が明示されていない場合,流体計算

では2次精度の公式(AB2)をアダムス・バシュフォース法と称する場合が多い.

補足:AB 公式の導出

AB 公式を,

・( ) ( ) 02

21

10

1=+++−

Δ− −

−−

+

Lnnnnn

FFFt

uu βββ

とおき,時刻nt まわりのテイラー展開,

・( )

L+Δ+Δ+Δ+=Δ

−+3

3

32

2

21

241

61

21 t

dtFdt

dtFdt

dtdFF

tuu

nnnn

nn

・ ( ) ( ) ( ) L+Δ−Δ+Δ−=− 33

32

2

2

61

21 tq

dtFdtq

dtFdtq

dtdFFF

nnnnqn

, L,2,1,0=q

から,AB 公式が指定した時間精度(2次精度ならば )( 2tO Δ )で近似されるように係数 0β , 1−β ,

2−β ,・・・を定める.例として2次精度アダムス・バシュフォース法(AB2)を取り上げる.

・( ) 01

10

1=−−

Δ− −

+nn

nnFF

tuu ββ

AB2の係数 0β , 1−β を定めるためテイラー表を利用する.

( )

1111

1

00

1

22

2

210061

211/

−−−−

−+−−

−−

+++Δ−

ΔΔ

ββββ

ββn

n

nn

nnn

F

F

tuu

tdt

FdtdtdFF

)( 0tO Δ と )( 1tO Δ の列それぞれの係数の合計を0とする2つの条件から,係数 0β , 1−β に対する

連立方程式が得られる.

Page 7: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

7

⎪⎩

⎪⎨⎧

−=

=+

21

1

1

10

β

ββ

これを解き,23

0 =β ,21

1 −=−β を得る.これは AB2公式を与える.

( ) ( )1

13

21 −

+

−=Δ

− nnnn

FFt

uu

なお,テイラー表の3列目(O(Δt2))の合計は AB2公式の打ち切り誤差の初項,

)(125

21

61 22

2

22

2

2

1 tOtdt

Fdtdt

Fdnn

Δ=Δ=Δ⎟⎠⎞

⎜⎝⎛ −= −βε ,

を与える.

補足:陽解法による計算

陽解法は既知量の単純代入計算のみで時間進行が行えるので計算コードの作成が容易であり,

また陰解法に比べて時間ステップあたりの計算量が非常に少なくて済む.例えば AB2 は実際には

上式を変形した次の形で使用される.

・ ( )1nnn1n FF32tuu −+ −+=

Δ

これは既知量(時刻 nt 以前の量)の単純代入計算のみで未知量 1nu + が得られることを意味し,1

時間ステップの進行に繰り返し計算を必要としない.このような時間進行法は陽解法と呼ばれる.

Page 8: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

8

1・1・2 アダムス・モルトン公式 時間1次精度から4次精度までのアダムス・モルトン(AM)公式は以下のとおりである.

・( ) 1n

n1nF

tuu +

+=

−Δ

陰的オイラー法(AM1)

・( ) ( )n1n

n1nFF

21

tuu

+=− +

+

Δ クランク・ニコルソン法(AM2)

・( ) ( )1nn1n

n1nFF8F5

121

tuu −+

+−+=

−Δ

AM3

・( ) ( )2n1nn1n

n1nFF5F19F9

241

tuu −−+

++−+=

−Δ

AM4

1次精度の公式(AM1)は陰的オイラー法であり,2次精度の公式(AM2)は通常クランク・ニ

コルソン(Crank-Nicolson, CN)法と呼ばれる.AM 公式は 1nu + の値を得るために ( )1n1n uFF ++ =を必要とするが,このような時間進行法は陰解法と呼ばれる. 補足:AM 公式の導出

AM 公式を,

・( ) ( ) 01

101

1

1=+++−

Δ− −

−+

+

Lnnnnn

FFFt

uu βββ

とおき,時刻nt まわりのテイラー展開,

・( )

L+Δ+Δ+Δ+=Δ

−+3

3

32

2

21

241

61

21 t

dtFdt

dtFdt

dtdFF

tuu

nnnn

nn

・ L+Δ+Δ+Δ+=+ 33

32

2

21

61

21 t

dtFdt

dtFdt

dtdFFF

nnnnn

・ ( ) ( ) ( ) L+Δ−Δ+Δ−=− 33

32

2

2

61

21 tq

dtFdtq

dtFdtq

dtdFFF

nnnnqn

, L,2,1,0=q

から,AM 公式が指定した時間精度(2次精度ならば )( 2tO Δ )で近似されるように係数 1β , 0β ,

1−β ,・・・を定める.例としてクランク・ニコルソン法(AM2)を取り上げる.

・( ) 00

11

1=−−

Δ− +

+nn

nnFF

tuu ββ

AM2の係数 1β , 0β を定めるためテイラー表を利用する.

( )

0021

61

211/

00

1111

1

1

22

2

ββ

ββββ

−−

−−−−

+++Δ−

ΔΔ

+

n

n

nn

nnn

F

F

tuu

tdt

FdtdtdFF

Page 9: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

9

)( 0tO Δ と )( 1tO Δ の列それぞれの係数の合計を0とする2つの条件から,係数 1β , 0β に対する

連立方程式が得られる.

⎪⎩

⎪⎨⎧

=

=+

21

1

1

01

β

ββ

これを解き,21

01 == ββ を得る.これはクランク・ニコルソン法(AM2)を与える.

( ) ( )nn

nnFF

tuu

+=Δ

− ++

11

21

なお,テイラー表の3列目(O(Δt2))の合計はクランク・ニコルソン法の打ち切り誤差の初項,

)(121

21

61 22

2

22

2

2

1 tOtdt

Fdtdt

Fdnn

Δ=Δ−=Δ⎟⎠⎞

⎜⎝⎛ −= βε ,

を与える.

補足:陰解法による計算

例えばクランク・ニコルソン法(AM2)は実際には上式を変形した次の形で使用される.

・ ( ) ( )nnn1n1n1n utF2tuutF

2tu ,, ΔΔ

+=− +++

右辺は既知量であるが左辺は未知量 1nu + を含む関数であり,上式を満足する 1nu + を特定するため

に通常繰り返し計算が必要となる.

Page 10: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

10

1・1・3 後退差分公式 時間1次精度から4次精度までの後退差分(BD)公式は以下のとおりである.

・( ) 1n

n1nF

tuu +

+=

−Δ

陰的オイラー法(BD1)

・( ) 1n

1nn1nF

t2uu4u3 +

−+=

+−Δ

BD2

・( ) 1n

2n1nn1nF

t6u2u9u18u11 +

−−+=

−+−Δ

BD3

・( ) 1n

3n2n1nn1nF

t12u3u16u36u48u25 +

−−−+=

+−+−Δ

BD4

1次精度の公式(BD1)は陰的オイラー法である.これら後退差分公式はギアー(Gear)法と呼

ばれることもある.BD 公式も陰解法である. 補足:BD 公式の導出

BD 公式を,

・( )

012

21

101

1 =−Δ

++++ +−

−−

−+

nnnnn

Ft

uuuu Lαααα

とおき,時刻1+nt まわりのテイラー展開,

・ ( ) ( )[ ] ( )[ ] L+Δ+−Δ++Δ+−=+++

+− 31

3

32

1

2

211 1

611

211 tq

dtudtq

dtudtq

dtduuu

nnnnqn

( ) ( )[ ] ( )[ ] L+Δ+−Δ++Δ+−=++

++ 31

2

22

111 1

611

211 tq

dtFdtq

dtdFtqFu

nnnn

, L,2,1,0=q

から,BD 公式が指定した時間精度(2次精度ならば )( 2tO Δ )で近似されるように係数 1α , 0α ,

1−α , 2−α ,・・・を定める.例として2次精度後退差分公式(BD2)を取り上げる.

・( )

011

101

1 =−Δ

++ +−

−+

nnnn

Ft

uuu ααα

BD2の係数 1α , 0α , 1−α を定めるためテイラー表を利用する.

00106822/61

21/

000/

1

11111

1

00000

11

1

21

2

211

1

−−

−−+Δ

−+−+Δ

ΔΔΔ

+

−−−−−

+

+++

+

n

n

n

n

nnn

n

F

tu

tu

tu

tdt

FdtdtdFF

tu

ααααα

ααααα

αα

Page 11: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

11

)( 1−ΔtO , )( 0tO Δ および )( 1tO Δ の列それぞれの係数の合計を0とする3つの条件から,係数 1α ,

0α , 1−α に対する連立方程式が得られる.

⎪⎩

⎪⎨

=+−=+=++

04120

10

10

101

αααα

ααα これを解き,

23

1 =α , 20 −=α ,21

1 =−α を得る.

これは BD2公式を与える.

( ) 1

11

243 +

−+

+− nnnn

Ft

uuu

なお,テイラー表の4列目(O(Δt2))の合計は BD2公式の打ち切り誤差の初項,

( )

)(31

68 22

1

2

22

1

2

210 tOt

dtFdt

dtFd

nn

Δ=Δ−=Δ+

−=++

−ααε ,

を与える.

Page 12: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

12

1・2 ルンゲ・クッタ法 式(1.1)を時間進行するための s 段ルンゲ・クッタ(Runge-Kutta)法(RK 法)の一般公式は

次式で与えられる.

( ) ( )

( )⎪⎪⎩

⎪⎪⎨

Δ+Δ+=

≤≤Δ+Δ+=

=

+

=s

i

ii

ni

nn

jj

ns

jij

ni

utctFbtuu

siutctFatuu

1

)(1

)(

1

)(

,

1,, (1.2.1)

ただし,係数に対し

・ ( )siacs

jiji ≤≤= ∑

=1,

1 (1.2.2)

の条件を与える. 係数 bi,ci,および aij は要求精度を満たすように式(1.1)のテイラー展開との比較から決定され

る.RK 法の係数は次のブッチャー配列(Butcher tableau)で表現すると便利である.

s

sssss

s

s

bbbaaac

aaacaaac

L

L

MOMMM

L

L

21

21

222212

112111

(1.2.3)

なお, ij ≥ に対して 0=ija とするものを(陽的)RK 法と呼ぶ.s 段(陽的)RK 法の到達可

能精度 ( )sp は次表となることが知られている.

( ) ( ) 277665443211010987654321

−≤≥

sspspss

精度と計算量の兼ね合いからは4段4次精度公式が最も効率が良いことがわかる. また, ij > に対して 0=ija とするものを半陰的 RK 法と呼ぶ.s 段半陰的 RK 法の到達可能精

度は ( ) ( )1+= ssp となることが知られている.さらに,ある ij > について 0≠ija のものを陰的

RK 法と呼ぶが,s 段陰的 RK 法の到達可能精度は ( ) ssp 2= である. 補足:係数に対する条件式(1.2.2)に対しての必然性はないが,このように設定すると扱い易い形

となるので通常この条件を加える.また,常微分方程式の数値解法の教科書における RK 法の一

般公式は式(1.2.1)よりも次式によるものが多い.

( )

⎪⎪⎩

⎪⎪⎨

Δ+=

≤≤⎟⎟⎠

⎞⎜⎜⎝

⎛Δ+Δ+=

=

+

=s

iii

nn

s

jjij

ni

ni

Kbtuu

siKatutctFK

1

1

11,,

しかしここでは,計算流体力学への応用における明快性から式(1.2.1)を一般公式として採用する.

Page 13: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

13

1・2・1 陽的ルンゲ・クッタ法

陽的 RK 法は ij ≥ に対して 0=ija と設定するものであり,s 段陽的RK法に対するブッチャー

配列は以下となる.

ss

sssss

bbbbaaac

aacac

121

121

32313

212

0

0000000

L

L

MOOMMM

L

LL

LLL

この場合( 01 =c として), ・

( ) ( )sitctt ini ≤≤Δ+= 1,

・( ) ( ) ( )( ) ( )siutFF iii ≤≤= 1,,

と記述すると,s段陽的 RK 法は次のように表現できる(更新方式).

( ) ( )

( ) ( ) ( ) ( )

( )⎪⎪⎪

⎪⎪⎪

Δ+=

≤≤Δ+=+=

==

=

+

=s

i

ii

nn

ini1i

j

jij

ni

nn

Fbtuu

sitcttFaΔtuu

ttuu

1

1

1

11

2,,

,

なおこの公式から, ic は i 段目の計算時点での t から tt Δ+ の間の到達割合いを意味することがわ

かる.以下4次精度までの陽的RK法の公式の具体例を挙げる. まず,陽的オイラー法は1段1次精度陽的 RK 法(RK1)と見なすことができ,対応するブッチ

ャー配列と計算式は

100 陽的オイラー法(RK1)

・⎪⎩

⎪⎨⎧

⋅Δ+=

==+ )1(1

)1()1( ,

Ftuu

ttuunn

nn

となる.これが陽的オイラー法

nnn Ftuu ⋅Δ+=+1

と一致することは容易に理解できる.

Page 14: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

14

2段2次精度陽的 RK 法(RK2)

2段陽的 RK 法の一般形は次式で与えられる.

( ) ( )

( ) ( ) ( )

( ) ( )( )⎪⎩

⎪⎨

++=Δ+=⋅+=

==

+ 22

11

12

2121

2

11

,,

FbFbΔtuutcttFaΔtuu

ttuu

nn

nn

nn

ここで α=2b を自由パラメータに選ぶと,2段2次精度陽的RK法(RK2)に対する係数のブッチ

ャー配列は以下で与えられる.

αα

αα−

=1

0)2/(1)2/(1000

0000

21

212

bbac RK2 の一般係数(α は自由パラメータ)

特に, 1=α の場合を修正オイラー法, 21 /=α の場合を Heun 法(改良オイラー法)と呼ぶ.また

43 /=α の場合は Ralston の最適公式である. 修正オイラー法( 1=α ) Heun 法(改良オイラー法, 21 /=α ) Ralston の最適公式( 43 /=α )

1002/12/1000

2/12/1011000

4/34/103/23/2000

図 1.5 RK2(修正オイラー法)による時間進行

t

u(t)

t n t n+1

RK2

un+1

u(2)=

u(1)

un

t(2)

t(1)

=

F (1)F (2)

Δt/2

u(t)

(α=1, Modified Euler)

Δt/2

Page 15: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

15

補足:RK2の係数

まず ( )( )tutFF ,= の時間微分は,

Fdtdu

= , DFdt

ud2

2= , ( ) u

23

3FDFFD

dtud

+= , ( ) ( ) ( ) u2

uu23

4

4DFDF3FDFFFDFD

dtud

+++=

と書ける.ただし ( )( )tutFF ,= , uFFu ∂∂= / ,および

u

Ft

D∂∂

+∂∂

= , 2

22

2

2

22

uF

utF2

tD

∂+

∂∂∂

+∂

∂= ,

3

33

2

32

2

3

3

33 33

uF

utF

utF

tD

∂+

∂∂

∂+

∂∂

∂+

∂=

とする.これより, ( )ttu Δ+ のテイラー展開は次式で記述される.

( ) ( ) ( )[ ]uFDFFDtDFttFtuttu +Δ

+Δ+=Δ+ 232

!32

( ) ( ) ( )[ ] L++++Δ

+ DFDFFDFFFDFDtuu 3

!4223

4

次に,RK2の一般公式における

)1(F ,)2(F を tt n = および ( )tuu n = まわりにテイラー展開

すると次式を得る. FF =)1( ( )( ))1(

212)2( , FtatutctFF Δ+Δ+=

L+⎟⎠⎞

⎜⎝⎛

∂∂

+∂∂Δ

+⎟⎠⎞

⎜⎝⎛

∂∂

+∂∂

Δ+= Fu

Fat

ctFu

Fat

ctF2

212

2

212 2

これをRK2の時間進行の式, ( ))2(

2)1(

11 FbFbtuu nn +Δ+=+

,に代入すると,RK2は ( ) ( ) ( ) ( ) L++Δ++Δ+=Δ+ ut FFabFcbtFbbttuttu 21222

221

の計算を行っていることに対応する.ただし tFFt ∂∂= / である.これを ( )ttu Δ+ のテイラー展開

と比較して ( )2tO Δ まで係数を一致させ,さらに式(1.2.2)の条件も加えると,RK2 の係数に対する

条件式を得る. ・ 212 ac = ・ 121 =+ bb ・ 2/122 =cb これは自由度1の連立方程式(式3つ,変数4つ)であるので, α=2b を自由パラメータとして

係数の解を表現すると )2/(1212 α== ac , α−= 11b を得る.

Page 16: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

16

3段3次精度 RK 法(RK3)

3段陽的 RK 法の一般形は次式で与えられる.

( ) ( )

( ) ( ) ( )

( ) ( ) ( )( ) ( )

( ) ( ) ( )( )⎪⎪⎩

⎪⎪⎨

+++=Δ+=++=Δ+=⋅+=

==

+ ,,

,,

33

22

11

13

3232

131

32

2121

2

11

FbFbFbΔtuutcttFaFaΔtuutcttFaΔtuu

ttuu

nn

nn

nn

nn

3段陽的 RK 法に対する係数のブッチャー配列は以下となる.

321

32313

212

0000000

bbbaac

ac

代表的な3段3次精度 RK 法(RK3)に対する係数のブッチャー配列を挙げておく. 古典的RK3( 2/12 =c , 13 =c ) Heun のRK3( 4/12 =c , 3/23 =c )

6/13/26/10211002/12/10000

4/304/109/89/23/2004/14/10000

Ralston のRK3( 2/12 =c , 4/33 =c ) Wray のRK3( 15/82 =c , 3/23 =c )

9/43/19/204/304/3002/12/10000

4/304/1012/54/13/20015/815/80000

01 =b となるRK3( 6/12 =c , 4/33 =c ) Williamson のRK3( 3/12 =c , 4/33 =c )

7/47/3004/714/3006/16/10000

15/810/36/1016/1516/34/3003/13/10000

これらのうち, 01 =b となるRK3は更新方式における低容量型RK3である.つまり 01 =b に

よって1+nu の計算に

( )1F が必要なくなるので,更新計算において他のRK3公式よりも配列を1

つ減らせる.Wray のRK3は積み上げ方式における低容量型RK3である.Williamson のRK

3は,Williamson の計算法に従えば低容量(2N容量)型となるRK3である.

Page 17: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

17

補足:RK3の係数

RK2と同様にしてRK3に対する係数の条件式も得られる. ・ 212 ac = ・ 32313 aac += ・ 1321 =++ bbb ・ 2/13322 =+ cbcb

・ 3/1233

222 =+ cbcb

・ 6/12323 =cab これは自由度2の連立方程式(式6つ,変数8つ)である. 2c と 3c を自由パラメータとして係数

の解を表現すると, 32 cc ≠ , 02 ≠c , 03 ≠c , 3/22 ≠c に対して 221 ca =

( )

2

322

2

331 32

13c

ccccc

a−

−−×= ,

2

23

2

332 32 c

cccc

a−−

×=

( )

32

321 6

231

cccc

b−+

−= , ( )232

32 6

23ccc

cb

−−

= , ( )233

23 6

32ccc

cb−

−=

を得る.また, 03 ≠= αb を自由パラメータとして, 3/232 == cc の場合に対する係数の解,

αααα−

−4/34/1

0)4/(1)4/(13/23/2003/23/20000

および 3/22 =c , 03 =c の場合に対する係数の解,

αααα4/34/1

0)4/(1)4/(10003/23/20000

−−

が知られている.

Page 18: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

18

4段4次精度 RK 法(RK4)

4段陽的 RK 法の一般形は次式で与えられる.

( ) ( )

( ) ( ) ( )

( ) ( ) ( )( ) ( )

( ) ( ) ( ) ( )( ) ( )

( ) ( ) ( ) ( )( )⎪⎪⎪

⎪⎪⎪

++++=Δ+=+++=Δ+=++=Δ+=⋅+=

==

+ 44

33

22

11

14

4343

242

141

43

3232

131

32

2121

2

11

,,

,,

FbFbFbFbΔtuutcttFaFaFaΔtuutcttFaFaΔtuutcttFaΔtuu

ttuu

nn

nn

nn

nn

nn

4段陽的 RK 法に対する係数のブッチャー配列は以下となる.

4321

4342414

32313

212

00000000000

bbbbaaac

aacac

4次精度を満足する4段陽的RK法の係数の一般解はいくつか知られているが,ここでは代表的

な4段4次精度 RK 法(RK4)に対する係数のブッチャー配列を挙げておく. 古典的RK4 Kutta のRK4(Kutta の 3/8 公式)

6/13/13/16/101001002/102/10002/12/100000

8/18/38/38/1011110013/13/20003/13/100000

−−

Gill のRK4

( ) ( )( )

( ) ( ) 6/16/226/226/102/222/201002/222/122/10002/12/100000

+−+−

−−

補足:RK4の係数

RK2あるいはRK3と同様にしてRK4に対する係数の条件式も得られる. ・ 212 ac = ・ 32313 aac += ・ 4342414 aaac ++= ・ 14321 =+++ bbbb ・ 2/1443322 =++ cbcbcb

Page 19: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

19

・ 3/1244

233

222 =++ cbcbcb

・ 4/1344

333

322 =++ cbcbcb

・ ( ) 6/134324242323 =++ cacabcab

・ ( ) 12/12343

22424

22323 =++ cacabcab

・ ( ) 8/14343242432323 =++ ccacabccab ・ 24/1232434 =caab これは自由度2の連立方程式(式11,変数13)である. まず 2c と 3c を自由パラメータとし, ( )( )( ) 011 323232 ≠−−− cccccc の場合についてRK4の

係数の解を表現すると,

14 =c , 221 ca = , ( )

( )22

22323

31 21243

cccccc

a−

−−= ,

( )( )22

23332 212 cc

ccca

−−

= ,

( ) ( )[ ]( ) ( )[ ]3462

1211

3232232

23322

42 ++−−−−−+−

=ccccccc

cccca ,

( )( )( )( ) ( )[ ]346

1121

3232233

32243 ++−−

−−−=

cccccccccc

a ,

( )32

321 12

2121

cccc

b+−

+= , ( )( )2232

32 112

12cccc

cb

−−−

= , ( )( )3233

23 112

21cccc

cb−−

−= ,

また, ( )434241 1 aaa +−= , ( )3214 1 bbbb ++−= を得る.この解は 3/12 =c , 3/23 =c で Kutta の RK4を与える.

2/132 == cc に対しては 03 ≠= αb を自由パラメータとする次の1パラメータ解が知られて

いる.

6/13/26/103310100)6/(1)6/(12/12/10002/12/100000

αααα

αα

−−

この解は 31 /=α で古典的RK4, ( ) 622 /+=α で Gill のRK4を与える.他にも4つの1パラ

メータ解が知られているが,そのうちの2つを示しておく(ただし 0≠α ).

ααααα3/26/16/1

0)3/(1)12/(1)4/(111008/18/32/10001100000

−−−

6/13/26/1062/362/1100)12/(1)12/(100002/12/100000

αααα

αα

−−−

Page 20: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

20

1・2・2 陰的ルンゲ・クッタ法

陰的RK法はある ij > について 0≠ija なので,基本的に式(1.2.1)をそのまま適用する必要があ

る.例えば2段陰的RK法に対するブッチャー配列と計算式は

21

22212

12111

bbaacaac

および ・ ( ) ( ){ }

( ) ( ){ }⎪⎩

⎪⎨⎧

Δ++Δ+Δ+=

Δ++Δ+Δ+=)2(

222)1(

121)2(

)2(212

)1(111

)1(

,,,,

utctFautctFatuuutctFautctFatuu

nnn

nnn

・ ( ) ( ){ })2(

22)1(

111 ,, utctFbutctFbtuu nnnn Δ++Δ+Δ+=+

であり,

)1(u と)2(u の連立方程式を解いた後に

1+nu を計算する.一般に s 段陰的RK法では)1(u ,

)2(u ,)(, suL の連立方程式をニュートン法等の繰り返し法で時間ステップ毎に解く必要があり

計算量が膨大となる. 半陰的 RK 法は ij > に対して 0=ija と設定するものであり,例えば2段半陰的RK法に対する

ブッチャー配列と計算式は

21

22212

111 0

bbaac

ac

および ・ ( ))1(

111)1( , utctFatuu nn Δ+⋅Δ+=

・ ( ) ( ){ })2(222

)1(121

)2( ,, utctFautctFatuu nnn Δ++Δ+Δ+=

・ ( ) ( ){ })2(22

)1(11

1 ,, utctFbutctFbtuu nnnn Δ++Δ+Δ+=+ となる.この場合は )1(u および

)2(u に対する単独の陰的方程式を順番に解いた後に1+nu を計算

すれば良いので,1段あたりの計算負荷はAM法と同程度となる. 陰的 RK 法はs段で最大 2s 次精度まで,半陰的 RK 法では s 段で最大 (s+1) 次精度まで到達

可能である.

Page 21: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

21

陰的 RK 法(IRK 法)および半陰的 RK 法(SIRK 法)の例を挙げておく. 陰的オイラー法(1段1次 IRK 法) 陰的中点法(1段2次 IRK 法) CN 法(2段2次 SIRK 法)

111

12/12/1

2/12/12/12/11

000

2段4次 IRK 法 2段3次 SIRK 法(ノルセット法)

( ) ( )( ) ( )

2/12/14/112/3236/33

12/3234/16/33++

−−

( ) ( )( ) ( )

2/12/16/333/36/33

06/336/33+−−

++

3段6次 IRK 法

( )

( )18/59/418/536/515/159/230/1536/510/155

24/1536/59/224/1536/52/130/1536/515/159/236/510/155

+++−+−−−

ここで,陰的オイラー法,陰的中点法,クランク・ニコルソン法(CN 法)について補足して

おく. 陰的オイラー法は1段1次精度陰的 RK 法とみなせ,ブッチャー配列と計算式はそれぞれ,

111 (陰的オイラー法)

および ・ ( ))1()1( , uttFtuu nn Δ+⋅Δ+=

・ ( ))1(1 , uttFtuu nnn Δ+⋅Δ+=+

と記述できる.この場合の2つの計算式は等価で1)1( += nuu であり,これを用いると AM 公式で

の陰的オイラー法, ・

11 ++ ⋅Δ+= nnn Ftuu が得られる. 陰的中点法は1段2次精度陰的 RK 法とみなせ,ブッチャー配列と計算式はそれぞれ,

12/12/1 (陰的中点法)

および

・ ⎟⎠⎞

⎜⎝⎛ Δ

+= )1()1( ,22

uttFtuu nn

・ ⎟⎠⎞

⎜⎝⎛ Δ

+⋅Δ+=+ )1(1 ,2

uttFtuu nnn

と記述できる.2つの計算式を比べると ( ) 2/1)1( nn uuu += +となっており,これが陰的中点法,

・ ⎟⎟⎠

⎞⎜⎜⎝

⎛ +Δ+⋅Δ+=

++

2,

2

11

nnnnn uuttFtuu

Page 22: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

22

であることがわかる. クランク・ニコルソン法(CN 法)は2段2次精度半陰的 RK 法とみなせ,ブッチャー配列と

計算式はそれぞれ,

2/12/12/12/11

000 (クランク・ニコルソン法)

および ・

nuu =)1(

・ ( ) ( ))2()1()2( ,2

,2

uttFtutFtuu nnn Δ+Δ

+=

・ ( ) ( ))2()1(1 ,2

,2

uttFtutFtuu nnnn Δ+Δ

+=+

と記述できる.この場合nuu =)1(,

1)2( += nuu であり,これが AM 公式でのクランク・ニコル

ソン法,

・ ( )nnnn FFtuu +Δ

+= ++ 112

であることがわかる.

Page 23: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

23

–2 –1 0 1 2–2

–1

0

1

2

λ R

λ I

Stable Unstable

( ) ( )( ) ( ) ( )( )( )2

2

2/

2/sin,sin

x

xkkx

xkkΔ

Δ=′′

ΔΔ

=′ ωωωω

1・3 時間進行法の安定性解析

線形テスト問題

・ udtdu λ= , IR iλλλ +=

・ ( ) 00 uu = に対する時間進行法の数値安定性を考える.まずこ

の問題の解析解は ・ ( ) tIitRt eeueutu ⋅⋅⋅ == λλλ

00 で与えられ, 0≤Rλ ならば 0>t で ( )tu は有界とな

る.

図 1.6 線形テスト問題の安定領域(複素平面)

補足:なぜ線形テスト問題を考えるのか

流体運動の支配方程式は輸送方程式であるので,その本質を表現するモデル方程式(1次元の

移流・拡散方程式の空間離散式)を考える.

2

2

xu

xuU

dtdu

δδν

δδ

+−= ここで, U :移流速度

ν :拡散係数

δ :

x∂∂

に対する空間離散オペレータ

解析的な扱いを容易にするため, x 方向に周期的な場を仮定し,離散フーリエ変換を導入する.

( ) ( ) ( )[ ] ( ) xNLkL

kNNkxkitxutu xx

jN

jjk Δ⋅==−−=−= ∑

=,212/2/,exp,ˆ

1

0

πωω ,~

( ) ( ) ( )[ ] 10,expˆ,12/

2/−=+= ∑

−=Njxkitutxu j

N

Nkkj ~ω

離散フーリエ変換によりモデル方程式を対角化する. ( ) ( ) ( )[ ] ( ) 12/2/,ˆˆ

−−=′−′′−= NNkkukiUkdt

tudk

k ~ωων

ここで, ( )kω′ と ( )kω ′′ は空間1階および2階微分に対する離散オペレータの修正波数で,空間離

散化手法に応じて定まる.例えば, フーリエ・スペクトル法 : 2次精度中心差分 : 以上より,モデル方程式は線形テスト問題(固有値問題)に帰着され,固有値の実部は拡散項に,

固有値の虚部は移流項に関係することが理解される. ( ) ( ) ( ) ( )kUkitu

dttud

kI

kR

kI

kR

kkkk ωλωνλλλλλ ′−=′′−=+== ,,,ˆ

ˆ

なお,純粋移流問題の安定性は ( )kω′ の最大値,純粋拡散問題の安定性は ( )kω ′′ の最大値に対応し

て定まる.

( ) ( ) ( ) ( )2, kkkk ωωωω =′′=′

Page 24: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

24

–3 –2 –1 0 1–2

–1

0

1

2

λ RΔ t

λ I Δ

t

Euler explicitUnstable

Stable

線形テスト問題の解の有界性が数値計算においてどのような条件で満足されるかを検討するた

め,まず陽的オイラー法を線形テスト問題に適用してみる. ( ) ( ) nnnn ututuu Δ+=⋅Δ+=+ λλ 11 この操作は,初期値 0

0 uu = ,数値解の複素増幅率をξ として

0uu nn ξ= と記述するとき,陽的オイラー法の複素増幅率が ( )z+= 1ξ , ただし tz Δ= λ となることを意味する.ここで tittz IR Δ+Δ=Δ= λλλ としている.これから明らかなとおり,

陽的オイラー法による数値解が有界であるための条件は 11 ≤+= zξ で与えられる.これを満足する z は複素平面において )0,1( i⋅− を中心とする半径1の円の内側

に存在する.この領域を陽的オイラー法の絶対安定領域と呼ぶ.これは,陽的オイラー法を用い

て安定な数値解を得るためには,時間刻み幅 tΔ の設定に制限があることを示している.具体的に

は,λ を負の実数とすると

λ−

≤Δ2t

の範囲に時間刻み幅 tΔ を設定する必要がある.

図 1.7 陽的オイラー法の絶対安定領域

Page 25: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

25

–1 0 1 2 3–2

–1

0

1

2

λ RΔ t

λ I Δ

t

Euler implicit

UnstableStable

次に,陰的オイラー法を線形テスト問題に適用し絶対安定領域を調べる. ( )11 ++ ⋅Δ+= nnn utuu λ これより,陰的オイラー法の複素増幅率ξ は次式で与えられる.

( )z−=

11ξ , tz Δ= λ

これに対応する絶対安定領域は次式で与えられる.

11

1≤

−=

これを満足する z は複素平面において )0,1( i⋅+ を中心とする半径1の円の外側の全領域である.

この領域は 0≤Rλ となる複素平面の左半分を全て含むので,陰的オイラー法は 0≤Rλ に対し時

間刻み幅 tΔ によらず無条件安定な数値解を与える.

図 1.8 陰的オイラー法の絶対安定領域 図 1.9 A(α) 安定

陰的オイラー法のように絶対安定領域が複素平面の左半分( 0≤Rλ )全てを含む時間進行法は

A安定(絶対安定)という.なお,絶対安定の緩和表現として,絶対安定領域が複素 z 平面上で

無限扇形領域 ( ){ } ( )2/0arg; πααπα <<<−<− zz を含む場合,A(α) 安定と呼ぶ.

ところで,陽的オイラー法および陰的オイラー法は1次精度の時間進行法であるため打ち切り

誤差の影響が懸念される.そこで2次精度の時間進行法である中点蛙跳び法(leap-frog 法)を線

形テスト問題に適用してみる. ( )nnn utuu λ⋅Δ+= −+ 211 これに

0uu nn ξ= および tz Δ= λ を代入して整理すると,中点蛙跳び法の複素増幅率ξ は

Re(z)

α

α

O

Im(z)

StableUnstable

Page 26: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

26

0122 =−− ξξ z の解として次式で得られる.ここでは複素増幅率ξ の解を求めるのではなく,絶対安定領域の境

界 1=ξ を与えるzの範囲を調べてみる.そのため上式を変形しθξ ie= を代入すると,

( ) θ

ξξ θθ

θ

θcos

221

21

22i

ieei

eez

ii

i

i=

−=

−=

−=

を得る.これは,z が虚軸上の ),( ii +− の範囲のみで安定,つまり中点蛙跳び法は 0=Rλ 以外

では数値解が無条件に不安定となることを示している. 以上のように,時間進行法は必ずしも精度が高いものが適切なわけではなく,数値安定性も含

めて検討する必要がある.

1・3・1 線形多段階法の絶対安定領域 線形多段階法の一般形(ただし 01 ≠α ),

∑ ∑−= −=

++ =1

Nj

1

Nj

jnj

jnj Fu

t1 βαΔ

を線形テスト問題に適用し,0uu nn ξ= および tz Δ= λ を代入すると次式を得る.

∑ ∑−= −=

++ =−1 1

0Nj Nj

jnj

jnj z ξβξα ,

この式による複素増幅率ξ の根が全て 1≤ξ を満足する場合に線形多段階法は絶対安定である.

線形多段階法の安定限界曲線(絶対安定領域の境界),つまり 1=ξ を与える z は,LM 法の安

定限界関数,

( )jn

jNj

Nj

jnj

z+

−=

−=

+

∑==

ξβ

ξαξϕ 1

1

LM 法の安定限界関数

に対してθξ ie= を代入し,0から2πの範囲のθ に対する z を描けば良い.以下に,AM 公式,

AM 公式および BD 公式に対する安定限界関数 ( )ξϕ=z を示しておく. AB 公式 1−= ξz 陽的オイラー法(AB1)

( )

1312

−−

=ξξξz AB2

Page 27: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

27

( )

51623112

2

2

+−

−=

ξξξξz AB3

( )

9375955124

23

3

−+−

−=

ξξξξξz AB4

AM 公式

ξ

ξ 1−=z 陰的オイラー法(AM1)

( )

112

+−

=ξξz クランク・ニコルソン法(AM2)

( )

185112

2 −+

−=

ξξξξz AM3

( )

15199124

23

2

+−+

−=

ξξξξξz AM4

BD 公式

ξ

ξ 1−=z 陰的オイラー法(BD1)

2

2

2143

ξξξ +−

=z BD2

3

23

6291811

ξξξξ −+−

=z BD3

4

234

12316364825

ξξξξξ +−+−

=z BD4

Page 28: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

28

–6 –4 –2 0 2–4

–2

0

2

4

λ RΔ t

λ I Δ

t AM3

AM4

AM2

AM1

Eulerexplicit

us

us

u s us

us

AB 公式,AM 公式および BD 公式の安定限界関数に対してθξ ie= を代入し,さらに0から2

πのθ の値を代入して描いた安定限界曲線を以下に示す. 線形多段解法(AB 法,AM 法,BD 法)では,精度が上がると絶対安定領域が狭くなることが

わかる.また,これらの中で A 安定な時間進行法は,陰的オイラー法(AM1),クランク・ニコ

ルソン法(AM2),および2次精度後退差分法(BD2)のみである.なお,BD3は )A(86o安定,

BD4は )A(73o安定である.

図 1.10 AB 法の安定限界曲線 図 1.11 AM 法の安定限界曲線

図 1.12 BD 法の安定限界曲線 図 1.13 BD3と BD4 の原点付近の安定限界曲線

–3 –2 –1 0 1–2

–1

0

1

2

λ RΔ t

λ I Δ

t

AB3

AB4

AB2

Eulerexplicit

u s

u su s

us

u

u

–4 0 4 8 12–8

–4

0

4

8

λ RΔ t

λ I Δ

t

BD3

BD4BD2

BD1

Eulerexplicit

u s u s

us

u s

us

–6 –3 0 3 6–6

–3

0

3

6

λ RΔ t

λ I Δ

t

BD3

BD4u

s

us

73o

86o

Page 29: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

29

1・3・2 RK 法の絶対安定領域 線形テスト問題に s 段 RK 法を適用し行列表示すると次式を得る.ただし tz Δ= λ である.

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−

−−−−

−−−−−−−

+

−−−−−

n

n

n

n

n

n

s

s

s

sssss

ssssss

s

s

uuu

uu

uu

u

uu

zbzbzazaza

zazazaza

zazazazazazaza

MM

LLL

LL

L

MMOOOM

L

LL

1

)(

)1(

)2(

)1(

1

11

1111311

2232221

11211

10)1(0)1(

0)1(0)1(

この連立方程式を Cramer の公式で解き1+nu (解の s+1 成分)を求めると次式を得る.

( )( )zAI

zzAIzRuzRuT

nn−+−

==+

detdet)(,)(1 eb

ここで, ss × 行列 Aと I の成分を ijij aA =)( および ijijI δ=)( ,また s 元ベクトルbとe の成分

を ),,( 1 sT bb L=b および )1,,1( L=Te としている. )(zR は RK 法の安定性因子と呼ば

れ,RK 法の絶対安定領域は 1)( ≤zR で与えられる. 補足:RK法の安定性因子の導出

まず RK 法に対するブッチャー配列を

TAb

c

と表現し, ss × 行列 Aと I の成分を ijij aA =)( および ijijI δ=)( ,また s 元ベクトルの成分を

),,( 1 sT bb L=b , ),,( 1 s

T cc L=c ,

)1,,1( L=Te , )0,,0( L=T0 , ),,( )()1( sT uu L=u とすると,線形テスト問題に適用された s 段 RK 法は次のように記述される.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡−

−+ 11

)(1

eub

0 nnT u

uzzAI

上記連立方程式を Cramer の公式で解いた1+nu の解(解の s+1 成分)はまず次式となる.

n

T

Tn u

zzAI

zzAI

u

⎥⎦

⎤⎢⎣

⎡−

⎥⎦

⎤⎢⎣

⎡−

=+

1)(

det

1)(

det1

b0

be

ここで,ブロック行列の行列式に関する数学公式

( ) ( )BCDADDBCA 1detdetdet −−⋅=⎥

⎤⎢⎣

を適用すると,分母および分子に現れている行列式はそれぞれ

( )zAIz

zAIT −=⎥

⎤⎢⎣

⎡−

−det

1)(

detb

0, ( )T

T zzAIz

zAIeb

be

+−=⎥⎦

⎤⎢⎣

⎡−

−det

1)(

det

となるので, ( )

( )nn

Tn uzRu

zAIzzAIu )(

detdet1 =

−+−

=+ eb,

( )( )zAI

zzAIzRT

−+−

=det

det)( eb

を得る.

Page 30: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

30

–4 –2 0 2

–2

0

2

λ RΔ t

λ I Δ

t RK3

RK4

RK2

Eulerexplicit

u s

u s

us

us

陽的 RK 法に対しては ij ≥ で 0=ija なので ( ) 1det =− zAI であり,安定性因子 R(z)は

( )TzzAIzR eb+−= det)( 陽的 RK 法の安定性因子 で与えられる.これは一般にzの s 次多項式

ss zqzqzqzR ++++= L2

211)(

となり,陽的 RK 法では A 安定なものが存在しないこと( −∞→z で ∞→)(zR となるため)

を示している.また,線形テスト問題に対する1+nu の解析解のテイラー展開,

n

mntn u

mzzzueu ⎟

⎟⎠

⎞⎜⎜⎝

⎛+++++==+ LL

!!21

21 λ

と比べると,s 段 p 次精度陽的 RK 法の安定性因子は

s

sp

p

pzqzq

pzzzzR +++++++= +

+ LL 11

2

!!21)(

となることが解る.特に 4≤s に対しては s 段 s 次精度陽的 RK 法が構成できるが,この場合の安

定性因子はそれぞれ以下となる.

zzR += 1)( , 陽的オイラー法(RK1)

!21)(

2zzzR ++= , RK2

!3!21)(

32 zzzzR +++= , RK3

!4!3!21)(

432 zzzzzR ++++= , RK4

陽的 RK 法に対する安定限界曲線を図 1.14 に示す.線形多段階法と異なり,陽的 RK 法は精度

が上がると絶対安定領域が広がる.

図 1.14 陽的 RK 法の安定限界曲線

Page 31: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

31

陰的および半陰的RK法の安定性因子 )(zR は zの有理関数となるのでA安定となる可能性があ

る.1・2・2 節で紹介した陰的および半陰的 RK 法は全て A 安定であり,それぞれに対する安定

性因子は以下となる.

zzR

−=

11)( , 陰的オイラー法(1段1次 IRK 法)

21

21

)(z

z

zR−

+= , 陰的中点法(1段2次 IRK 法)および CN 法(2段2次 SIRK 法)

2

2

6331

631

331

)(

⎟⎟⎠

⎞⎜⎜⎝

⎛ +−

+−−

=

z

zzzR 2段3次 SIRK 法(ノルセット法)

1221

1221

)( 2

2

zz

zz

zR+−

++= , 2段4次 IRK 法

1201021

1201021

)( 32

32

zzz

zzz

zR−+−

+++= , 3段6次 IRK 法

輸送法方程式の時間進行を考える場合,移流項の数値安定性は固有値の虚部に,また拡散項の

数値安定性は固有値の実部に支配されるので,時間進行法の安定性のまとめとして,実数および

純虚数の固有値に対する安定領域を表 1.1 に示しておく.

Page 32: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

32

表 1.1 実数および純虚数の固有値に対する安定領域(AB,AM,BD,RK,IRK)

stable-AStableStableIRK6stage-3stable-AStableStableIRK4stage-2stable-AStableStableIRK2stage-1

83.2002.79RK4

73.1002.51RK30)Unstable(02RK2

stable-)A(7371.4StableBD4

stable-)A(8694.1StableBD3stable-AStableStableBD2

0)Unstable(03AM40)Unstable(06AM3

stable-AStableStableNicolson)-AM2(Crankstable-AStableStableimplicit)AM1(Euler

430.0003.0AB4

723.000545.0AB30)Unstable(01AB20)Unstable(02explicit)AB1(Euler

RemarksImaginary)0(Real

I

o

o

I

I

I

I

≤Δ≤≤Δ≤

≤Δ≤≤Δ≤≠≤Δ≤

≥Δ

≥Δ

≠≤Δ≤≠≤Δ≤

≤Δ≤≤Δ≤

≤Δ≤≤Δ≤≠≤Δ≤≠≤Δ≤

≤Δ

tt

ttt

t

t

tt

tt

ttttt

IR

IR

R

I

I

R

R

IR

IR

R

R

R

λλ

λλλλ

λ

λ

λλλλ

λλ

λλλλλλ

λ

なお,時間進行法の安定性に関して次の定理が知られている.

ダルキスト(Dahlquist)の定理: 1) 陽的ルンゲ・クッタ法は A 安定にはならない. 2) 陽的な線形多段解法は A 安定にはならない. 3) A 安定な線形多段階法の精度は2を超えない. 4) 2次精度で A 安定な線形多段解法のうち,局所誤差の絶対値が最も小さいものはクランク・

ニコルソン法(AM2)である.

第1章の参考文献 (1) 三井斌友,数値解析入門 –常微分方程式を中心に-,朝倉書店(1985).

(2) 三井斌友,常微分方程式の数値解法,岩波書店(2003).

(3) U.M.アッシャー,L.R.ペツォオルド 共著,中森眞理尾雄 監修,嘉村友作,三ツ間均 共訳,

常微分方程式と微分代数方程式の数値解法,培風館(2006).

(4) Gear, C.W., Numerical Initial Value Problems in Ordinary Differential Equations, Prentice-Hall (1971). (5) Fatunla, S.O., Numerical Methods for Initial Value Problems in Ordinary Differential Equations,

Academic Press (1988). (6) Butcher, J.C., Numerical Methods for Ordinary Differential Equations, John Wiley and Sons (2003). (7) Williamson, J.H., Low-Storage Runge-Kutta Schemes, J. Comput. Phys., Vol.35 (1980), pp.48-56.

Page 33: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

33

2.非圧縮性流れの計算アルゴリズム 目的: 非圧縮性流れの計算アルゴリズム(圧力ベース解法)を理解する.

非圧縮性流れの運動はナビエ・ストークス(NS)方程式および連続の式を用いて記述される.

( ) svvvv+∇+−∇=∇+

∂∂ 2νp

t・ (2.1)

0=⋅∇ v (2.2)

上式中で t は時間, v は速度ベクトル, p は圧力/密度(本章では以降圧力と呼ぶ),ν は動

粘度,∇ は勾配演算子, s は外力等によるソース項のベクトルである.動粘度は定数とする.

また,式(2.1)の左辺第2項は移流項,右辺第1項は圧力勾配項,右辺第2項は粘性項と呼ばれる. 本章では,式(2.1)および式(2.2)を解いて速度 vおよび圧力 p の解を求める非圧縮性流れの一般的

な解法を示す. 空間および時間離散化手法を定めれば式(2.1)および式(2.2)は離散化できるが,非圧縮性流れで

は連続の式(2.2)がNS方程式(2.1)に対する拘束条件となるので,これらの式が同時に満足される

ように速度 vおよび圧力 p の数値解を求める解法が必要となる.速度 v については式(2.1)を基に

時間発展を行えば良いが,非圧縮性流れでは圧力 p に関する時間発展方程式が存在しない.この

ため,通常は式(2.1)に発散( ⋅∇ )を作用させて得られる圧力のポアソン方程式,

( ) ( )[ ]svvvv+⋅∇−∇⋅∇+

∂⋅∇∂

−=∇⋅∇ 2νt

p , (2.3)

あるいはこれに関連した方程式と連続の式(2.2)とを基に圧力を求めながら式(2.1)の時間発展を行

い速度 v が求められる.NS方程式(2.1)の時間進行法に応じてそれぞれ経済的な解法がこれまで

に開発されている. 表2.1 非圧縮性流れの計算アルゴリズム

NS 式の各項の時間進行法 計算アルゴリズム

移流項 粘性項 圧力項 MAC 法 系統 陽解法 陽解法

フラクショナル・ステップ法 系統 陽解法 陰解法

――― 陰解法 陽解法

SIMPLE 法 系統 陰解法 陰解法

(陰解法)

それぞれの計算アルゴリズムについて2・1節,2・2節,2・3節で説明する.解法の説明

に具体的な空間離散式が必要となる場合には2次元の流れ場を考える.その場合のNS方程式

(2.1)および連続の式(2.2)は次式で与えられる.

xsyu

xu

xp

yvu

xuu

tu

+⎟⎟⎠

⎞⎜⎜⎝

∂∂

+∂∂

+∂∂

−=∂∂

+∂

∂+

∂∂

2

2

2

2ν (2.4a)

ysy

vx

vyp

yvv

xuv

tv

+⎟⎟⎠

⎞⎜⎜⎝

∂∂

+∂∂

+∂∂

−=∂∂

+∂∂

+∂∂

2

2

2

2ν (2.4b)

0=∂∂

+∂∂

yv

xu

(2.5)

Page 34: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

34

上式中でu ,v は速度ベクトル v の x , y 方向成分, xs , ys はソース項ベクトル s の x , y 方向成分である. 離散値の表現方法として,( ix , jy )点上に配置された変数の離散値を例えば jip , と表記する.

さらに,時間離散点 tnt n Δ⋅= における jip , を jinp , と表記する. tΔ は時間刻み幅である.

2・1節で示されるとおり非圧縮性流体の差分解析ではスタガード格子の使用が推奨されるので,

本章での各解法の説明は基本的にスタガード格子を用いて行われる. なお,有限体積法に基づいて空間離散化が行なわれる場合には,通常式(2.1)の代りに次式,

( ) ( ) ( )[ ]{ } svvvvv+∇+∇⋅∇+−∇=∇+

∂∂ Tp

tν・ , (2.6)

が基礎式として用いられる. ( )Tv∇ は速度勾配テンソル ( )v∇ の転置テンソルである.粘性係

数ν が定数の場合には連続の式(2.2)から式(2.1)と式(2.6)とは等しくなる.渦動粘度 tν を用いる

乱流モデルの運動方程式は式(2.6)のν を tνν + で置き換えたものになり,またν が空間的な変

数である場合も扱えるので,非圧縮性流れに対する運動方程式としては式(2.1)よりも式(2.6)の方

が一般的である.しかし式(2.6)を用いると解法の統一的な説明が煩雑になるので,2・1節,2・

2節,2・3節の解法の説明では式(2.1)を運動方程式として用いる.乱流モデルを用いる場合およ

び有限体積法により空間的離散化が行われる場合に対しては,粘性項の空間離散式が式(2.6)中の

形を基に構成されているものと解釈して頂きたい.また,輸送量φ の輸送方程式の一般形は次式

となる.

( ) ( ) φφ φφφ sΓt

+∇⋅∇=⋅∇+∂∂ v (2.7)

ここで φΓ はφ の拡散係数, φs はソース項である.式(2.7)の形の輸送方程式を流れ場と同時に

解く場合,通常時間進行の各ステップにおいて速度 v および圧力 p が求められた後に式(2.7)を単純に時間進行してφ が求められるので,式(2.7)の時間進行法については特に説明しない. 2・1 差分格子系とMAC法系統の解法

NS方程式(2.1)の移流項と粘性項を陽的に時間離散化し,連続の式(2.2)を新たな時刻 1+nt において満足させると次式を得る.

( ) svvvvv+∇+−∇=∇+

Δ− +

+nnnn

nnp

t21

1ν・ (2.8)

01 =⋅∇ +nv (2.9)

式(2.8)では時間に関して1次精度の陽解法が用いられているが,MAC法系統の解法で時間精度

の向上を図りたい場合には移流項および粘性項に対してより高次精度の陽的時間進行法(例えば

2次精度アダムス・バシュフォース法)が用いられる.式(2.8)に発散( ⋅∇ )を作用させて式(2.9)を用いると圧力 1+np のポアソン方程式が得られる.

( )[ ]svvvv +⋅∇−∇⋅∇+⋅∇Δ

=∇⋅∇ + nnnnn

tp 21 1 ν (2.10)

MAC法系統の解法では,基本的には圧力のポアソン方程式(2.10)を解いて式(2.9)を満足する速度

場 1+nv を式(2.8)から求める.

Page 35: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

35

2・1・1 レギュラー格子を用いる差分法の問題点 速度成分 u ,v および圧力 p を同じ空間離散点上に配置する差分法は基礎方程式の離散化が

最も容易である.この空間配置による差分格子をレギュラー格子と呼ぶ(図 2.1).式(2.8)および式

(2.9)を2次元で記述し,空間微分をレギュラー格子上の差分で近似して整理すると次式を得る.

図 2.1 レギュラー格子 図 2.2 レギュラー格子の問題点

jin

ii

jin

jin

jin

jin ft

xxpptuu ,

11

,11

,11

,,1 ⋅Δ+

−−

Δ−=−+

−+

++

+ (2.11a)

jin

jj

jin

jin

jin

jin gt

yypptvv ,

11

1,1

1,1

,,1 ⋅Δ+

−−

Δ−=−+

−+

++

+ (2.11b)

011

1,1

1,1

11

,11

,11

=−−

+−−

−+

−+

++

−+

−+

++

jj

jin

jin

ii

jin

jin

yyvv

xxuu

(2.12)

ここで, f および g は

xsyu

xu

yvu

xuuf +⎟⎟

⎞⎜⎜⎝

∂∂

+∂∂

+∂∂

−∂

∂−= 2

2

2

ysy

vx

vyvv

xuvg +⎟⎟

⎞⎜⎜⎝

∂∂

+∂∂

+∂∂

−∂∂

−= 2

2

2

であり, jif , と jig , はそれぞれ( ix , jy )点上での f と g の離散近似式である.圧力 1+np は,式(2.11)

により 1+nu および 1+nv が時間進行された後に式(2.12)を満足するものでなくてはならない.そ

のような圧力 1+np は次式を満足する.

x

y xi xi+2xi+1xi–1xi–2

yj

yj+2

yj+1

yj–1

yj–2

: u, v, p

x

y xi xi+2xi+1xi–1xi–2

yj

yj+2

yj+1

yj–1

yj–2

: u: v: p

Page 36: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

36

( )11

1,1,

11

,1,1,

2

2,1

,1

2

,1

2,1

11

2

,21

,1

2

,1

,21

11

1

1

−+

−+

−+

−+

−++

+

++

+

−+

−++

+

++

+

−+

−−

+−−

=

⎥⎥⎦

⎢⎢⎣

−−

−−−

−+

⎥⎦

⎤⎢⎣

⎡−−

−−−

jj

jin

jin

ii

jin

jin

jin

R

jj

jin

jin

jj

jin

jin

jj

ii

jin

jin

ii

jin

jin

ii

yygg

xxff

tD

yypp

yypp

yy

xxpp

xxpp

xx

(2.13)

ここで,

( ) .11

1,1,

11

,1,1,

−+

−+

−+

−+

−−

+−−

=jj

jin

jin

ii

jin

jin

jin

R yyvv

xxuuD

式(2.13)は式(2.11)を式(2.12)に代入して得られる.しかしながら式(2.13)の左辺は隣り合う格子点

の値を参照しない離散式であるため(図 2.2),この式から得られる圧力の数値解は空間的に1つ

飛びの振動を起こす可能性があり滑らかな物理的な圧力解が得られない場合がある. 式(2.13)は式(2.10)を空間的に離散化したものと見なせるので,式(2.13)の左辺を2階微分に対

する次の差分式で置き換えて圧力を求めることも考えられる.

( )11

1,1,

11

,1,1,

1

1,1

,1

1

,1

1,1

11

1

,11

,1

1

,1

,11

11

2

2

−+

−+

−+

−+

−++

+

++

+

−+

−++

+

++

+

−+

−−

+−−

=

⎥⎥⎦

⎢⎢⎣

−−

−−−

−+

⎥⎦

⎤⎢⎣

⎡−−

−−−

jj

jin

jin

ii

jin

jin

jin

R

jj

jin

jin

jj

jin

jin

jj

ii

jin

jin

ii

jin

jin

ii

yygg

xxff

tD

yypp

yypp

yy

xxpp

xxpp

xx

(2.14)

上式による圧力 1+np の解は滑らかで物理的なものとなるが,逆にこの圧力を用いて計算される速

度 1+nu および 1+nv は連続の式の離散式(2.12)を満足しなくなる.つまり,レギュラ格子を用いた

差分法による非圧縮性流体の解法では,圧力の解の物理性あるいは連続の式の満足度のいずれか

が犠牲になる.

Page 37: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

37

2・1・2 MAC法とスタガード格子 レギュラー格子の問題点を解消する差分格子として,非圧縮性流体の数値解析ではスタガード格

子が用いられる(図 2.3).

図 2.3 スタガード格子

スタガード格子では,圧力の配置点に対しそれぞれの方向に半格子ずれた位置に速度成分が配置

される.つまり,圧力 p の配置点を ( )ji yx , とすると,x 方向速度成分u は ( )ji yx ,2/1+ 点,y 方向速度成分 v は ( )2/1, +ji yx 点上に配置される.NS方程式(2.8)の各方向成分はそれぞれの速度成

分の配置点上で,また連続の式(2.9)は圧力の配置点で空間的に離散化される.

jin

i

jin

jin

jin

jin ft

xpptuu ,2/12/1

,1

,11

,2/1,2/11

++

++

+

+++ ⋅Δ+

Δ−

Δ−= (2..15a)

2/1,2/1

,1

1,1

2/1,2/1,1

++

++

+

+++ ⋅Δ+

Δ−

Δ−= jin

j

jin

jin

jin

jin gt

ypptvv (2..15b)

02/1,1

2/1,1

,2/11

,2/11

−+

Δ− −

++

+−

++

+

j

jin

jin

i

jin

jin

yvv

xuu

(2..16)

式(2.15)を式(2.16)に代入すると次式が得られる.

x

yxi

xi+1/2

xi+1xi–1

xi–1/2

yj

yj+1/2

yj+1

yj–1

yj–1/2

: u: v: p

yj–3/2

yj+3/2

xi+3/2xi–3/2

Δxi

Δxi+1/2

Δyj

Δyj+1/2

Page 38: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

38

( )j

jin

jin

i

jin

jin

jin

S

j

jin

jin

j

jin

jin

j

i

jin

jin

i

jin

jin

i

ygg

xffD

t

ypp

ypp

y

xpp

xpp

x

Δ−

+Δ−

=

⎥⎥⎦

⎢⎢⎣

Δ−

−Δ

−Δ

+

⎥⎦

⎤⎢⎣

Δ−

−Δ

−Δ

−+−+

−++

+

++

+

−++

+

++

+

2/1,2/1,,2/1,2/1,

2/1

1,1

,1

2/1

,1

1,1

2/1

,11

,1

2/1

,1

,11

1

1

1

(2..17)

ここで,

( ) .2/1,2/1,,2/1,2/1,

j

jin

jin

i

jin

jin

jin

S yvv

xuuD

Δ−

+Δ−

= −+−+

式(2.17)の左辺は式(2.14)の左辺と等価であり,これを解いて求められる圧力の数値解

1+np は滑

らかで物理的であり,さらにこの圧力を用いて式(2.15)により時間発展される速度 1+nu および1+nv は式(2.16)を離散的に満足する.スタガード格子の使用が提案されたこの解法はMAC法

(Marker And Cell 法)と呼ばれる(1).原論文においてはマーカーを飛ばして自由表面の位置を決定

しながら流れ場を解く解法としてMAC法が提案されているが,現在では流れ場の解法の部分の

みに対してMAC法の名称が用いられている. MAC法の計算手順 は以下のとおりである. 1) 初期条件として

nu と nv を与え, 2) 式(2.17)を解いて

1+np を求めた後,

3) 式(2.15)から1+nu と 1+nv を求め,

4)1+nu と 1+nv を nu と nv として 1)に戻る.

以上の手順を,非定常計算の場合には必要な時間まで,定常計算の場合には収束条件が満足さ

れるまで繰り返す.

Page 39: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

39

2・1・3 SMAC法 MAC法では圧力のポアソン方程式(2..17)の右辺の境界値および圧力の境界条件を適切に与え

ることが一般に煩雑である.これを解消する解法にSMAC法(Simplified MAC 法)がある(2).S

MAC法による解法を説明するため,まず式(2.15)を次のように分解する.

jin

i

jin

jin

jin

ji ftx

pptuu ,2/12/1

,,1,2/1,2/1ˆ +

+

+++ ⋅Δ+

Δ−

Δ−= (2.18a)

2/1,2/1

,1,2/1,2/1,ˆ +

+

+++ ⋅Δ+

Δ−

Δ−= jin

j

jin

jin

jin

ji gty

pptvv (2.18b)

2/1

,,1,2/1,2/1

1 ˆ+

+++

+

Δ

−Δ−=

i

jijijiji

n

xpp

tuuδδ

(2.19a)

2/1

,1,2/1,2/1,

1 ˆ+

+++

+

Δ

−Δ−=

j

jijijiji

n

ypp

tvvδδ

(2.19b)

また,

jijin

jin ppp ,,,

1 δ+=+ . (2.20) u および v は中間速度, pδ は圧力補正量である.式(2.19)を式(2.16)に代入すると pδ のポア

ソン方程式が得られる.

(2.21) ここで,

( )j

jiji

i

jijijiS y

vvx

uuD

Δ

−+

Δ

−= −+−+ 2/1,2/1,,2/1,2/1

,

ˆˆˆˆˆ .

SMAC法の計算手順 は以下のとおりである. 1)初期条件として

nu , nv , np を与え, 2)式(2.18)から u , v を計算し, 3)式(2.21)を解いて pδ を求めた後,

4)式(2.19)から1+nu と 1+nv および式(2.20)から 1+np を求め,

5)1+nu , 1+nv ,

1+np を nu , nv ,np として 1)に戻る.

以上の手順を,非定常計算の場合には必要な時間まで,定常計算の場合には収束条件が満足さ

れるまで繰り返す. SMAC法(およびMAC法)ではポアソン方程式を解くために計算時間の大部分が費やされ

るので,楕円型方程式の離散式が経済的に解ける行列解法を使用する必要がある.MAC法と比

べた場合のSMAC法の利点は境界条件の設定がわかり易い点にある.一例として,境界 (xN+1/2,yj)での速度の値 jN

BCu ,2/1+ が与えられている場合を考える(図 2.4).この場合,まず中間

速度 u に対する境界値として,

( ) jiS

j

jiji

j

jiji

ji

jiji

i

jiji

i

Dt

ypp

ypp

yxpp

xpp

x

,

2/1

1,,

2/1

,1,

2/1

,1,

2/1

,,1

ˆ1

11

Δ=

⎥⎥⎦

⎢⎢⎣

Δ

−−

Δ

Δ+⎥

⎤⎢⎣

⎡Δ

−−

Δ

Δ −

+

+

+

+ δδδδδδδδ

Page 40: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

40

,ˆ ,2/1,2/1 jNBC

jN uu ++ = (2.22)

を与える.境界条件は jNBC

jNn uu ,2/1,2/1

1++

+ = であることを要求するので,式(2.19a)から

jNjN pp ,,1 δδ =+ (2.23) が与えられる.なお,SMAC法の原論文(2)ではポテ

ンシャル関数ϕ が導入されているが, pδ とϕ は

pt

δϕΔ

=1

で結び付けられる. また,境界条件も含

めて空間離散化がなされた離散式を基に解法が適切

に構成されていれば,SMAC法はMAC法を分離し

て解いているだけで両者は同じ解法となる(移流項お

よび粘性項の双方が陽的に時間進行されているので 分離誤差は生じない). 図2.4 SMAC 法での境界条件 補足:行列分解によるSMAC法の計算アルゴリズムの導出

速度 ( )vu, ,圧力 p および ),( gf の離散値ベクトルをそれぞれu,pおよび f と表記すると,式

(2.15)および式(2.16)は次式のように表現される.

ubfpδpuu++−=+

Δ−+

nnnn

GGt

1

pbu =+1nD

ただし,圧力は δppp +=+ nn 1としている.またG は離散的勾配演算子,D は離散的発散演算

子であり,これら離散的空間演算子では境界条件も考慮されている.境界条件から生じる項はN

S方程式および連続の式それぞれに対して ub および pb に含まれているものとする.これらを

まとめて行列表示すれば次式となる.

( )

⎥⎥⎦

⎢⎢⎣

⎡ ++−⋅Δ+=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ Δ +

p

u

bbfpu

δpu nnnn Gt

DtGI 1

0

ここで,左辺の行列は次のようにLU分解できる. ( )

⎥⎥⎦

⎢⎢⎣

⎡ ++−⋅Δ+=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ Δ⎥⎦

⎤⎢⎣

⎡Δ−

+

p

u

bbfpu

δpu nnnn Gt

ItGI

tDGDI 1

00

これはさらに次の2式へと分解できる. ( )

⎥⎥⎦

⎢⎢⎣

⎡ ++−⋅Δ+=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡Δ− p

u

bbfpu

pδu nnn Gt

tDGDI

ˆˆ0

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ Δ +

pδu

δpu

ˆˆ

0

1n

ItGI

これらの行列を展開して整理すると次の計算アルゴリズムを得る. ( )ubfpuu ++−⋅Δ+= nnn Gtˆ

( )pbuδp −Δ

= ˆ1 Dt

DG

δpuu tGn Δ−=+ ˆ1 これは SMAC 法の計算アルゴリズムを与える.ここで,第2式中の DG は離散ラプラス演算子に

対応する.

x

yxN

xN–1/2 xN+1/2

ΔxN+1/2

yjδ pN, j δ pN+1, j

uN+1/2, jBC

Page 41: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

41

2・1・4 HSMAC法(またはSOLA法) MAC法およびSMAC法の計算時間の大部分はポアソン方程式の離散式を解くために費やさ

れる.HSMAC法(Highly Simplified MAC 法)(またはSOLA法)(3) は, pδ のポアソン方程

式(2.21)を解かずに速度と圧力の同時補正計算により連続の式を満足させるSMAC法の近似解

法である.まず,式(2.21)の左辺の対角項( jip ,δ に関する項)のみを残して jip ,δ の式を作り(優

対角近似),緩和係数 β を乗じると次式を得る. ( )

⎥⎥⎦

⎢⎢⎣

⎡⎟⎟⎠

⎞⎜⎜⎝

Δ+

ΔΔ+⎟⎟

⎞⎜⎜⎝

⎛Δ

+ΔΔ

Δ

−=

−+−+ 2/12/12/12/1

,,

111111

ˆ

jjjiii

jiSji

yyyxxxt

Dp

βδ (2.24)

式(2.19)および式(2.20)から理解されるとおり,点(i,j)上の圧力補正量 jip ,δ のみが与えられた場合,

点 ( )ji, まわりの速度 jinu ,2/1

1+

+, ji

nu ,2/11

−+

, 2/1,1

++

jinv , 2/1,

1−

+ji

nv および圧力 jinp ,

1+ のみ

がその影響を受ける.これより,点 ( )ji, まわりの速度および圧力をそれぞれ次式により補正す

る.

jii

jiji px

tuu ,2/1

,2/1,2/1 ˆˆ δ+

++ ΔΔ

+← (2.25a)

jii

jiji px

tuu ,2/1

,2/1,2/1 ˆˆ δ−

−− ΔΔ

−← (2.25b)

jij

jiji py

tvv ,2/1

2/1,2/1, ˆˆ δ+

++ ΔΔ

+← (2.25c)

jij

jiji py

tvv ,2/1

2/1,2/1, ˆˆ δ−

−− ΔΔ

−← (2.25d)

および,

jijin

jin ppp ,,, δ+← (2.26)

HSMAC法の計算手順 は以下のとおりである. 1)初期条件として

nu , nv ,np を与え,

2)式(2.18)から u , v を計算し, 3)式(2.24),式(2.25),式(2.26)による点 ( )ji, まわりの速度および圧力の補正計算を全格子

点に対して実行し,さらにそれを ( ) ε<jiSDMAX ,ˆ が満足されるまで繰り返す(ε は連続

の式に対する許容誤差). ( ) ε<jiSDMAX ,ˆ が満足された時点の速度と圧力を

1+nu , 1+nv ,

1+np とする.

4) 1+nu , 1+nv ,1+np を nu , nv ,

np として 1)に戻る. 以上の手順を,非定常計算の場合には必要な時間まで,定常計算の場合には収束条件が満足さ

れるまで繰り返す.なお式(2.24)から,連続の式 ( ) 0ˆ, =jiSD が満足されれば速度と圧力は補正

されないことがわかる.

MAC法およびSMAC法と比べた場合のHSMAC法の利点は圧力のポアソン方程式を解

く必要が無いという点にある.しかし,HSMAC法はSMAC法の近似解法であり解の収束が

式(2..24)中の緩和係数β の値に大きく依存することが欠点となる.なお,β には 20 ≤< β の範囲の値が用いられ,経験的に 7.1=β 程度の値が推奨されている(3).

Page 42: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

42

2.2 フラクショナル・ステップ法 先のMAC法系統の解法ではNS方程式の粘性項および移流項が陽的に時間進行されている

ので数値安定性条件から時間刻み幅に対する制限が生じる.特に壁面近傍に差分格子を集中させ

て速度の滑り無し条件を課す場合,MAC法系統の解法では粘性項に対する数値安定性条件が厳

しくなり非常に小さな時間刻み幅を使用する必要が生じる.数値安定性条件の問題を解決するに

は陰的な時間進行法を導入すれば良いので,ここではNS方程式の粘性項に対してクランク・ニ

コルソン法を適用する解法を考える.この場合,式(2.1)と式(2.2)を時間離散化した方程式は次式

となる.

( ) ( ) svvpvvvvvv+∇+∇+−∇=∇−∇+

Δ− ++−−

+nnnnnnn

nn

t212111

1

2221

23 νν

・・ (2.27)

01 =⋅∇ +nv (2.28)

NS方程式の移流項には2次精度のアダムス・バシュフォース法が適用されている.ところで,

式(2.27)および式(2.28)を直接解いて速度1+nv および圧力

1+np の連立解を得るには大規模な行

列計算が必要となるので経済的ではない.これはNS方程式の粘性項あるいは移流項を陰解に時

間進行する解法に共通の問題点である.フラクショナル・ステップ法は,粘性項と圧力項との分離に

基づき非圧縮性流れの陰的な非定常数値計算を経済的に実施可能とする解法である. 2・2・1 フラクショナル・ステップ法と分離誤差 まず,フラクショナル・ステップ法の一例として Kim & Moin (KM)(1) によるフラクショナ

ル・ステップ法を示す.この解法では,式(2.27)は次の様に分離される.

( ) ( ) svvvvvvvv+∇+∇=∇−∇+

Δ− −− nnnnn

n

t2211

221

23ˆ νν

・・ (2.29)

ϕ−∇=Δ

−+

t

n vv ˆ1 (2.30)

式(2.27)と式(2.29)との差をとり式(2.30)と比べるとポテンシャル関数ϕ と圧力1+np との関係が

ϕνϕ 21

2∇Δ−=+ tnp (2.31)

で与えられることがわかる.式(2.30)と式(2.28)からポテンシャル関数ϕ のポアソン方程式が得

られる.

v1⋅∇

Δ=∇⋅∇

tϕ (2.32)

KMのフラクショナル・ステップ法の計算手順 は以下のとおりである.

1)初期条件として nv を与え, 2)式(2.29)から v を計算し, 3)式(2.32)を解いてϕ を求めた後,

4)式(2.30)から 1+nv を求め,圧力が必要ならば式(2.31)から1+np を求め,

5) 1+nv を nv として 1)に戻る. 以上の手順を必要な時間まで繰り返す.

ところで,KMのフラクショナル・ステップ法では式(2.27)を式(2.29)および式(2.30)へと分離

して解法が構成されているが,このような分離の際には分離誤差が生じてしまう.加えて,上記

のように空間的に離散化されていない方程式を基にフラクショナル・ステップ法を構成すると中

Page 43: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

43

間速度 v の境界条件の設定が曖昧となってしまう.分離誤差および中間速度の境界条件設定の問

題を解決するため,時間および空間に関して完全に離散化された方程式を基に解法を議論する.

ここでは式(2.27)と式(2.28)の空間微分演算子についても離散化した方程式を考える.

ubsuupccuu++++−=−+

Δ− ++−

+nnnnn

nnLLG

t 2221

23 111

1 νν (2.33)

pbu =+1nD (2.34)

ただし,速度 ( )vu, および圧力 p の離散値ベクトルをそれぞれuおよびp,移流項の離散ベクトル

をc と表記している.また, L は離散的ラプラス演算子,G は離散的勾配演算子, D は離散

的発散演算子である.これらの離散演算子は境界条件も考慮されたものであり,境界条件から生

じる陽的な項はNS方程式および連続の式それぞれに対して ub および pb で表現されている.式

(2.33)と式(2.34)を行列を用いて表示すれば次式となる.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ Δ+

+

KM

KMn

n

DtGA

p

u

rr

pu

1

1

0 (2.35)

ここで A は ⎟⎠⎞

⎜⎝⎛ Δ−= LtIA

, I は単位行列であり,また式(2.35)の右辺のベクトルは,

⎥⎥⎥

⎢⎢⎢

⎡⎟⎠⎞

⎜⎝⎛ +++−⋅Δ+⎟

⎠⎞

⎜⎝⎛ Δ+

=⎥⎦

⎤⎢⎣

⎡ −

p

u

p

u

b

bsccurr 1

21

23

2nnn

KM

KM tLtI ν

で定義される.式(2.35)の右辺は陽的に扱う項および境界条件により生じる項,左辺が陰的に扱う

項である.フラクショナル・ステップ法の導入に伴う分離誤差の評価を行うため,式(2.35)に対し

て次の近似式を導入する(2). ( )

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ Δ+

+

KM

KMn

n

DGABtA

p

u

rr

pu

1

1

0 (2.36)

上式中の行列 B は 1−A に対する近似行列である.式(2.36)の左辺の行列は次式のようにLU分解

できる.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ Δ⎥⎦

⎤⎢⎣

⎡Δ− +

+

KM

KMn

n

ItBGI

tDBGDA

p

u

rr

pu

1

1

00

(2.37)

上式はさらに次の2式へと分離できる.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡Δ− KM

KM

tDBGDA

p

u

rr

puˆˆ0

(2.38)

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡ Δ+

+

pu

pu

ˆˆ

0 1

1

n

n

ItBGI

(2.39)

式(2.38)および式(2.39)の行列を展開して整理すると次式を得る.

KMA uru =ˆ (2.40)

( )pbup −Δ

=+ ˆ11 Dt

DBG n (2.41)

11 ˆ ++ −= nn BGpuu (2.42) 式(2.40)~式(2.42)を解くことは式(2.36)を解くことと等価である.また,式(2.40)~式(2.42)中に

Page 44: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

44

現れる空間的な離散演算子は既に境界条件が考慮されたものであるので,適切に離散化されたフ

ラクショナル・ステップ法では中間速度 u に対する境界条件は必要ないことがわかる. 次に,行列 B の選択に応じたフラクショナル・ステップ法を考える.まず 1−= AB の場合は

式(2.35)を直接解くことに等しく分離誤差はゼロであるが,1−A の計算に時間がかかるのであま

り用いられない(Uzawa 法).KMのフラクショナル・ステップ法を含め従来のフラクショナル・

ステップ法の多くは IB = を採用することに対応し,その場合 ( ) LtIAB2ν

Δ−=− となるので

時間1次精度の分離誤差を持つ.KMのフラクショナル・ステップ法は一見して時間2次精度の

ようにも受け取れるが,式(2.27)を分離して式(2.29)~式(2.5)を構成する際に ( ) ( )ϕϕ ∇∇=∇∇ 22 という解析的な互換性が用いられている.しかし,離散式について対応する互換性は一般的に成

立しない( ϕϕ LGGL ≠ ).Perot (2)は時間2次精度および3次精度のフラクショナル・ステップ

法がそれぞれ LtIB ⎟⎠⎞

⎜⎝⎛Δ+=

および 22

22LtLtIB ⎟

⎠⎞

⎜⎝⎛Δ+⎟

⎠⎞

⎜⎝⎛Δ+=

νν で構成できることを示した.

しかし,これらの高次精度のフラクショナル・ステップ法はあまり汎用的ではない. 2・2・2 Dukowicz - Dvinsky (DD)のフラクショナル・ステップ法 非定常問題に対してフラクショナル・ステップ法を適用する場合には,できれば分離誤差も含

めて2次精度以上の時間精度を持つ解法を使用したい.Perot の時間2次精度フラクショナル・

ステップ法とは別に,Dukowicz &Dvinsky (6) (DD) は式(2.35)をデルタ形式(解の補正量を変数

とする形式)に書き直した次の行列方程式を基に,より汎用的な時間2次精度のフラクショナル・

ステップ法が構成できることを示した.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

−−

⎥⎦

⎤⎢⎣

⎡ Δ+

+

DD

DDnn

nn

DtGA

p

u

rr

ppuu

1

1

0, (2.43)

ここで式(2.43)の右辺のベクトルは以下で定義される.

⎥⎥⎥

⎢⎢⎢

+−

⎟⎠⎞

⎜⎝⎛ +++−+−⋅Δ

=⎥⎦

⎤⎢⎣

⎡ −

p

u

p

u

bu

bsccuprr

n

nnnn

DD

DD

D

LGt 1

21

23ν

DDのフラクショナル・ステップ法が時間2次精度となることは式(2.43)の圧力項がデルタ形式で

あることによる.速度ベクトルもデルタ形式で記述されているが,これは後に式(2.54)で紹介する

近似因子化を導入するためであり,DDのフラクショナル・ステップ法の本質とは関係ない.D

Dのフラクショナル・ステップ法では,式(2.43)の左辺の行列に対してKMのフラクショナル・ス

テップ法と同様な近似を導入する.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

−−

⎥⎦

⎤⎢⎣

⎡ Δ+

+

DD

DDnn

nn

DtAGA

p

u

rr

ppuu

1

1

0 (2.44)

式(2.43)から式(2.44)への近似の誤差は

( ) ( ) ( ) ( )2111

2tOLGtGtAG nnnnnn Δ=−Δ−=−−−Δ +++ pppppp ν

(2.45)

となるので,DDのフラクショナル・ステップ法は時間2次精度の分離誤差を持つ.ここで

( )tOnn Δ=−+ pp 1 と評価されている.近似式(2.44)は次のようにLU分解が可能である.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

−−

⎥⎦

⎤⎢⎣

⎡ Δ⎥⎦

⎤⎢⎣

⎡Δ− +

+

DD

DDnn

nn

ItGI

tDGDA

p

u

rr

ppuu

1

1

00

(2.46)

Page 45: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

45

これは次のように分離できる.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡Δ− DD

DD

tDGDA

p

u

rr

δpδu0

(2.47)

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

−−

⎥⎦

⎤⎢⎣

⎡ Δ+

+

δpδu

ppuu

nn

nn

ItGI

1

1

0 (2.48)

式(2.47)および式(2.48)を展開して整理すると次式を得る.

DDLtI urδu =⎟⎠⎞

⎜⎝⎛ Δ−

(2.49)

δuuu += nˆ (2.50)

( )pbuδp −Δ

= ˆ1 Dt

DG (2.51)

δpuu tGn Δ−=+ ˆ1 (2.52)

δppp +=+ nn 1 (2..53) 式(2.49)~式(2.53)を用いて速度および圧力の時間進行を行うのがDDのフラクショナル・ステッ

プ法である. DDのフラクショナル・ステップ法の計算手順 は以下のとおりである.

1)初期条件としてnu および np を与え,

2)式(2.49)を解いてδu を求め,式(2.50)から u を計算し, 3)式(2.51)を解いてδp を求めた後,

4)式(2.52)から1+nu を求め,式(2.53)から圧力

1+np を求め,

5)1+nu および 1+np をそれぞれ

nu および np として 1)に戻る. 以上の手順を必要な時間まで繰り返す.

DDのフラクショナル・ステップ法の計算手順のうち,式(2.49)は速度補正量の離散式,式

(2.51)は圧力補正量のポアソン方程式に対応する離散式であり,いずれも行列を解く必要がある.

式(2.51)は連続の式の離散式を満足させるために解かれるものであり,そのままの形で出来るだけ

精度良く解かねばならない.式(2.49)に対しては近似因子化,

DDzyx LtILtILtI urδu =⎟⎠⎞

⎜⎝⎛ Δ−⎟

⎠⎞

⎜⎝⎛ Δ−⎟

⎠⎞

⎜⎝⎛ Δ−

222ννν

(2.54)

を導入すれば経済的に解くことができる.ここで, xL , yL , zL はそれぞれ x , y , z 各方向

の2階微分に対応する離散演算子であり,L と同様に境界条件も考慮されているものとする.式

(2.49)から式(2.54)への演算子の近似誤差は ( )2tO Δ であるので,この近似は式(2.27)が持つ時間精

度(2次精度)を低下させない.式(2.54)の解 uδ は1次元の行列を3回解こくとで得られる.

DDxLtI uruδ =′′⎟⎠⎞

⎜⎝⎛ Δ−

(2.55a)

uδuδ ′′=′⎟⎠⎞

⎜⎝⎛ Δ− yLtI

(2.55b)

uδδu ′=⎟⎠⎞

⎜⎝⎛ Δ− zLtI

(2.55c)

Page 46: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

46

2・3 SIMPLE法系統の解法 NS方程式の時間進行に関して,MAC法系統の解法では粘性項および移流項の双方が陽的に

時間進行され,フラクショナル・ステップ法では粘性項が陰的に移流項は陽的に時間進行される.

SIMPLE法系統の解法は粘性項および移流項の双方を陰的に時間進行してさらに大きな時間

刻み幅の設定を可能とし収束性および経済性を高める解法である.しかしながら,速度に関して

非線形である移流項を完全に陰的に扱うことは各時間ステップの運動方程式の時間積分に繰り返

し計算が必要となり経済的でないので,SIMPLE法系統の解法では式(2.1)と式(2.1)を時間離

散化した次式,

( ) svpvvvv+∇+−∇=∇+

Δ− +++

+1211

1nnnn

nn

tν・ (2.56)

01 =⋅∇ +nv (2.57)

を基に解法が構成される.2次元流れでは式(2.56)および式(2.57)は次式となる.

x

nnnnnnnnns

yu

xu

xp

yuv

xuu

tuu

+⎟⎟⎠

⎞⎜⎜⎝

∂∂

+∂

∂+

∂∂

−=∂

∂+

∂∂

− ++++++

2

12

2

121111ν (2.58a)

y

nnnnnnnnns

yv

xv

yp

yvv

xvu

tvv

+⎟⎟⎠

⎞⎜⎜⎝

∂∂

+∂

∂+

∂∂

−=∂

∂+

∂∂

− ++++++

2

12

2

121111ν (2.58b)

011

=∂

∂+

∂∂ ++

yv

xu nn

(2.59)

さらに式(2.58)および式(2.59)の空間微分を離散化して整理すれば次式を得る.

( )2/1

,1

,11

,2/1,2/1

1,2/1

1,2/1

+

++

+

++

++

++ Δ

−−=⎟

⎠⎞

⎜⎝⎛∑ ⋅+

i

jin

jin

jiu

jinbnb

nnb

uji

njiP

u

xppbuaua (2.60a)

( )2/1

,1

1,1

2/1,2/1,

12/1,

12/1,

+

++

+

++

++

++ Δ

−−=⎟

⎠⎞

⎜⎝⎛∑ ⋅+

j

jin

jin

jiv

jinbnb

nnb

vji

njiP

v

yppbvava (2.60b)

02/1,1

2/1,1

,2/11

,2/11

−+

Δ− −

++

+−

++

+

j

jin

jin

i

jin

jin

yvv

xuu

(2.61)

式(2.60)中の総和記号は周辺点 nb =E, W, N, S の総和をとることを意味し, jiu ,2/1+ に関する式

(2.60a)の左辺は次式と展開される.

( )

[ ] jiSn

Su

Nn

Nu

Wn

Wu

En

Eu

Pn

Pu

jinbnb

nnb

uji

njiP

u

uauauauaua

uaua

,2/111111

,2/1

1,2/1

1,2/1

++++++

+

++

++

⋅+⋅+⋅+⋅+⋅=

⎟⎠⎞

⎜⎝⎛∑ ⋅+

P

ua , Eua , W

ua , Nua , S

ua は離散式の係数で,粘性項および移流項の離散化および境界条件

に応じて定められる.ここで,変数の添字 P,E,W,N,S は離散点の相対的な位置を表す.

図 2.5 に, jiu ,2/1+ に対するNS方程式のスタガード格子上の離散点を示す.速度 jiu ,2/1+ の離散

式については jiP uu ,2/1+= , jiE uu ,2/3+= , jiW uu ,2/1−= , 1,2/1 ++= jiN uu , 1,2/1 −+= jiS uu と定義され

Page 47: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

47

る.SIMPLE法系統の解法の空間離散化は,通常図中の破線で示されるコントロール・ボリ

ュームに関する有限体積法で行われる.式(2.60)中の右辺第2項は圧力勾配項の離散式である.式

(2.60a)中の jiub ,2/1+ は離散式の残りの項をまとめたものである.速度 2/1, +jiv の離散式も同様

に構成される(図 2.6).

図2.5 jiP uu ,2/1+= に対する離散点 図2.6 2/1, += jiP vv に対する離散点 2・3・1 SIMPLE法

式(2.60)は速度成分u ,v に関する離散式であるが,右辺に現れる 1+np が与えられなければ速

度 1+nu , 1+nv は求められない.SIMPLE法 (7)(Semi-Implicit Method for Pressure-Linked Equations)では,まず次式を解いて速度の予測値 *u , *v を求める.

( )2/1

,,1,2/1

,2/1,2/1,2/1

+

++

+++ Δ

−−=⎟

⎠⎞

⎜⎝⎛∑ ⋅+

i

jin

jin

jiu

jinbnbnb

ujijiP

u

xppbuaua ** (2.62a)

( )2/1

,1,2/1,

2/1,2/1,2/1,

+

++

+++ Δ

−−=⎟

⎠⎞

⎜⎝⎛∑ ⋅+

j

jin

jin

jiv

jinbnbnb

vjijiP

v

yppbvava ** (2.62b)

しかし *u と *v は連続の式の離散式(2.60)を満足しない.そこで圧力および速度の補正を行って式

(2.61)を満足させることを考える.

jijin

jin ppp ,,,

1 δ+=+ (2.63)

jijijin uuu ,2/1,2/1,2/1

1+++

+ += δ* (2.64a)

2/1,2/1,2/1,1

++++ += jijiji

n vvv δ* (2.64b) 式(2.63)と式(2.64)を式(2.60)に代入した後に式(2.62)との差を計算すると uδ および vδ と pδ

x

y

xi

xi+1/2

xi+1

xi–1/2

yj

yj+1/2

yj+1

yj–1

yj–1/2

xi+3/2

Δxi+1/2

Δyj

uN

uP

uS

uEuWpi+1,jpi,j

x

y xi

xi+1/2

xi+1

xi–1/2

yj+1

yj+1/2

yj

yj–1/2

Δxi

Δyj+1/2

vN

pi,j+1

pi,j

xi–1

vP

vS

vEvW

yj+3/2

Page 48: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

48

との関係式を得る.

( )2/1

,,1

,2/1,2/1,2/1

+

+

+++ Δ

−−=⎟

⎠⎞

⎜⎝⎛∑ ⋅+

i

jiji

jinbnbnb

ujijiP

u

xpp

uauaδδ

δδ (2.65a)

( )2/1

,1,

2/1,2/1,2/1,

+

+

+++ Δ

−−=⎟

⎠⎞

⎜⎝⎛∑ ⋅+

j

jiji

jinbnbnb

vjijiP

v

ypp

vavaδδ

δδ (2.65b)

ここで,解法が簡単になるように式(2.65)の左辺第2項の総和の項を消去して uδ および vδ と pδ との関係式を簡略化する.

( ) 2/1

,,1

,2/1,2/1

1

+

+

++ Δ

−−=

i

jiji

jiPuji x

pp

au

δδδ (2.66a)

( ) 2/1

,1,

2/1,2/1,

1

+

+

++ Δ

−−=

j

jiji

jiPvji y

pp

av

δδδ (2.66b)

圧力補正量 pδ の方程式は式(2.64),(2.66)を連続の式(2.61)に代入して得られる.

( ) ( )

( ) ( )( ) jiS

j

jiji

jiPv

j

jiji

jiPv

j

i

jiji

jiPu

i

jiji

jiPu

i

D

ypp

aypp

ay

xpp

axpp

ax

,

2/1

1,,

2/1,2/1

,1,

2/1,

2/1

,1,

,2/12/1

,,1

,2/1

111

111

*=

⎥⎥⎦

⎢⎢⎣

Δ

−−

Δ

Δ+

⎥⎥⎦

⎢⎢⎣

Δ

−−

Δ

Δ

−+

+

+

−+

+

+

δδδδ

δδδδ

(2.67)

ここで,

( )j

jiji

i

jijijiS y

vvx

uuDΔ

−+

Δ−

= −+−+ 2/1,2/1,,2/1,2/1,

*****

式(2.67)を解いて得られる圧力補正量 pδ を用いて式(2.64),(2.66)により速度補正を行うと,連

続の式を離散的に満足する速度 1+nu および 1+nv が得られる.圧力の補正には式(2.63)ではなく緩

和係数 pα ( 10 ≤< pα )を導入した次式を用いる.

jipjin

jin ppp ,,,

1 δα+=+ (2.68)

緩和係数 pα の導入は式(2.65)から式(2.66)への簡略化の際に生じる誤差のために必要となる.ま

た,速度場が連続の式を満足するように式(2.67)が定められているので速度の補正に緩和係数は導

入しない.

SIMPLE法の計算手順 は以下のとおりである. 1)初期条件として

nu ,nv , np を与え,

2)式(2.62)を解いて *u と *v を求め, 3)式(2.67)を解いて pδ を求め,

4)式(2.64)および式(2.66)による速度補正,および式(2.68)による圧力補正を通して1+nu ,

1+nv ,1+np を求め,

5) 1+nu , 1+nv ,1+np を nu , nv , np として 1)に戻る.

以上の手順を,非定常計算の場合には必要な時間まで,定常計算の場合には収束条件が満足さ

れるまで繰り返す.

Page 49: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

49

なお,式(2.62)のような輸送方程式の離散式を繰り返し法で解く場合,SIMPLE法系統の解

法では減速緩和法を導入して数値計算の安定性を高めることが行われる.式(2.62a)に減速緩和法

を導入すれば次式を得る.

( )

( ) jipre

jiPu

u

u

i

jin

jin

jiu

jinbnbnb

uji

u

jiPu

uax

ppb

uaua

,2/1,2/12/1

,,1,2/1

,2/1,2/1

,2/1

1++

+

++

++

+

−+

Δ−

−=

⎟⎠⎞

⎜⎝⎛∑ ⋅+

αα

α**

(2.69)

ここで ji

preu ,2/1+ は繰り返し計算における1つ前のステップでの*u の値であり, uα は減速緩

和係数( 10 ≤< uα )である.速度 v に対しても,また一般的に輸送方程式の離散式を解く場合

にも同様の減速緩和法が導入される. SIMPLE法の問題点は,2つのパラメータ( uα と pα ) を流れ場に応じて定めなければ

ならないこと,および解の収束性が pα の値に大きく依存することである.Patankar (8)は uα =

0.5, pα =0.8 を推奨しているが,その後の研究で uα =1- pα とすれば概ね後に述べるSIMP

LEC法と同等の収束性が得られることが示されている(9). 補足:行列分解によるSIMPLE法の計算アルゴリズムの導出

式(2.60),式(2.61)をまとめて行列表示すれば次式となる.

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡+

+

p

ubb

pu

1

1

0 n

n

DGA

ただし,G は離散的勾配演算子,D は離散的発散演算子であり,これら離散的空間演算子では

境界条件も考慮されているものとする.境界条件から生じる項はNS方程式および連続の式それ

ぞれに対して ub および pb に含まれているものとする.ここで,pn+1=pn+δp’ を代入し,左辺

の行列を LU 分解すると以下を得る.

⎥⎥⎦

⎢⎢⎣

⎡ −=⎥

⎤⎢⎣

′⎥⎦

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡−

+−

−p

ub

pbpδ

u nn GI

GAIGDAD

A 11

1 0

0

この式は次の2式へと分解できる.

⎥⎥⎦

⎢⎢⎣

⎡ −=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡− −

p

ub

pbδpu nG

GDADA

*

*

10

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

′⎥⎦

⎤⎢⎣

⎡ +−

*

*11

0 δpu

pδun

IGAI

さらに,A-1に対して次の近似を導入する. ( )[ ] 11 diag1 −− ≈ AA

diag()は行列の対角項を抽出する関数で,αp は上記対角化近似における補正係数である.最後に,

δp*=αpδp とおいた後に分解された行列を展開して整理すると次の計算アルゴリズムを得る.

Page 50: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

50

nGA pbu u −=*

( )[ ] pbuδp −=− *1diag DGAD

( )[ ] δpuu GAn 1*1 diag −+ −=

δppp pnn α+=+1

これは SIMPLE 法の計算アルゴリズムである.また,以上の導出から,SIMPLE 法の圧力補正

係数 αp の導入は A-1の近似に伴うものであることが理解される.

2・3・2 SIMPLER法

SIMPLE法の収束性を改善する解法としてSIMPLER法(SIMPLE Revised)が

提案されている(8).SIMPLE法の問題点は圧力補正における減速緩和にあるので,SIMP

LER法では圧力補正量は連続の式を満足させるためだけに用い,圧力は補正計算をせずに運動

方程式から直接求める.この手順を説明するため,まず式(2.60)を変形した次式を導入する.

( ) ( ) 2/1

,1

,11

,2/1,2/1

,2/1

1

,2/11 1

+

++

+

++

+

+

++

Δ−

−⎟⎠⎞

⎜⎝⎛ ∑ ⋅−

=i

jin

jin

jiPu

jiPu

jinbnb

nnb

uu

jin

xpp

aa

uabu (2.70a)

( ) ( ) 2/1

,1

1,1

2/1,2/1,

2/1,

1

2/1,1 1

+

++

+

++

+

+

++

Δ−

−⎟⎠⎞

⎜⎝⎛ ∑ ⋅−

=j

jin

jin

jiPv

jiPv

jinbnb

nnb

vv

jin

ypp

aa

vabv (2.70b)

式(2.70)の右辺第1項は速度のみで計算される.また解が収束した時点で nn uu =+1 となること

を考慮し,次の中間速度 u および v を定義する.

( ) jiPu

jinbnb

nnb

uu

ji a

uabu

,2/1

,2/1,2/1ˆ

+

++

⎟⎠⎞

⎜⎝⎛ ∑ ⋅−

= (2.71a)

( ) 2/1,

2/1,2/1,ˆ

+

++

⎟⎠⎞

⎜⎝⎛ ∑ ⋅−

=jiP

vjinb

nbn

nbvv

ji a

vabv (2.71b)

この中間速度は既知量である.また,式(2.70)の右辺第1項を u および v で置き換え,この変形

に伴う圧力を np とすれば次式を得る.

( ) 2/1

,,1

,2/1,2/1,2/1

1 1ˆ+

+

+++

+

Δ−

−=i

jin

jin

jiPujiji

n

xpp

auu (2.72a)

( ) 2/1

,1,

2/1,2/1,2/1,

1 1ˆ+

+

+++

+

Δ−

−=j

jin

jin

jiPvjiji

n

ypp

avv (2.72b)

Page 51: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

51

式(2.72)を連続の式の離散式(2.61)に代入すれば圧力

np の方程式が得られる.

( ) ( )

( ) ( )( ) jiS

j

jin

jin

jiPv

j

jin

jin

jiPv

j

i

jin

jin

jiPu

i

jin

jin

jiPu

i

D

ypp

aypp

ay

xpp

axpp

ax

,

2/1

1,,

2/1,2/1

,1,

2/1,

2/1

,1,

,2/12/1

,,1

,2/1

ˆ

111

111

=

⎥⎥⎦

⎢⎢⎣

Δ−

−Δ

−Δ

+

⎥⎥⎦

⎢⎢⎣

Δ−

−Δ

−Δ

−+

+

+

−+

+

+

(2.73)

ここで,

( )j

jiji

i

jijijiS y

vvx

uuD

Δ

−+

Δ

−= −+−+ 2/1,2/1,,2/1,2/1

,

ˆˆˆˆˆ .

あとはSIMPLE法と同様にnp を用いて速度の予測値 *u および

*v の方程式を解いた後

に圧力補正量 pδ の方程式を解き速度補正を行う.ただしその際に圧力の補正は行わない.

SIMPLER法の計算手順 は以下のとおりである. 1)初期条件として

nu ,nv を与え,

2)式(2.71)から中間速度 u および v を計算し, 3)式(2.73)を解いて圧力

np を求め,

4)式(2.62)を解いて*u と

*v を求め, 5)式(2.67)を解いて pδ を求め,

6)式(2.64)および式(2.66)による速度補正を通して速度成分1+nu ,

1+nv を求め, 7)

1+nu ,1+nv を nu ,

nv として 1)に戻る. 以上の手順を,非定常計算の場合には必要な時間まで,定常計算の場合には収束条件が満足

されるまで繰り返す.

SIMPLER法では圧力方程式を2回(式(2.67)と式(2.73))解く必要があるので時間進行1

ステップあたりの計算時間はSIMPLE法よりもかかるが,圧力の緩和係数は使用しないので

その最適値を探す必要がなく,定常計算における収束性は一般的にSIMPLE法よりも優れて

いる.なお,式(2.62)を繰り返し法で解く過程では式(2.69)と同様の減速緩和法が導入される.

Page 52: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

52

2・3・3 SIMPLEC法

SIMPLE法において圧力の緩和係数 pα を導入しなければならないのは速度補正式の導出

の過程における式(2.65)から式(2.66)への大胆な近似に起因する.速度補正式の導出の過程におい

てSIMPLE法よりは妥当な近似を用いて速度補正式を導出するのがSIMPLEC法である(9).S

IMPLEC法の説明のため,まず式(2.65)を次の様に書き直す.

( )2/1

,,1

,2/1,2/1

,2/1 +

+

++

+ Δ

−−=⎥⎦

⎤⎢⎣⎡∑ −⋅+⎟

⎠⎞

⎜⎝⎛ ∑+

i

jiji

jinbPnbnb

uji

jinbnb

uP

u

xpp

uuauaaδδ

δδδ (2.74a)

( )2/1

,1,

2/1,2/1,

2/1, +

+

++

+ Δ

−−=⎥⎦

⎤⎢⎣⎡∑ −⋅+⎟

⎠⎞

⎜⎝⎛ ∑+

j

jiji

jinbPnbnb

vji

jinbnb

vP

v

ypp

vvavaaδδ

δδδ (2.74b)

速度補正量は空間に連続的に分布すると考えられるので式(2.74)の左辺第2項は他の項よりも値

が小さいことが期待される.これより,式(2.74)の左辺第2項を消去して uδ および vδ と pδ との関係式が与えられる.

2/1

,,1

,2/1

,2/11

+

+

+

+ Δ

⎟⎠⎞

⎜⎝⎛ ∑+

−=i

jiji

jinbnb

uP

uji x

pp

aau

δδδ (2.75a)

2/1

,1,

2/1,

2/1,1

+

+

+

+ Δ

⎟⎠⎞

⎜⎝⎛ ∑+

−=j

jiji

jinbnb

vP

vji y

pp

aav

δδδ (2.75b)

圧力補正量 pδ の方程式は式(2.64)と式(2.75)を連続の式(2.61)に代入して得られる.

( ) jiS

j

jiji

jinbnb

vP

vj

jiji

jinbnb

vP

vj

i

jiji

jinbnb

uP

ui

jiji

jinbnb

uP

ui

D

ypp

aaypp

aay

xpp

aaxpp

aax

,

2/1

1,,

2/1,

2/1

,1,

2/1,

2/1

,1,

,2/1

2/1

,,1

,2/1

111

111

*=

⎥⎥⎥⎥

⎢⎢⎢⎢

Δ

⎟⎠⎞

⎜⎝⎛ ∑+

−Δ

⎟⎠⎞

⎜⎝⎛ ∑+Δ

+

⎥⎥⎥⎥

⎢⎢⎢⎢

Δ

⎟⎠⎞

⎜⎝⎛ ∑+

−Δ

⎟⎠⎞

⎜⎝⎛ ∑+Δ

+

+

+

+

+

+

δδδδ

δδδδ

(2.76)

上式を解いて得られる圧力補正量 pδ を用いて式(2.64),式(2.75)により速度補正を行うと連続の

式を離散的に満足する速度1+nu および

1+nv が得られる.SIMPLE法とは異なり,SIMP

LEC法では圧力の補正に対する緩和計算は必要なく式(2.63)を直接用いる.

SIMPLEC法の計算手順 は以下のとおりである. 1)初期条件として nu , nv , np を与え, 2)式(2.62)を解いて *u と *v を求め, 3)式(2.76)を解いて pδ を求め,

Page 53: 第4回:流体計算の時間進行法と計算アルゴリズムfluid.web.nitech.ac.jp/Gotoh_Home_page/Edu/Public_course/Text/Text_4th.pdf · 2 第1章 時間進行法 目的:

53

4)式(2.64)および式(2.75)による速度補正,および式(2.63)による圧力補正を通して 1+nu , 1+nv ,1+np を求め, 5) 1+nu , 1+nv , 1+np を nu , nv , np として1)に戻る. 以上の手順を,非定常計算の場合には必要な時間まで,定常計算の場合には収束条件が満足さ

れるまで繰り返す. SIMPLEC法では,SIMPLER法と同様に圧力の緩和係数を導入する必要がないこと

が大きな利点である.また,SIMPLEC法で解かれる圧力補正量の式(2.76)および速度補正量

の定義式(2.75)はSIMPLE法で対応する式の係数が変更されているだけであるので,SIMP

LEC法の時間進行1ステップあたりの計算時間はSIMPLE法とあまり変わらずSIMPL

ER法よりは少なくなる.なお,式(2.62)を繰り返し法で解く過程では式(2.69)と同様の減速緩和

法が導入される.

第2章の参考文献 (1) Harlow, F.H. and Welch, J.E., Numerical calculation of time-dependent viscous incompressible flow of

fluid with free surface, Phys. Fluids, 8 (1965.) 2182-2189. (2) Amsden, A.A. and Harlow, F.H., The SMAC method: A numerical technique for calculating

incompressible fluid flows, Los Alamos scientific laboratory of the Univ. of California, Rep. No. LA-4370 (1970).

(3) Hirt, C.W. and Cook, J.L., Calculating three-dimensional flows around structures and over rough terrain, J. Comput. Phys., 10 (1972) 324-340.

(4) Kim, J. and Moin, P., Application of a fractional-step method to incompressible Navier-Stokes equations, J. Comput. Phys., 5.9 (1985.) 308-323.

(5) Perot, J.B., An analysis of the fractional step method, J. Comput. Phys., 108 (1993) 5.1-5.8. (6) Dukowicz, J.K. and Dvinsky, A.S., Approximate factorization as a high order splitting for the implicit

incompressible flow equations, J. Comput. Phys., 102 (1992) 336-347. (7) Patanker, S.V. and Spalding, D.B., A calculation procedure for heat, mass and momentum transfer in

three-dimensional parabolic flows, Int. J. Heat Mass Transfer, 15. (1972) 1787-1806. (8) Patankar S.V., Numerical heat transfer and fluid flow (McGraw-Hill, New York) (1980), (水谷・香月訳,

コンピュータによる熱移動と流れの数値解析 (森北出版) (1985.)). (9) Van Doormaal, J.P. and Raithby, G.D., Enhancements of the SIMPLE method for predicting

incompressible fluid flows, Numerical Heat Transfer, 7 (1984) 147-163. (10) 日本機械学会,計算力学ハンドブック(第Ⅱ巻) (2006),第 3.1 節 (pp.32-46).