• 検索結果がありません。

応用数値解析特論 第 13 回

N/A
N/A
Protected

Academic year: 2021

シェア "応用数値解析特論 第 13 回"

Copied!
22
0
0

読み込み中.... (全文を見る)

全文

(1)

応用数値解析特論 第 13

〜定常

Navier-Stokes

方程式に対する

Newton

法〜

かつらだ

桂田

ま さ し

祐史

http://nalab.mind.meiji.ac.jp/~mk/ana/

2020 12 21

かつらだまさし

(2)

目次

1

本日の講義内容、連絡事項

2

Navier-Stokes 方程式に対する有限要素解析

定常 Navier-Stokes 方程式に対する Newton

例題プログラムの紹介 領域

領域の三角形分割 方程式

問題点と対処の方針 Newton法の復習

我々の問題でのff は?

Newton反復の弱形式 プログラム中の弱形式解読 初期値の選択

余談: Oseen方程式

3

少し時間が経ってからの訂正と追加

4

参考文献

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 2 / 22

(3)

本日の講義内容、連絡事項

当初は、第 13 回で定常 Navier-Stokes 方程式に対する Newton 法と非定常

Navier-Stokes 方程式に対する特性曲線有限要素法の解説をする予定で

あったが、真面目に説明を用意したところ、思いの外 Newton 法の説明 が長くなってしまった。

しかし、この手の話は意外ときちんと説明されないことが多いので ( とい うかきちんとした説明を目にしたことがない ) 、時間をかけて説明するこ とも意味があるだろうと考え直した次第。

参考に出来る資料を知らないので、意外とてこずりました。

かつらだまさし

(4)

11.4 定常 Navier-Stokes 方程式に対する Newton 法

11.4.1例題プログラムの紹介

前回、定常 Stokes 方程式を有限要素法で解いた。今回は定常

Navier-Stokes 方程式を有限要素法で解いてみよう。

例題プログラムは FreeFem++ 4.7 に付属する

/usr/local/ff++/share/FreeFEM/4.7-1/examples/examples/NSNewton.edp (2012 January, Hecht)

である。

ターミナルでこうすればコピーできる

cp -p /usr/local/ff++/share/FreeFEM/4.7-1/examples/examples/NSNewton.edp .

これはマニュアル (Hecht [1])

§2.12

に掲載されているプログラムとほ ぼ同じである ( 本来完全に同じにすべきであろう )

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 4 / 22

(5)

11.4.2 領域

Ce+Beb+Beo+Beu−Cc で囲まれる領域とする。ただし、R= 5,L= 15, Ce : (x,y) = (Rcost,Rsint) (t[π/2,3π/2]),

Cc : (x,y) = ((cost)/2,(sint)/2) (t[0,2π]), Beb : (x,y) = (Lt1.2,−R) (t[0,1]),

−Beu: (x,y) = (Lt1.2,R) (t[0,1]), Beo : (x,y) = (L,t) (t[−R,R]).

図1:領域Ω (∂Ω =Ce+Beb+Beo+Beu−Cc)

かつらだまさし

(6)

11.4.2 領域

Γ1:=−Cc+Ce+Beb+Beu, Γ2:=Beo

とおく。Γ1Γ2=∂Ωである。

Bebは(x,y) = (Lt,R) (t∈[0,1])と書いても同じことであるが、FreeFem++ではtに ついて等分することを想定してプログラムを書いたため、この式を採用しているのであ ろう。(こういう工夫が実際に効果があるのかどうかは分からない。)

Beuはプログラムでは

border beu(tt=1, 0){real t=tt^1.2; x=t*L; y=R; label=1;}

として与えられている。FreeFem++では、tt=1,0と書くことで、パラメーターが1か ら0まで減少する曲線を表すことが出来る、ということであろう(こういうことが出来 ることは、このプログラムを見て初めて知った)。

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 6 / 22

(7)

11.4.3 領域の三角形分割

三角形分割をする際に

Bei: (x,y) = (L/2,t) (t[−R/4,R/4]) という曲線(線分)も用いている。

Th=buildmesh(cc(-40)+ce(20)+beb(15)+beu(15)+beo(8)+bei(10));

図2:領域の三角形分割. 中央部にBei (朱色の線分)が見える

かつらだまさし

(8)

11.4.4 方程式

このプログラムが解く問題の方程式は(境界条件が、マニュアルにも、プログラムの注釈 にも明記されていないが…)、多分、次のものである。

(u· ∇)u−ν△u+∇p= 0 in Ω, (1a)

