CIP-CSL2法((T. Yabe, R. Tanaka, T. Nakamura, F. Xiao, "An exactly conservative semi-Lagrangian scheme (CIP-CSL) in one dimension", Mon. Weather Rev. 129, pp.332-344, 2001.)),((T. Nakamura, R. Tanaka, T. Yabe and K. Takizawa, "Exactly Conservative Semi-Lagrangian Scheme for Multi-dimensional Hyperbolic Equations with Directional Splitting Technique", J. Comput. Phys. 174, pp.171-207, 2001.)),((K. Takizawa, T. Yabe, T. Nakamura, "Multi-dimensional semi-Lagrangian scheme that guarantees exact conservation", Comput. Phys. Commun. 148(2), pp.137-159, 2002.))は,
値&ref(eqa_phi_x.gif,,70%);とその積分値&ref(eqa_cipcsl2_1.gif,,70%);を用いる.
積分値&ref(eqa_D.gif,,70%);に対する移流方程式は,
#ref(eqa_cipcsl2_2.gif,,80%)
値&ref(eqa_phi_x.gif,nolink,70%);とその積分値&ref(eqa_cipcsl2_1.gif,nolink,70%);を用いる.
積分値&ref(eqa_D.gif,nolink,70%);に対する移流方程式は,
#ref(eqa_cipcsl2_2.gif,nolink,70%)

$D$の微分&ref(eqa_cipcsl2_3.gif,,70%);と定義すると
#ref(eqa_cipcsl2_4.gif,,80%)
$D$の微分&ref(eqa_cipcsl2_3.gif,nolink,70%);と定義すると
#ref(eqa_cipcsl2_4.gif,nolink,70%)

これは1次元の移流方程式と同じであり,
CIP法での&ref(eqa_cipcsl2_5.gif,,70%);と置き換えることで
CIP法での&ref(eqa_cipcsl2_5.gif,nolink,70%);と置き換えることで
CIP法と同様に計算ができる.

格子点i内での&ref(eqa_Di.gif,,70%);を以下のように定義する.
#ref(eqa_cipcsl2_6.gif,,80%)
格子点i内での&ref(eqa_Di.gif,nolink,70%);を以下のように定義する.
#ref(eqa_cipcsl2_6.gif,nolink,70%)

&ref(eqa_Di.gif,,70%);は&ref(eqa_xi.gif,,70%);から補間点までの積分値を表し,
&ref(eqa_Di.gif,nolink,70%);は&ref(eqa_xi.gif,nolink,70%);から補間点までの積分値を表し,
3次関数で補間する.
#ref(eqa_cipcsl2_7.gif,,80%)
#ref(eqa_cipcsl2_7.gif,nolink,70%)

CIP法における空間微分値gは&ref(eqa_phi.gif,,70%);で置き換えられるので,
[&ref(eqa_xi.gif,,70%);, &ref(eqa_xi+1.gif,,70%);]のプロファイルは,
#ref(eqa_cipcsl2_8.gif,,80%)
CIP法における空間微分値gは&ref(eqa_phi.gif,nolink,70%);で置き換えられるので,
[&ref(eqa_xi.gif,nolink,70%);, &ref(eqa_xi+1.gif,nolink,70%);]のプロファイルは,
#ref(eqa_cipcsl2_8.gif,nolink,70%)

&ref(eqa_D.gif,,70%);の定義より,
#ref(eqa_cipcsl2_9.gif,,80%)
&ref(eqa_D.gif,nolink,70%);の定義より,
#ref(eqa_cipcsl2_9.gif,nolink,70%)

また,
#ref(eqa_cipcsl2_10.gif,,80%)
#ref(eqa_cipcsl2_10.gif,nolink,70%)

これらの条件により係数&ref(eqa_ai.gif,,70%);,&ref(eqa_bi.gif,,70%);は以下のように求められる.
#ref(eqa_cipcsl2_11.gif,,80%)
これらの条件により係数&ref(eqa_ai.gif,nolink,70%);,&ref(eqa_bi.gif,nolink,70%);は以下のように求められる.
#ref(eqa_cipcsl2_11.gif,nolink,70%)

&ref(eqa_rho.gif,,70%);の時間発展は,&ref(eqa_xi.gif,,70%);,&ref(eqa_xi+1.gif,,70%);をバックトレースした位置&ref(eqa_cipcsl2_12.gif,,70%);に挟まれた部分の積分値となる(下図).
#ref(eqa_cipcsl2_13.gif,,80%)
&ref(eqa_rho.gif,nolink,70%);の時間発展は,&ref(eqa_xi.gif,nolink,70%);,&ref(eqa_xi+1.gif,nolink,70%);をバックトレースした位置&ref(eqa_cipcsl2_12.gif,nolink,70%);に挟まれた部分の積分値となる(下図).
#ref(eqa_cipcsl2_13.gif,nolink,70%)


#ref(csl2_int.gif,,100%)
#ref(csl2_int.gif,,80%)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS