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

計算手順と補正係数の決め方

2次元の FCT は1次元のものをそのまま拡張することで得ることができる. (18)を2次元形に拡張すると,


$\displaystyle \rho _{i.j}^{n+1}$ $\textstyle =$ $\displaystyle \rho _{i.j}^{n} - \frac{1}{\Delta x\Delta
y}\{[C_{i+\frac{1}{2},j}F_{i+\frac{1}{2},j}^{H} +
(1-C_{i+\frac{1}{2},j})F_{i+\frac{1}{2},j}^{L}]$  
    $\displaystyle - [C_{i-\frac{1}{2},j}F_{i-\frac{1}{2},j}^{H}+
(1-C_{i-\frac{1}{2},j})F_{i-\frac{1}{2},j}^{L}],$  
    $\displaystyle + [C_{i,j+\frac{1}{2}}G_{i,j+\frac{1}{2}}^{H}+
(1-C_{i,j+\frac{1}{2}})G_{i,j+\frac{1}{2}}^{L}]$  
    $\displaystyle - [C_{i,j-\frac{1}{2}}G_{i,j-\frac{1}{2}}^{H}+
(1-C_{i,j-\frac{1}{2}})G_{i,j-\frac{1}{2}}^{L}]\},$ (33')

となる. 補正係数 $C_{i\pm \frac{1}{2},j}, C_{i,j\pm \frac{1}{2}}$ を決める手順は(19)$\sim $(32)と同様である.

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

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

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

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

    とする.

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

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

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


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