∇ ·u= 0 in Ω, (1b)

u=U on Γ1\Cc, (1c)

u=0 onCc, (1d)

−pn+ν∂u

∂n =0 onBeo. (1e)

(判断の根拠: 1というラベルをつけたΓ1δu=0としていることから、そこで Dirichlet境界条件をつけているのだろう。初期値u0

u0=

(1,0) (x2+y2>2) (0,0) (x2+y22)

であったから、δuCc では0, Γ1\Cc =Ce+Beb+Beu では(1,0)である。) (1e)は自然境界条件である(弱形式にはexplicitに現れない— Poisson方程式の問題に おける同次Neumann境界条件のようなもの)。

一様流(u=U:= (1,0))の中に置かれた円柱の周りの流れを求めよという問題である。

前回講義スライド14ページ「もう1つの弱形式」と類似点が多い。見比べてみよう。

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 8 / 22

(9)

部分積分公式

今回弱形式を導くのに必要な部分積分公式は以下のものである。

△u·v dx

=

∂Ω

∂u

∂n ·v dσ−

∇u

:

∇v dx,

(2)

∇p·v dx

=

∂Ω

pv ·n dσ−

p∇ ·v dx.

(3)

( 自力で確認できると思われるが、桂田 [2] の付録

B

に一応書いてある。 )

かつらだまさし

(10)

11.4.5 問題点と対処の方針

問題になることと、それへの対処について、次の2点を指摘しておく。

(a) Navier-Stokes方程式は非線形方程式であるので、一度に解を求めるのが難しい。

Newton法を用いて解くことにする。

(b) 動粘性係数ν=2001 は素朴な数値計算にとっては、かなり小さい(“円柱”の直径1 であるから、これを代表的な長さ、∥U∥= 1を代表的な速さに選ぶと、νの逆数が Reynolds数Re に相当するので、Re = 200ということになり、これが実はかなり 大きい、ということである)。Newton法の初期値は真の解に十分近いものを選ばな いと、反復が収束しないかもしれない。そのため、大きめのνについての解を求 め、それを小さいν の問題のNewton法の初期値とすることで、解きたいνに近づ いていく。

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 10 / 22

(11)

11.4.6 Newton 法の復習

方程式f(u) = 0の近似解を求めるためのNewton法とは、まず適当な初期値u0 を選 び、漸化式

(4) ui+1=ui−f(ui)1f(ui)

により{ui}を定め、十分大きなi に対して、ui を近似解に採用する、というものである。

(4)は、f(u) = 0をu=ui で線形近似した

f(ui)(u−ui) +f(ui) = 0 の解をui+1 とする、ということである。

wi :=f(ui)1f(ui)とおくと、wif(ui)wi =f(ui)の解であることに注意すると、次 のアリゴリズムを得る(FreeFem++のマニュアルでは、F の微分はDF と表している)。

Findu∈V such thatf(u) = 0 wheref:V →V.

1. chooseu0∈V

2. for (i=0; i<niter; i=i+1)

1. Solvef(ui)wi=f(ui)

2. ui+1 :=ui−wi

break∥wi∥< ε (修正量が小さくなったら反復を停止する)

かつらだまさし

(12)

11.4.7 我々の問題での ff

は?

f = 0が(1a) –(1e)と一致するようにするには

f(u,p) :=



(u· ∇)u−ν△u+∇p

∇ ·u u|Γ1−ub

−pn+ν∂u∂n

Beo



とすれば良いだろう。ここでub は次式で定まるΓ1上の関数である。

ub:=

(1,0) (on Γ1\Cc) (0,0) (on Cc).

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 12 / 22

(13)

11.4.7 我々の問題での ff

は? ( 続き )

f(u+δu,p+δp)f(u,p)

=

((u+δu)· ∇)uν(u+δu) +(p+δp)((u· ∇)uνu+p)

∇ ·(u+δu)− ∇ ·u (u+δu)|Γ1ub

u|Γ1ub

(p+δp)n+ν∂(u+δu)∂n

Beo

pn+ν∂u∂n

Beo

=

(δu· ∇)u+ (u· ∇)δuν(δu) +(δp) +δu· ∇(δu)

∇ ·(δu) δu|Γ1

(δp)n+ν∂(δu)∂n

Beo

.

であるから

f(u,p) δu

δp

=





(δu· ∇)u+ (u· ∇)δu−ν△(δu) +(δp)

∇ ·(δu) δu|Γ1

−(δp)n+ν∂(δu)∂n

