next up previous contents
: Zalesak(1979) による表現: 2次元 : Zalesak(1979) による表現: 1次元 : 計算手順   目次

補正係数の決め方

補正係数 $C_{i+\frac{1}{2}}$ は補正フラックスによって補正された値 が極値を取らないように, すなわち $\rho _{i}$ がある最大値 $\rho _
{i}^{max}$ 及び $\rho _{i}^{min}$ を超えないように与える. その際対 象となる格子点に関わる全ての補正フラックスの存在を考慮すれば, 全節 で挙げたような多次元に拡張した場合に発生する問題を回避することがで きるだろう. これは次のような手順で $C_{i+\frac{1}{2}}$ を与えるこ とで達成することができる.

  1. antidifuusive フラックスに対しあらかじめ以下の条件を課しておく.
    $\displaystyle A_{i+\frac{1}{2}} =0$ $\textstyle \mbox{if}$ $\displaystyle A_{i+\frac{1}{2}}(\rho _
{i+1}^{td} - \rho _{i}^{td}) < 0,$  
      $\textstyle \mbox{and either}$ $\displaystyle A_{i+\frac{1}{2}}(\rho _
{i+2}^{td} - \rho _{i+1}^{td}) < 0,$  
      $\textstyle \mbox{or}$ $\displaystyle A_{i+\frac{1}{2}}(\rho _
{i}^{td} - \rho _{i-1}^{td}) < 0.$ (19')

    これは Book et al.(1975) で言うところの ``terrace'' を作 らないようにするためのものである(Book et al. 1975, 図9参 照). 実際は $ A_{i+\frac{1}{2}}(\rho _ {i+1}^{td} - \rho _
{i}^{td}) < 0 $ となることは稀なので, この条件を与えなくてもさ ほど問題にはならない.

  2. $\rho _{i}^{max}, \rho _{i}^{min}$ を以下のようにして与える.
    $\displaystyle \rho _{i}^{max}$ $\textstyle =$ $\displaystyle \mbox{max}(\rho _{i-1}^{td}, \; \rho _
{i}^{td}, \; \rho _{i+1}^{td}),$ (20')
    $\displaystyle \rho _{i}^{min}$ $\textstyle =$ $\displaystyle \mbox{min}(\rho _{i-1}^{td}, \; \rho _
{i}^{td}, \; \rho _{i+1}^{td}).$ (21')

    または clipping を抑えるために,

    $\displaystyle \rho _{i}^{a}$ $\textstyle =$ $\displaystyle \mbox{max}(\rho _{i}^{n}, \; \rho _{i}^{td}),$ (22')
    $\displaystyle \rho _{i}^{max}$ $\textstyle =$ $\displaystyle \mbox{max}(\rho _{i-1}^{a}, \; \rho _
{i}^{a}, \; \rho _{i+1}^{a}),$ (23')
    $\displaystyle \rho _{i}^{b}$ $\textstyle =$ $\displaystyle \mbox{min}(\rho _{i}^{n}, \; \rho _{i}^{td}),$ (24')
    $\displaystyle \rho _{i}^{min}$ $\textstyle =$ $\displaystyle \mbox{min}(\rho _{i-1}^{b}, \; \rho _
{i}^{b}, \; \rho _{i+1}^{b}),$ (25')

    とする.

  3. 以下の3つの量を用意する.
    $\displaystyle P_{i}^{+}$ $\textstyle =$ $\displaystyle \mbox{格子点 $i$\ に入る全ての antidiffusive フ
ラックスの和}$  
      $\textstyle =$ $\displaystyle \mbox{max}(0, A_{i-\frac{1}{2}}) - \mbox{min}(0,
A_{i+\frac{1}{2}}),$ (26')
    $\displaystyle Q_{i}^{+}$ $\textstyle =$ $\displaystyle (\rho _{i}^{max}-\rho _{i})\Delta x,$ (27')
    $\displaystyle R_{i}^{+}$ $\textstyle =$ $\displaystyle \left\{
\begin{array}{lcl}
\mbox{min}(1, Q_{i}^{+}/P_{i}^{+}) & \mbox{if} & P_{i}^{+}>0, \\
0 & \mbox{if} & P_{i}^{+}=0.
\end{array}\right.$ (28')

    $R_{i}^{+}$$i$ 点に流入しうる antidifuusive フラックスの上 限を決める.

  4. 同様に以下の3つの量を用意する.
    $\displaystyle P_{i}^{-}$ $\textstyle =$ $\displaystyle \mbox{格子点 $i$\ から出て行く全ての antidiffusive フ
ラックスの和}$  
      $\textstyle =$ $\displaystyle \mbox{max}(0, A_{i+\frac{1}{2}}) - \mbox{min}(0,
A_{i-\frac{1}{2}}),$ (29')
    $\displaystyle Q_{i}^{-}$ $\textstyle =$ $\displaystyle (\rho _{i}-\rho _{i}^{min})\Delta x,$ (30')
    $\displaystyle R_{i}^{-}$ $\textstyle =$ $\displaystyle \left\{
\begin{array}{lcl}
\mbox{min}(1, Q_{i}^{-}/P_{i}^{-}) & \mbox{if} & P_{i}^{-}>0, \\
0 & \mbox{if} & P_{i}^{-}=0.
\end{array}\right.$ (31')

    $R_{i}^{-}$$i$ 点から流出しうる antidifuusive フラックスの上 限を決める.

  5. 上で与えた $R_{i}^{+}, R_{i}^{-}$ を用いて補正係数を以下のよ うに与える.
    \begin{displaymath}
C_{i+\frac{1}{2}} = \left\{
\begin{array}{lcl}
\mbox{min}...
...}) & \mbox{if} &
A_{i+\frac{1}{2}} < 0.
\end{array} \right.
\end{displaymath} (32')


next up previous contents
: Zalesak(1979) による表現: 2次元 : Zalesak(1979) による表現: 1次元 : 計算手順   目次
odakker 平成18年2月13日