CFDとはComputational Fluid Dynamicsの略称です。日本語に直すと、計算流体力学になります。具体的には、流体の流れを解析によって予測します。
流体とは何を指すのか?
流体とは、気体と液体を指します。空気も煙も気体ですし、水も油もペンキも液体です。世の中には意外と流体で溢れています。
今の技術力では限界はありますが、極端なことを言ってしまえば分子が移動していれば流体であると言えます。例えば、分子動力学(Molecular Dynamics)という分野があります。分子動力学では、分子の移動を解析し、反応を観察します。これも分子の移動を伴うので、流体と解釈することもできます。
また、最近注目されているMPM法(Material Point Method)という方法があります。これは流体解析の技術を用いて、大変形する固体を解析する手法です。実際に、グミのような物体やパンを引きちぎる動作が解析されています。
MPM法は固体の流体的な特徴を再現するために使用されています。このように流体と固体をグラデーションで考えると、CFD(計算流体力学)の範囲は非常に広いと言えるのです。
CFDとナビエ・ストークス方程式
CFDは流体の流れを解析によって予測します。つまり、現在の結果と物理の計算結果から、未来の結果を予想するということです。
物理計算による未来予測の一番簡単な例としては、重力による物の落下です。重力加速度を知っていれば、数秒後の物の落下スピードがわかります。それと同じように、流体の動きも予測できます。
CFDで使用するのが、ナビエ・ストークス方程式です。下記のような式になります。
$$\frac {\partial v}{\partial t}+(v \cdot \nabla )v=\frac {1}{\rho} \nabla p + { \nu \triangle v}+{g}$$
このナビエ・ストークス方程式は流体の重要な特徴を含んでいるので、これを解くことで流体の流れを予測することができます。少しだけ詳細を見てみましょう。
左辺の1つ目の項($\frac {\partial v}{\partial t}$)が非定常項と呼ばれるものです。流体の時間変化を表します。基本的に時間変化を計算する解析では、このような時間に関する項が含まれます。
左辺の2つ目の項($(v \cdot \nabla )v$)が移流項と呼ばれるものです。流れによる移動を表します。例えば、川の上流にあった液体が下流に流れるようなイメージです。既にある流れによって押し動かされる影響を表した項になります。
右辺の1つ目の項($\frac {1}{\rho} \nabla p$)が圧力項です。流体の圧力変化による影響を表します。液体では基本的に密度は変わりませんが、気体だと密度が変わることがよくあります。密度変化は圧力によって引き起こされるので、気体において圧力は非常に重要です。また、液体のように密度変化がなくても圧力の変化はあります。ホースから水を出すときは、水圧を高めることで遠くに飛ばすことができることからも、流体が圧力の影響を大きく受けていることがわかるでしょう。
右辺の2つ目の項($\nu \triangle v$)は粘性項です。その名の通り、粘度による影響を表す項です。粘度は、せん断速度と呼ばれる速度差の影響を受けるので、速くて粘っこい液体において重要な項になります。逆に気体などではあまり重要ではありません。
右辺の3つ目の項($g$)は重力項です。ここは説明不要でしょう。
ナビエ・ストークス方程式の解き方
ナビエ・ストークス方程式が流体の流れ予測において重要であることはわかっていただけたと思います。しかし実はナビエ・ストークス方程式は解くことができません。なので、何か前提をおいて式を簡略化するか、誤差を含みながら無理やり解くしかありません。
流体力学という分野は、基本的には式を簡略化する方法を取ります。それに対して、CFDでは誤差を含みながら無理やり解きます。
誤差を含むという表現がわかりにくいかもしれません。乱暴な言い方をすると、CFDではナビエ・ストークス方程式を誤魔化すことで、それらしい答えを出す方法です。
具体的には、本来流体は連続的であるにも関わらず、離散化という処理をします。これは、流体を数えられる数のブロックで表したり、計算の微分を適当な計算方法に代えたりします。分割の方法としては、流体を格子として表す格子法と粒子として表す粒子法が有名です。
PCの計算能力に応じて計算方法を選ぶことで、精度の高い予測ができるようになります。今でいうと、GPUを使用したダム崩壊や街の気流解析など大規模計算も行えるようになってきています。時代の変化とともにPCの性能は急上昇しているので、これからもどんどん解析でできることは増えていくでしょう。
おわりに
今回は、CFDについて解説しました。CFDでは、ナビエ・ストークス方程式をそれらしく解くことで流体の動きを予測することができます。
細かい手法に関しては深みのある分野ですので、興味があれば他の解説も見てみてください。
youtubeでも発信しています。よければそちらもどうぞ。