CIP法
CIP法(CIPほう、英: Constrained Interpolation Profile Scheme)とは、矢部孝らによって提案された、双曲型偏微分方程式を解く高次精度差分法の一つである。CIP法は高精度差分スキームであるので、機械工学、流体、電磁気、弾性体力学などの分野で広く数値解析に使用されている。
ここで、上付き添字は時刻を、下付き添字は格子点番号をあらわす。
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}}}
このように、格子点上の点において微分値 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}}
このように方向分離を行うと、 x 1 {\displaystyle x_{1}} 方向へ分離した式を解くことによって時刻 n {\displaystyle n} の値 f n {\displaystyle {\boldsymbol {f}}^{n}} から中間の値 f ∗ {\displaystyle {\boldsymbol {f}}^{*}} が得られ、 x 2 {\displaystyle x_{2}} 方向へ分離した式を解くことによって中間の値 f ∗ {\displaystyle {\boldsymbol {f}}^{*}} から時刻 n + 1 {\displaystyle n+1} の値 f n + 1 {\displaystyle {\boldsymbol {f}}^{n+1}} が得られる。
M型CIP法で x α {\displaystyle x_{\alpha }} 方向への移流計算を行うとき、ベクトル f {\displaystyle {\boldsymbol {f}}} と x α {\displaystyle x_{\alpha }} 方向の空間微分値 ∂ f ∂ x α {\displaystyle {\frac {\partial {\boldsymbol {f}}}{\partial x_{\alpha }}}} については1節の1次元CIPスキームを使って解くことが出来るが、 x β ( α ≠ β ) {\displaystyle x_{\beta }(\alpha \neq \beta )} 方向の空間微分値 ∂ f ∂ x β {\displaystyle {\frac {\partial {\boldsymbol {f}}}{\partial x_{\beta }}}} については更なる空間微分値 ∂ 2 f ∂ x α ∂ x β {\displaystyle {\frac {\partial ^{2}{\boldsymbol {f}}}{\partial x_{\alpha }\partial x_{\beta }}}} を計算していないのでCIP法を使って求めることは出来ない。