1次元移流方程式でのCIP解法
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/04/02 08:51 UTC 版)
「CIP法」の記事における「1次元移流方程式でのCIP解法」の解説
CIP法は1次元移流方程式を高精度に解く解法である。1次元移流方程式は次式で与えられる。 ∂ f ∂ t + c ∂ f ∂ x = 0 {\displaystyle {\frac {\partial f}{\partial t}}+c{\frac {\partial f}{\partial x}}=0} ここで、cは移流速度である。 CIP法では、格子点の値 g ( = ∂ f ∂ x ) {\displaystyle g(={\frac {\partial f}{\partial x}})} についても同時に移流計算を行うことが特徴である。空間微分値 g {\displaystyle g} に対する移流方程式は、上の移流方程式を空間に関して微分することで得られ、以下のようになる。 ∂ g ∂ t + c ∂ g ∂ x = 0 {\displaystyle {\frac {\partial g}{\partial t}}+c{\frac {\partial g}{\partial x}}=0} 時刻 n {\displaystyle n} における値 f {\displaystyle f} とその微分値 g {\displaystyle g} が格子点上の点 i {\displaystyle i} 、 i u p {\displaystyle iup} (点 i u p {\displaystyle iup} は点 i {\displaystyle i} の上流点、つまり移流速度 c > 0 {\displaystyle c>0} なら i u p = i − 1 {\displaystyle iup=i-1} である)において既知とすると、この2点間のプロファイル(つまり形状)は以下のように3次多項式で表される。ここで、上付き添字は時刻を、下付き添字は格子点番号をあらわす。 F i n ( x ) = a i ( x − x i ) 3 + b i ( x − x i ) 2 + g i n ( x − x i ) + f i n {\displaystyle F_{i}^{n}(x)=a_{i}(x-x_{i})^{3}+b_{i}(x-x_{i})^{2}+g_{i}^{n}(x-x_{i})+f_{i}^{n}} このようにプロファイルの補間関数を3次関数で表現することがCubicInterpolated Pseudo-Particle Schemeたる所以である。ここで、係数 a i {\displaystyle a_{i}} 、 b i {\displaystyle b_{i}} は、 a i = g i n + g i u p n D 2 + 2 ( f i n − f i u p n ) D 3 {\displaystyle a_{i}={\frac {g_{i}^{n}+g_{iup}^{n}}{D^{2}}}+{\frac {2(f_{i}^{n}-f_{iup}^{n})}{D^{3}}}} b i = 3 ( f i u p n − f i n ) D 2 − 2 g i n + g i u p n D {\displaystyle b_{i}={\frac {3(f_{iup}^{n}-f_{i}^{n})}{D^{2}}}-{\frac {2g_{i}^{n}+g_{iup}^{n}}{D}}} のようになる。ただし、移流速度 c > 0 {\displaystyle c>0} のとき D = − Δ x {\displaystyle D=-\Delta x} 、 i u p = i − 1 {\displaystyle iup=i-1} であり、移流速度 c < 0 {\displaystyle c<0} のとき D = Δ x {\displaystyle D=\Delta x} 、 i u p = i + 1 {\displaystyle iup=i+1} である。 適合条件式により、 F i n ( 0 ) = f i n {\displaystyle F_{i}^{n}(0)=f_{i}^{n}} 、 ∂ F i n ( 0 ) ∂ x = g i n {\displaystyle {\frac {\partial F_{i}^{n}(0)}{\partial x}}=g_{i}^{n}} 、 F i n ( D ) = f i u p n {\displaystyle F_{i}^{n}(D)=f_{iup}^{n}} 、 ∂ F i n ( D ) ∂ x = g i u p n {\displaystyle {\frac {\partial F_{i}^{n}(D)}{\partial x}}=g_{iup}^{n}} が成り立つので、上式において係数 a i {\displaystyle a_{i}} 、 b i {\displaystyle b_{i}} が求まる。 このように、格子点上の点において微分値 g {\displaystyle g} も与えられるので、格子間のプロファイルを3次多項式で補間することができ、精度の高い計算が可能となる。 対象とする問題は移流方程式であるので、次の時刻 n + 1 {\displaystyle n+1} での値 f i n + 1 {\displaystyle f_{i}^{n+1}} と微分値 g i n + 1 {\displaystyle g_{i}^{n+1}} は、この2点間のプロファイルを c Δ t {\displaystyle c\Delta t} だけ移動することで得られる。つまり、 ξ = − c Δ t {\displaystyle \xi =-c\Delta t} として次式のようになる。 f i n + 1 = F i n ( ξ ) = a i ξ 3 + b i ξ 2 + g i n ξ + f i n {\displaystyle f_{i}^{n+1}=F_{i}^{n}(\xi )=a_{i}\xi ^{3}+b_{i}\xi ^{2}+g_{i}^{n}\xi +f_{i}^{n}} g i n + 1 = ∂ F i n ( ξ ) ∂ x = 3 a i ξ 2 + 2 b i ξ + g i n {\displaystyle g_{i}^{n+1}={\frac {\partial F_{i}^{n}(\xi )}{\partial x}}=3a_{i}\xi ^{2}+2b_{i}\xi +g_{i}^{n}}
※この「1次元移流方程式でのCIP解法」の解説は、「CIP法」の解説の一部です。
「1次元移流方程式でのCIP解法」を含む「CIP法」の記事については、「CIP法」の概要を参照ください。
- 1次元移流方程式でのCIP解法のページへのリンク