Beo



.

(書くと手間だが、要するに2次式であるから、慣れると結果がすぐに分かる。)

かつらだまさし

(14)

11.4.8 Newton 反復の弱形式

f(ui,pi) δu

δp

=f(ui,pi)を具体的に書くと

(δu· ∇)ui+ (ui· ∇)δu−ν△(δu) +∇(δp) = (ui· ∇)ui−ν△ui+∇pi in Ω (5a)

∇ ·δu=∇ ·ui in Ω (5b)

δu= 0 on Γ1, (5c)

(δp)n+ν∂(δu)

∂n =0 onBeo. (5d)

当たり前のことであるが、δu,δpについての線形方程式である。

最初の2つに試験関数(それぞれvq)をかけて積分すると Z

[((δu· ∇)ui)·v+ ((ui· ∇)δu)·v−ν△(δu)·v+∇(δp)·v]dx

= Z

((ui· ∇)ui−ν△ui+∇pi)·v dx Z

q(∇ ·(δu))dx = 0.

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 14 / 22

(15)

11.4.8 Newton 反復の弱形式 ( 続き )

それぞれ部分積分して(境界積分を消去するのに、(5d)を用いる) Z

[((δu· ∇)ui)·v+ ((ui· ∇)δu)·v−ν∇(δu) :∇v−δp(∇ ·v)]dx (6a)

= Z

((ui· ∇)ui−ν△ui+∇pi)·v dx Z

q(∇ ·(δu))dx= 0.

(6b)

これが弱形式である。

かつらだまさし

(16)

11.4.9 プログラム中の弱形式解読

次のようなマクロが定義されている。

Grad(u1,u2) [dx(u1),dy(u1),dx(u2),dy(u2)]

これは∇u を4次元ベクトルにしたものである。これから

Grad(du1,du2)’*Grad(v1,v2)

dx(du1)*dx(v1)+dy(du1)*dy(v1)+dx(du2)*dx(v2)+dy(du2)*dy(v2)

となる。これは(δu) :∇v である。

注 FreeFem++では、’は転置を表す(MATLABでも使われる、古い記法の利用)。 ベクトルの内積

real[int] a=[1,2,3,4];

real[int] b=[-4,-3,-2,-1];

cout << a’*b << endl;

これで20という値が表示される。

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 16 / 22

(17)

11.4.9 プログラム中の弱形式解読 ( 続き )

一方

UgradV(u1,u2,v1,v2) [[u1,u2]’*[dx(v1),dy(v1)],[u1,u2]’*[dx(v2),dy(v2)]]

u1*dx(v1)+u2*dy(v1) u1*dx(v2)+u2*dy(v2)

,

すなわち

(u· ∇)v =

u1

∂x1

+u2

∂x2

v1

v2

= u1∂v1

∂x1 +u2∂v1

∂x2

u1∂v2

∂x1 +u2∂v2

∂x2

!

を意味する。ゆえに

UgradV(du1,du2,u1,u2)’*[v1,v2]

は((δu· ∇)u)·v を、

UgradV(u1,u2,du1,du2)’*[v1,v2]

は((u· ∇) (δu))·v を計算する。

かつらだまさし

(18)

11.4.9 プログラム中の弱形式解読 ( 続き )

int2d(Th)(

nu*(Grad(du1,du2)’*Grad(v1,v2)) + UgradV(du1,du2, u1, u2)’*[v1,v2]

+ UgradV( u1, u2,du1,du2)’*[v1,v2]

- div(du1,du2)*q - div(v1,v2)*dp - 1e-8*dp*q // stabilization term

)

は次式を意味する。

Z

ν(δu) :v+ ((δu· ∇)u)·v+ ((u· ∇) (δu))·vq∇ ·(δu)δp∇ ·v108(δp)q dx

- int2d(Th)(

nu*(Grad(u1,u2)’*Grad(v1,v2)) + UgradV(u1,u2, u1, u2)’*[v1,v2]

- div(u1,u2)*q - div(v1,v2)*p - 1e-8*p*q

)

は次式を意味する。

Z

ν∇ui:v+ ((ui· ∇)ui)·vq∇ ·uipi∇ ·v10−8piq dx

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 18 / 22

(19)

11.4.10 初期値の選択

最初にν= 1

50 について、

u0(x,y) =

(1,0) (x2+y2>2) (0,0) (x2+y22)

をNewton法の初期値としてNavier-Stokes方程式の解を求め、それをν を小さくした Navier-Stokes方程式に対するNewton法の初期値としている。

