next up previous contents
Next: 流体力学方程式の差分解法 Up: MUSCL法 Previous: 高次精度風上差分

計算例

これを計算するためのプログラムは以下のようになる。

function minmod0(x,y:real):real;
begin
  if (x*y<=0) then
    result:=0
  else if (abs(x)<abs(y)) then
    result:=x
  else
    result:=y
end;

kappa:=0;
B:=(3-kappa)/(1-kappa);
for j:=1 to jm-1 do    // uL only
  f[j]:=u[j]+0.25*((1-kappa)*minmod0(u[j]-u[j-1],B*(u[j+1]-u[j]))
                  +(1+kappa)*minmod0(u[j+1]-u[j],B*(u[j]-u[j-1])));
  f[0]:=f[1];
for j:=1 to jm-1 do
  u[j]:=u[j]-nu*(f[j]-f[j-1]);
advectionの標準問題をクーラン数で50ステップ、100ステップ といて得られる構造を図2.4にしめした。

  
Figure 2.4: MUSCL法でadvectionの標準問題を解いた結果。 クーラン数で、50ステップ後と100ステップ後の解を示している。



Kohji Tomisaka
1999年02月16日 18時10分21秒