希薄気体流の振る舞いを定める基礎方程式は, 「Boltzmann方程式」と呼ばれるものですが, これは非常に計算が困難な方程式であることで有名です.なぜ計算が困難なのか,というと
-
流体力学であれば,各時間・場所の,密度, 流速, 温度, 応力, 熱流の13個の数値を求めれば, 流れの挙動がわかったことになる. ところが, Boltzmann方程式では, 各時間・場所で, 「この速度を保つ分子がXX個, こっちの速度ではYY個」・・・という風に, 無限個の分子速度について数値を求めなければならない.
- 無限個では求められないので, 「分子の速度分布」を,数百〜数千万個の分子速度について求めることになる.数が多すぎるので,計算が遅くなる.
- 数が多いだけではなく, 速度を2つ決めて, それぞれの速度の分子が衝突する無限個x無限個のプロセスを計算しなければならない
DSMCは,数千万個の分子速度についての「速度分布」を求めることをあきらめて,数十万〜数億個の「擬似分子」の運動を求めることにしたものです.それでも十分に遅い.時々は分子の衝突を計算しなければならないからです.
BGKモデル方程式は,数が多すぎるのは仕方ないとして, 分子衝突を計算せず,その結果だけを猿真似する方程式を作ってみた,というものです.猿真似のセンスが素晴らしく, かなりのレベルで真似が(よく見ないと区別できないレベルで)成功していることが知られています:
- BGK方程式から, Navier-Stokes方程式, Euler方程式など, 流体力学のすべての方程式を復元することができる.
- H定理を満たす. つまり, 熱力学の可逆・非可逆の過程を正しく復元できる
- BGK方程式から, 滑り流,自由分子流を復元することができる. それらの係数(流速に対するすべり量の比率)がBoltzmann方程式と少々違うだけである
- 猿真似であるので, 計算が簡単である
- 混合気体に拡張できそうで,なかなか嘘つきな感じになってしまい,問題がある
何れにせよ, 分子衝突のプロセスをモデル化するわけですので, 平均自由行程を, 実験事実と合うようにするには少々工夫が必要になります. よく行われる方法は,
- 粘性係数(熱伝導係数)と平均自由行程の間には比例関係がある
ことを用いた換算です. 具体的には, 圧力\(p\)における気体の粘性係数\(\mu\)と熱伝導係数\(\lambda\)の関係が
\[\mu = C_\mu\frac{p}{c}\ell,\qquad C_\mu=\sqrt{\frac{5\pi}{24}}\gamma_1,\tag{1}\]
\[\lambda=C_\lambda\frac{\kappa\,p}{m\,c}\ell, \quad C_\lambda=\frac{5}{2}\sqrt{\frac{5\pi}{24}}\gamma_2,\tag{2}\]
となっています. ここで, \(c\)は音速で \[c=\sqrt{\frac{5\kappa T}{3m}},\] (\(m\): 分子質量, \(\kappa\): Boltzmann定数)であり, \(\gamma_*\)が, 分子モデルに依存して決まる数です:
BGK方程式では\[\gamma_1=\gamma_2=1,\]剛体球分子Boltzmann方程式では\[\gamma_1\approx1.2700, \gamma_2\approx1.9223.\] この係数が実験事実で得られる温度依存性を持つように, 個々の分子衝突が, どういうわけか気体分子全体の温度に依存するように工夫したものがVHS, VSSモデルです. まあ,一致すればなんでもありです. パラメータをたくさん増やして一致するように工夫したものがLJモデルです.
数値計算ができなかった昔の文献では, これらの関係の近似式が書かれているかもしれません. 例えば Sharipov & Seleznev, Data on Internal Rarefied Gas Flows (Journal of Physical and Chemical Reference Data, 1998 dot: 10.1063/1.556019) では\[ C_\mu = \sqrt{\frac{10}{3\pi}} \]です.
気体のPrandtl数\(C_p\mu/\lambda\)はおよそ2/3であることが知られているのですが, 上の結果から\[{\rm Pr}=\frac{\gamma_1}{\gamma_2}\]であり, BGK方程式では\[{\rm Pr}=1\)になってしまいます.これはBGKモデルの欠陥です. とりあえずの対処法は
- 運動ベースの流れならば\(\mu\)を用いて\(\ell\)を決める
- 熱源ベースの流れならば\(\lambda\)を用いる
- 両方混じった流れは・・・やばいかも
BGKモデルを少しだけ変更した新しい方程式では, この問題を解決することができます.
粘性係数の温度依存性
宇宙工学のように, 温度変化が大きい流れを取り扱う場合, 粘性係数(1)の温度\(T\)に対する依存性が重要になります. 剛体球分子では, 平均自由行程\(\ell\)を分子直径\(d_m\)を用いて表すと\[\ell=\frac{1}{\sqrt{2}\pi n d_m^2}\](\(n=p/\kappa T\): 数密度)となります. つまり\[\ell\propto\frac{1}{n}\]です. \(\gamma_*\)が定数であるので\[\mu\propto\sqrt{T}\]となります. 実験では\[\mu\propto T^{1/2+\alpha}, 0<\alpha<1\]くらいになるので, 一致しなくて困る. そこで, VHSやVSSでは, えいやっと\[d_m\propto T^\beta\]として解決するわけです. そこ, 突っ込まないように.
なお, LJでは\(\gamma_*\)が温度の関数となり, 粘性係数\(\mu\)が実測値にバッチリ一致(するようにパラメータを定めてある).
BGKでも\(\gamma_*\)は定数ですが, 平均自由行程が定数\(A_c\)を用いて\[\ell=\frac{1}{A_c n}\sqrt{\frac{8\kappa T}{\pi m}}\]となるところが違います. これでは\[\ell\propto\frac{\sqrt{T}}{n}\]になっています. 従って, BGKでは\[\mu\propto T\]になります. これも気に入らないというわけで, \(A_c\)を温度\(T\)の関数ということにする「改良」も多いです.