最終的には、ν= 1

200 の場合のNavier-Stokes方程式の解を求めている。

Newton法の収束が早ければ、νをより速く小さくしたり、Newton法が収束しなければ、

ν を少し(戻して)大きくしたり、細かい制御を行っている。余裕があればプログラムを 読んでみよう。

それが筋が通ったものであるか分からないが「そこまでやるか」と感心した。こういうプ ログラムを公開してもらえるのは、大変ありがたいことである。

かつらだまさし

(20)

11.4.11 余談 : Oseen 方程式

NSNewton.edpの弱形式を定義しているところでsolve Oseen()と書いてある。

オゼーン

Oseen方程式は、Navier-Stokes方程式を一様な定常流の周りで線形近似したものである。

無限遠で小さいが0ではない、一様な速度Uex = (U,0,0)を持つ流れを扱いたい。

v :=u−Uex

とおく(v はδu と書くのが良いかもしれない)。このとき (u· ∇)u=

(U+v1)

∂x1

+v2

∂x2

+v3

∂x3

U+v1

v2

v3

=U∂v

∂x1

+ (v· ∇)vU∂v

∂x1

.

そこで近似方程式として

(7) ∂v

∂t +U∂v

∂x1

=1

ρ∇p+ν△v

の採用が考えられる。この方程式が普通Oseen方程式と呼ばれる(と私は習った)。

Wikipedia等を見ると、もう少し意味を広げて解釈されることもあるようである。

しかし、Hechtのプログラムで、Oseenと言っているのは、かなりの拡張解釈であると思

われる(うるさい人がツッコミを入れそうだ)。

“Oseen近似”という検索語でヒットした玉田[3]は、Oseen方程式が研究された経緯が 分かる解説である(と私は感じた)。

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 20 / 22

(21)

少し時間が経ってからの訂正と追加

( 工事中 )

説明がイマイチのところがあり、一部は式レベルでミスをしている気が する。時間が取れしだい直す。今は要点のみ以下に示す。

例えば、

A

が線形作用素、

a

が双線形作用素とするとき、

f

(u) =

(Au−b a(u,u

)

)

の微分は

f

(u )v =

( Av

a(u,v

) +

a(v,u) )

.

これを言っておくと、計算の見通しが良いというか、定理に格上げして おいてそれを使って議論すると、説明がかなり短縮されそうである。

もうやってしまった授業のスライドなので、ミスを直すにとどめて、短 縮版の説明をするのは次の機会に、とするのかな。

かつらだまさし

(22)

参考文献

[1] Hecht, F.: Freefem++,

https://doc.freefem.org/pdf/FreeFEM-documentation.pdf, 前は http://www3.freefem.org/ff++/ftp/freefem++doc.pdf あった。

[2] 桂田祐史:流体力学の方程式に対する有限要素法 , http://nalab.

mind.meiji.ac.jp/~mk/labo/library/fem/fem-for-fluid.pdf (2009 〜 ).

[3] 玉田珖:近似解法 : Oseen 近似 , 境界層近似等について , 京都大学数理 解析研究所講究録 , Vol. 52, pp. 37–52 (1968), https://repository.

kulib.kyoto-u.ac.jp/dspace/handle/2433/107760.

かつらだ 桂 田

まさし

祐 史 応用数値解析特論 第13 20201221 22 / 22

参照

関連したドキュメント

[9, 28, 38] established a Hodge- type decomposition of variable exponent Lebesgue spaces of Clifford-valued func- tions with applications to the Stokes equations, the

We use L ∞ estimates for the inverse Laplacian of the pressure introduced by Plotnikov, Sokolowski and Frehse, Goj, Steinhauer together with the nonlinear potential theory due to

In [3] the authors review some results concerning the existence, uniqueness and regularity of reproductive and time periodic solutions of the Navier-Stokes equations and some

Using the theory of nonlinear semigroups, we prove existence results for strong and weak solutions1. Examples are

Wheeler, “A splitting method using discontinuous Galerkin for the transient incompressible Navier-Stokes equations,” Mathematical Modelling and Numerical Analysis, vol. Schotzau,

The existence and uniqueness of adapted solutions to the backward stochastic Navier-Stokes equation with artificial compressibility in two-dimensional bounded domains are shown

The numerical tests that we have done showed significant gain in computing time of this method in comparison with the usual Galerkin method and kept a comparable precision to this

In this section, we shall prove the following local existence and uniqueness of strong solutions to the Cauchy problem (1.1)..