WebMixは, 3次元の「希薄気体」の流れの数値解析を行います.気体が多くの分子からできていることはよく知られていますが,重要なことは,それらが音速ー数百メートル/秒の速さーで運動していることです.たくさん存在する物が高速で運動すればお互いに衝突するわけで,気体分子は非常に短い間に分子衝突を行い,その速度を変更しています.分子衝突の間の平均的な時間間隔を「平均自由時間」,その間に動く平均的な距離を「平均自由行程」と呼びます.標準状態の大気中では,平均自由行程\(\ell\)は\(10^{-7}\)m程度であり,非常に短いのですが,
- 航空宇宙工学や真空機器で取り扱う低圧気体
- MEMSで扱うマイクロ系
では, 物体の大きさ(機体の太さや,機器流路の幅)\(L\)に比べて, \(\ell\)が同程度あるいは大きい状態になります. この状態を希薄気体と呼び, どの程度希薄気体なのかをKnudsen数Kn:\[{\rm Kn} = \frac{\ell}{L}\] によって表します.
名前がついているくらいですので,流れの様相はKnによって大きく変わります.まあ細かいことを言わないのであれば, だいたい
- φ 1 cmのパイプ内部の常圧(\(10^5\) Pa)の気体の(音速よりもずっと遅い)流れの場合
- Kn = \(10^{-5}\) でほとんど0であり, 古典流体の流れになります.
- 流体の速度はパイプ両端の圧力差で定まり, 流速は(近くの河川の流れを見て想像できるように)壁面でほぼ0であり,中央部では大きくなります.
- φ 1 cmのパイプ内部の, 100 Paの気体の流れ
- Kn ~ 0.01 であり, 滑り流という希薄気体の流れになります.
- 壁面でも流れ方向にKn (つまり1%)ほどの流速があります.
- 流体の速度はパイプ両端の圧力差だけではなく,温度差にも影響されるようになります.混合気体では,拡散の影響も見えます.
- φ 1 cmのパイプ内部の, 1 Paの気体の流れ
- Kn ~ 1 で完全な希薄気体の流れ.中間領域,遷移領域,分子流とも呼ばれます.
- 流体の速度は, 壁面でも中央部でもあまり変わらなくなってきます.
- もっと言えば, 流体の温度と壁面の温度の関係もうすれてきます.
- 流体の運動は圧力や温度,混合気体ならば濃度によって同じくらいの影響を受けます,
- φ 1 cmのパイプ内部の, 0.01 Paの気体の流れ
- Kn ~ 100. 分子は衝突せずに100φつまり1mも進んでしまいます.つまり,分子衝突の影響は小さくなります.自由分子流, 分子流とも呼ばれます.
- 気体の温度は近くの壁面の温度にはなりません.そこから,どんな温度の壁面が見えるか,で決まります.
- 流速も似たようなもので,そこから何が見えるか,で決まります.
WebMixは,
\[0.01?<\text{Kn}\leq\infty (\text{DSMC})\]
\[0.001?<\text{Kn}\leq\infty (\text{TFV})\]
の流れを解析するソフトウェアです.
WebMixがどうやって流れを解析するのか, は置いておいて,具体的に何をするのかというと,
- WebMixでは, 流体領域をいくつかの領域に分割し, その領域をセルに分割します. 例えば
[図を入れる]
分割は, 細かい方が良いとはいえ, 希薄気体流の流れの解析は計算が非常に遅いので, とりあえず10分割程度からスタートして, 必要に応じて細かくすれば良いでしょう. - Knudsen数を指定します.
- 流路の入口出口,物体表面における条件を定めます
- 希薄気体力学の「境界条件」を設定します.固体壁面であるとか,対称面であるなどによって条件を使い分けます.
- 時間ステップ\(\Delta t\)を定めます. \(\Delta t\)の定め方は計算方法に依存しますので,あとで説明します.
- 気体の初期状態を与えます.
- 例えば, 温度や圧力が一様な静止状態,というのは最もありふれた初期状態です.
- 計算を開始すると, 時間ステップ\(\Delta t\)毎の気体の状態が計算されます.
- 何回かおきに,気体の状態を保存します.
- 多くの場合, 時間ステップは人間が興味を持つ時間間隔よりもずっと短いですので, 間隔は長めで良いでしょう.これも計算法依存です.
- 何回かおきに,気体の状態を保存します.
- 所定のステップ数に到達すると,状態を保存して終了します.
- 途中の状態を数値で調べたり, VTKデータを用いてParaViewソフトなどで調べることができます.
- 途中の状態を確認すると,実はまだ途中だった,もっと長く計算すればよかった,ということも多いでしょう.その時は,所定のステップ数を増やして計算を開始すれば,続きを行ってくれます.
WebMixにおける解析手法
WebMixでは次の2通りの解析手法が(今のところ)提供されています:
- 有限体積法による決定論的解法
- 2019年に提案している最中の方法です. DSMCを圧倒する速度が得られると思われますが,なにぶんまだ開発中です.
- 現在のところ, 後述のBGKモデル方程式のオリジナルのものだけが解析できます.
- オリジナルのBGKモデルですので, 純粋気体・単原子分子気体限定.
- 直交座標系と, 平行六面体(斜行座標系)が利用できる
- 現在のところ, マルチスレッド並列化だけが可能
- DSMC法による確率論的解法
- よく知られた希薄気体流の解析法で, Birdによって提案されました.詳細に言えば, Birdが提案したDSMC方法をKouraが改善し, なぜかBirdのNTC法と呼ばれている手法を用いています.
- 計算スキームには何一つ工夫していませんが,並列化は工夫してあり, 並列化性能はトップクラスではないか?と思います.マルチスレッド並列化, MPI並列化の同時使用が可能で, 数十程度まではCPU数に比例した速度が得られます.
- それ以上の能力の計算機では実施例がない
- 剛体球分子モデル, Lennard-Jonesモデル, Bird-VHS, Koura-VSSをサポート(最後の2つまだチェックしてない)
- 任意数の成分気体の混合希薄気体流を解析可能
- 直交座標系と, 軸対称流の解析が可能
両者共通の制約は
- 壁面が壁面に垂直な速度をもってはダメ(移動境界値問題には対応しない)
です.
ソフトウェアの特徴
通常, このような負荷の高い数値解析は, Linuxクラスタやスーパーコンピュータで行います. ここで直面する問題は,
- 人は, Linuxを使うことができない
- 上記コンピュータは, 大抵の場合, 「端末ソフト」という,文字しか十出力できないインターフェースを利用します.
- コンピュータに対する指示は「コマンド」という呪文を使いますが,それは,なれない人には大変使いにくいものです.コマンドを覚えるよりも,自分の設計に頭を使いたいのですが,それが不可能になるほど,面倒です.
- 気体の領域は3次元空間にありますので, それを文字で表現するのは大変というよりも不可能です.
- 結果的に, いつも絶え間なくミスが起こります.
- 多数のケースを管理するのが難しい
- 研究や設計では, 似たような計算ケースを(わずかなパラメータの違いで)繰り返すことが多くなります.
- 端末ソフトの不自由な環境で,それを行うと, いろいろなミスが起こります. 記憶のある例は
- 同じケースを4回も実施してしまった
- 1ケースだけ実施してないことに論文提出後に気がついた
- 半年かかった計算を1秒で消去してしまった
このようなミスを防ぐために, WebMixは, 次の方針を採用します.
- Linuxにはログインしない.
- Webページで画像を見ながら操作する.
- Webページなのだから, パソコンもいらない. iPadで十分
あくまでも方針ですので,完全ではありませんが,そのような計算システムを目指すソフトウェアです.
上記方針を実現する手段は,まず第一にはWeb技術であります.重要な要素はSQLです.SQLは,Excelと同じく, \(x,y\)座標に対する関数値\(f(x,y)\)を入出力するだけのソフトですが,ニコ動やFacebookを見てわかるように
- Webサイトと連携
- 同時多数ユーザーのランダムな入出力に対応
が特徴です.Facebookのユーザー数に比べると, あなたが使う並列計算機のノード数・スレッド数はわずかなものですから,並列処理は容易です.ただし管理対象はTwitterの140文字レベルであり,大量データの転送は不可能です.可能なことは
- 複雑系の数千以上の計算パラメータを管理
- Webサイトから,計算パラメータを設定管理
- (数台〜数千?の)多数のLinux計算ノードが,ランダムに計算パラメータを引用・設定
です.既存の関数値を条件に応じて一瞬で更新できるのも良い点ですね.これは
- プログラムをバージョンアップしたとき,以前に解析した全ての計算パラメータが,簡単にバージョンアップに追従する
という利点があります.
インストール作業について
インストールについては,解析を実施するユーザーには無縁な話ですが,上の特徴を実現するために, WebMixでは
- 少なくとも1台, サーバーマシンが必要
- Webサーバーと, 多数ケースを管理するSQLデータベースサーバーが必須
- 計算用マシンでの計算実行のため,リソース管理システム(RMS)が必要
になります.ソフトウェア自身の図体が大きく,インストールが困難です.そこで,
- サーバーマシンとして利用できる,全ソフトウェアをインストール済みの仮想マシンを準備
- 計算ノードには,リソース管理システム(RMS)クライアントをインストールするだけ
という構成を取ります.