Time Derivative and Upwind Method
Upwind Method-8

Added viscosityは、dxをL で置き換えたたために起きた不都合を修正する必要不可欠な パラメーターであると言えます。つまり、数値解析では、 下の微分方程式を解くと、安定し且つ精度の高い数値解がえられることになります。

このセックションでは、Upwind method の説明に1次要素を使い、added viscosity としてαuL/2 が得られました。2次要素を使うと、違ったフォームのadded viscosity が導き出されます。

■差分でのUpwind method■
もともとUpwind method は、差分法の分野で開発されました。差分法では、1階微分を3つの方法で表すことが出来ます。

Type
Forward differenceΔT=(Ti+1-Ti)/L
Backward difference∇T=(Ti-Ti-1)/L
Central differenceδT=(Ti+1-Ti-1)/(2L)

上表のCentral difference は、Forward とBackward の平均を求めると得られます。

当初、差分法では、1階微分項の処理に、風上差分が使われていました。風上差分とは、速度(u)の方向をチェックして1階微分の近似方法を定めていました。例えば、u がx 軸のプラスの方向を向いていると、Backward difference を使い、その逆であるとForward difference を使います。この方法だと、速度(u)の方向を判定するというステップが必要になります。

ところが、1階微分項を下式の様に近似すると、その判定が不要になるばかりか、α=1または0以外の値も使うことができる。

上式のαは、前に紹介したα=coth(γ)-1/γと同じになります。

■流体解析への応用■
ここで紹介したUpwind methodをアップリケーションプログラムへ応用するとなると、様々な問題に遭遇します。私は、2次元の熱解析をカップルした流体解析に4-noded isoparametric 要素を使っています。この要素は、座標軸方向に限って1次要素に近い性質を持っているため、私はここで紹介した Added viscosity を使っています。

計算手順としては、t+Δt 時のAdded viscosity を得るために、各要素毎にt時の速度ベクトル{|u|,|v|}の最大値umaxとvmaxを計算します。要素の長さもLxとLyを前もって用意しておきます。すると、x方向とy方向のAdded viscosity は次の様になります。

k'x=k(1+γxα(γx)) γx=umaxLx/(2k)
k'y=k(1+γyα(γy)) γy=vmaxLy/(2k)

時間的に、Δt遅れの情報でAdded viscosity を計算していますが、安定した解析が得られています。次のテーマのFluid Dynamics で、Upwind Methodの計算例を紹介しています。

BACK NEXT Example
Menu Heat Equation Time derivative Upwind 1 Dim Example