CIP法

CIP法（CIPほう、）とは、矢部孝らによって提案された、双曲型偏微分方程式を解く高次精度差分法の一つである。CIP法は高精度差分スキームであるので、機械工学、流体、電磁気、弾性体力学などの分野で広く数値解析に使用されている。
概要.
CIP法では3次関数を補間関数として使用することで、双曲型問題に対して分散エラーが少ない、数値拡散が小さい、局所的な高精度補間ができる、等間隔格子を使う必要がないなどの利点が得られる。
右図で、左上の絵は移流の様子を表している。
これを格子点上の値として計算機に記憶させると右上の絵のようになる。
ここで、線形補間を行うと左下の絵のようになり、本当の波形であるピンク色の破線とはかなり開きが出てくる。
これが数値拡散であり、次の段階ではこの数値拡散によるなまりがさらに数値拡散を進展させることになる。
対して、右下の絵は傾きを考慮して補間を行っており、数値拡散が少ないことが分かる。
「CIP」とはもともとの略であったが、研究がすすむにつれて3次多項式以外の補間関数を用いる手法へと発展した。
これにより、開発者の矢部孝は「CIP法」という名称の意味を考え直し、CIP法の本質が3次多項式を用いることにあるのではなく、元の方程式から導かれるいろいろな拘束条件をプロファイル(波の形状)に反映させることこそが本質であるとして現在の名称に変更した。よってとのどちらも正式名称ということになる
1次元移流方程式でのCIP解法.
CIP法は1次元移流方程式を高精度に解く解法である。1次元移流方程式は次式で与えられる。
ここで、cは移流速度である。
CIP法では、格子点の値formula_2についても同時に移流計算を行うことが特徴である。
空間微分値formula_3に対する移流方程式は、上の移流方程式を空間に関して微分することで得られ、以下のようになる。
時刻formula_5における値formula_6とその微分値formula_3が格子点上の点formula_8、formula_9(点formula_9は点formula_8の上流点、つまり移流速度
formula_12ならformula_13である)において既知とすると、この2点間のプロファイル(つまり形状)は以下のように3次多項式で表される。
ここで、上付き添字は時刻を、下付き添字は格子点番号をあらわす。
このようにプロファイルの補間関数を3次関数で表現することがたる所以である。
ここで、係数formula_15、formula_16は、
のようになる。
ただし、移流速度formula_12のときformula_20、formula_13であり、移流速度formula_22のときformula_23、formula_24である。
適合条件式により、formula_25、formula_26、formula_27、formula_28が成り立つので、上式において係数formula_15、formula_16が求まる。
このように、格子点上の点において微分値formula_3も与えられるので、格子間のプロファイルを3次多項式で補間することができ、精度の高い計算が可能となる。
対象とする問題は移流方程式であるので、次の時刻formula_32での値formula_33と微分値formula_34は、この2点間のプロファイルをformula_35だけ移動することで得られる。
つまり、formula_36として次式のようになる。
多次元問題でのCIP解法.
CIP法は多次元問題での移流方程式についても適用可能である。例として、2次元での移流方程式を考えてみるが、一般にformula_5次元での移流方程式にも適用できることを断っておく。
さて、2次元移流方程式は以下のように表せる。
ここで、formula_41は変数ベクトル、formula_42は係数マトリクスである。
2次元移流方程式にCIP法を適用する方法として、2元3次の多項式を補間関数として使う方法(A型CIP法)や方向分離解法により1次元移流方程式に落とし込んで計算する方法(M型CIP法)などが考えられる。
A型CIP法.
A型CIP法では、2次元移流方程式を解くにあたり、2元3次の多項式を補間関数として用いる。
つまり、formula_43軸、formula_44軸からなる平面空間において、補間関数は以下のようになる。
ここでも、点formula_9と点formula_48はそれぞれ、点formula_8と点formula_50の上流点である。
また、formula_51は係数であり、1次元での場合と同様に適合条件式より
格子点formula_52、formula_53、formula_54の値formula_55と微分値formula_56、格子点formula_57での値formula_58を用いて求められる。
A型CIP法では、点formula_57において値formula_55の連続性しか要求していない。
しかし、他の3点formula_52、formula_53、formula_54では
値formula_55と微分値formula_56の連続性も保証している。
このため、求めようとしている点formula_52に対して対角線上にあり最も遠い点formula_57のプロファイルが
不正確であるために、このプロファイルを持ってくるような大きな時間ステップをとってはならない。
方向分離解法.
方向分離解法は一般に多次元問題を1次元問題に帰着させるために行われる。
M型CIP法.
A型CIP法では補間関数の係数の数が多く、これを解析に適用しようとすると格子点上で覚えさせる値の数が多くなり、計算を行う上で合理的でない。
M型CIP法では、多次元の移流方程式に方向分離を行うことで幾つかの1次元移流方程式に帰着させ、1次元のCIPスキームで計算を行う。
方向分離解法を適用することで、上の2次元移流方程式をつぎのように分解できる。
このように方向分離を行うと、formula_43方向へ分離した式を解くことによって時刻formula_5の値formula_72から中間の値formula_73が得られ、formula_44方向へ分離した式を解くことによって中間の値formula_73から時刻formula_32の値formula_77が得られる。
M型CIP法でformula_78方向への移流計算を行うとき、ベクトルformula_41とformula_78方向の空間微分値formula_81については1節の1次元CIPスキームを使って解くことが出来るが、formula_82方向の空間微分値formula_83については更なる空間微分値formula_84を計算していないのでCIP法を使って求めることは出来ない。
よってformula_85方向の空間微分値formula_83を求めるためには線形補間を行うことで、移流計算を行う。
C型CIP法.
M型CIP法では2階の空間微分値formula_88を計算していなかったので、空間微分値formula_83を計算する際は線形補間を行っていた。
この方法ではある程度の精度は保証されるが、格子間隔を広くとった場合などにはformula_85方向の線形補間の影響が大きく出て、CIP法によるうまみを生かしきれなくなってしまう。
そこで、格子点上の2階空間微分値formula_84を覚え、formula_85方向にもCIP計算を行おうというのがC型CIP法である。