Time Derivative and Upwind Method
Upwind Method-7

ここに、cothγ=(eγ+e)/(eγ-e) です。 計算機に組み込まれている関数で cothγを計算すると、γの値によっては、 正しい値を返さないときがあります。 理由は、cothがexpで構成されているからである。そこで、γの値によって次に示す式で計算します。

上式に示す様に、γが0.01より小さい場合のαの式は、少々複雑になっています。しかし、 γ/3でも解析の精度におおきな影響を与えることはありません。また、αの計算には、 倍精度を使って下さい。

先ほどの、計算例を今度はαを用いて計算してみましょう。グラフで示しても違いが判別できないので、数値を表示することにしました。ここUpwind solution をクリックしてみて下さい。見てわかるとおり、厳密解(Exact)とUpwind solution がまったく同じになっています。この計算に用いたプログラムUPWIND.FORは、ここをクリックするとブラウザーに表示されます。

■αγを加算する意味■
計算が一応成功したところで、 αγをAに加算する意味について考えてみましょう。ここで確認のために、もう一度、AとBを表示します。

上のAとBを、差分式に代入し、k/L を両辺にかけると、次の様になります。

この状態から、convective term (u・dT/dx) を取り除くと、微分方程式 kd2T/dxdx =0 を離散化した差分式になるはずである。結果は、次の様になります。

式を見ると、k の代わりに下式が熱伝導係数として使われていることになります。

この様に、k にαuL/2 を加算することにより、convective-diffusion heat equation で、近似解と厳密解が一致することになります。または、αuL/2 がk に加算されることにより、安定した数値解析が得られることになります。

このαuL/2 を数値解析の分野では、added viscosity とか numerical viscosity とか言います。

BACK NEXT
Menu Heat Equation Time derivative Upwind 1 Dim Example