射影法

射影法（しゃえいほう、英語: projection method）とは、非圧縮性流れの問題を時間発展的に解くときの手法のひとつである。投影法（とうえいほう）、プロジェクションなどとも言う。 ここで”射影”とは、回転成分および発散成分の双方を含むベクトル場から発散を消し回転成分を取り出す操作のこと。 1967年にアレクサンダー・コリン（英語: Alexandre Chorin）によって、非圧縮性ナビエ・ストークス方程式を解くために導入された 。この方法は、圧力勾配項とそれ以外の項を分離して計算するため、分離型解法とか演算子分割とか多段法などと呼ばれる。 １時刻の計算は２段階に分けられる。第一段階では、圧力以外の効果による速度増分を計算し、仮の速度場（速度予測子などと呼ばれる）を得る。つづく第二段階で、速度の発散成分を消す。すなわちdivergence-free の空間へ射影する。実際の射影プロセスは反復解法によりポアソン式を解くことであり、同時に圧力場が得られる。 任意のベクトル場は回転成分（管状回転ベクトル場（英語: Solenoidal vector field））と流入出成分（渦なし場（英語: irrotational field）に分解できる。（ヘルムホルツ・ホッジ分解と呼ばれる。） つまり、 u = u s + u r = u s + ∇ ϕ {\displaystyle \mathbf {u} =\mathbf {u_{s}} +\mathbf {u_{r}} =\mathbf {u_{s}} +\nabla \phi } と分解できる。ここで u s {\displaystyle \mathbf {u_{s}} } は回転成分であり ∇ ⋅ u s = 0 {\displaystyle \nabla \cdot \mathbf {u_{s}} =0} である。また ϕ {\displaystyle \phi } はスカラー場である（任意の流入出成分は対応するスカラー場の勾配で表される）。 よって両辺の発散をとると ∇ ⋅ u = ∇ ⋅ u s + ∇ ⋅ ∇ ϕ = ∇ 2 ϕ {\displaystyle \nabla \cdot \mathbf {u} =\nabla \cdot \mathbf {u_{s}} +\nabla \cdot \nabla \phi =\nabla ^{2}\phi } という、 ϕ {\displaystyle \phi } に関するポアソン方程式の問題に帰着する。 任意ベクトル場 u {\displaystyle \mathbf {u} } が与えられたとき、上記方程式の ϕ {\displaystyle \phi } は一意に定められる。 すなわち、発散ゼロ場が u s = u − ∇ ϕ {\displaystyle \mathbf {u_{s}} =\mathbf {u} -\nabla \phi } として得られる。 このようにポアソン式を解くことで圧力場と発散ゼロの速度場を得る。 ベクトルの直交成分の一つを消す操作であることから射影法と呼ばれる。 非圧縮性すなわち密度一定のナビエストークス方程式（流体の運動量保存則）は次の通り。 ∂ u ∂ t + ( u ⋅ ∇ ) u = − 1 ρ ∇ p + ν ∇ 2 u {\displaystyle {\frac {\partial \mathbf {u} }{\partial t}}+(\mathbf {u} \cdot \nabla )\mathbf {u} =-{\frac {1}{\rho }}\nabla p+\nu \nabla ^{2}\mathbf {u} } コリンの原論文では、この運動量式に仮の流速 u ∗ {\displaystyle \mathbf {u} ^{*}} を導入し、圧力勾配項と他の項を分ける。 ∂ u ∂ t = u n + 1 − u n Δ t = u n + 1 − u ∗ Δ t + u ∗ − u n Δ t = − ( u ⋅ ∇ ) u − 1 ρ ∇ p + ν ∇ 2 u {\displaystyle {\begin{aligned}{\frac {\partial \mathbf {u} }{\partial t}}&={\frac {\mathbf {u} ^{n+1}-\mathbf {u} ^{n}}{\Delta t}}={\frac {\mathbf {u} ^{n+1}-\mathbf {u} ^{*}}{\Delta t}}+{\frac {\mathbf {u} ^{*}-\mathbf {u} ^{n}}{\Delta t}}\\&=-(\mathbf {u} \cdot \nabla )\mathbf {u} -{\frac {1}{\rho }}\nabla p+\nu \nabla ^{2}\mathbf {u} \end{aligned}}} つまり ( 1 ) u ∗ − u n Δ t = − ( u ⋅ ∇ ) u + ν ∇ 2 u ( 2 ) u n + 1 − u ∗ Δ t = − 1 ρ ∇ p {\displaystyle {\begin{aligned}(1)\qquad &{\frac {\mathbf {u} ^{*}-\mathbf {u} ^{n}}{\Delta t}}=-(\mathbf {u} \cdot \nabla )\mathbf {u} +\nu \nabla ^{2}\mathbf {u} \\(2)\qquad &{\frac {\mathbf {u} ^{n+1}-\mathbf {u} ^{*}}{\Delta t}}=-{\frac {1}{\rho }}\nabla p\end{aligned}}} となるような仮の流速 u ∗ {\displaystyle \mathbf {u} ^{*}} を考える。ここで上付きの n {\displaystyle n} は、時刻を表す。 すると、まず第一段階として、圧力勾配項を無視した(1)式により u ∗ = u n + Δ t { − ( u ⋅ ∇ ) u 2 + ν ∇ 2 u 2 } {\displaystyle \mathbf {u} ^{*}=\mathbf {u} ^{n}+\Delta t\left\{-(\mathbf {u} \cdot \nabla )\mathbf {u} ^{2}+\nu \nabla ^{2}\mathbf {u} ^{2}\right\}} から仮の速度場 u ∗ {\displaystyle \mathbf {u} ^{*}} が得られる。 この仮速度と本来の速度 u n + 1 {\displaystyle \mathbf {u} ^{n+1}} との関係が(2)式である。 u n + 1 = u ∗ − Δ t ρ ∇ p n + 1 {\displaystyle \mathbf {u} ^{n+1}=\mathbf {u} ^{*}-{\frac {\Delta t}{\rho }}\nabla p^{n+1}} この第一段階の粘性と第二段階の圧力項を順次適用するやり方は、演算子分割法（英語: operator splitting）などと呼ばれる。 この第二段階で時刻 n+1 での流速を計算するためには、右辺第2項で時刻n+1での圧力を必要とする。ここで、この式の両辺の発散を取れば、左辺は ∇ ⋅ u n + 1 = 0 {\displaystyle \nabla \cdot \mathbf {u} ^{n+1}=0} となり、よって ∇ 2 p n + 1 = ρ Δ t ∇ ⋅ u ∗ {\displaystyle \nabla ^{2}p^{n+1}={\frac {\rho }{\Delta t}}\nabla \cdot \mathbf {u} ^{*}} というポアソン方程式を反復計算でとくことで、時刻 n+1 の圧力 ∇ 2 p n + 1 {\displaystyle \nabla ^{2}p^{n+1}} を得る。 射影法の計算を実現するには速度と圧力を分ける必要がある。また、移流項、粘性項、外力項もそれぞれに分けて多段処理とした方がポアソン式の反復計算の収束はより確実であり、計算量も大きくは増えない。よって実際の計算は例えば以下のように多段分割される。 まず、任意の時刻の即度場は、射影後の非圧縮場かそれに準じた分布とする。 移流項を計算する。多段法の場合、移流項は射影直後の非圧縮に極力近いベクトル場に適用するのが望ましい。 この段階を予測子（よそくし）段階と呼ぶ。 スキームによってはこの中間段階の流速に対しても射影操作する。 粘性項等や外力項を計算する。 この段階はときに修正子（しゅうせいし）段階と呼ばれる。（とくに陰的な圧力項反映の後） 最終の射影操作を実施。これをもって次の時刻の速度場とし、1ステップの計算が完了する。 このような多段分割は、フラクショナルステップ、 Fractional step projection などとも呼ばれる。 日本国内ではMAC法およびSMAC法との対比から、N番目ステップの速度から圧力効果無視の速度予測子を得てN+1番ステップの圧力で補正しN+1ステップの非圧縮速度場を得る、すなわち圧力の時間差分のみ陰的のスキームを指して特にフラクショナルステップ法と呼ぶ。