OpenFOAMとは?(その2)
OpenFOAMは自作PC&無料
 コンピュータプログラムというと、1つの完成したコード(プログラム)が公開されているようにイメージしますが、OpenFOAMは、様々な解析機能を持った計算ライブラリ群の総称です。
 市販のプログラムは、すべての機能が1つのプログラムに入っていて、使いたい機能によってそのルーチンを通るか、通らないかが決まります。 一方で、OpenFOAMの場合は、使いたい機能のルーチン(ライブラリ)を探し出し、それらを結合させて1つのプログラムコードに作り上げます。そのため、一部のサンプルプログラムを除き、計算用のプログラムは自身で構築しなければなりません。
 パソコンに例えるなら、市販プログラムはコンピュータメーカーの完成品で、OpenFOAMはパソコンのパーツを買い集め、自分にとって必要十分な性能のものを組み立てるイメージです。そしてOpenFOAMの世界では、そのパーツは無料で手に入ります。
市販汎用ソフトウェアとOpenFOAMの違いを自作PCでイメージ
| 完成品PC (汎用ソフトウェア)  | 自作PC (OpenFOAM)  | 
|---|---|
| 動作保証あり | 初期不良のみ 組立時の保証なし  | 
| すぐに使える | 組み立てる時間が必要 | 
| ハードウェアの知識は不要 | ハードウェアの知識が必要 | 
| ある機能だけ高性能にしにくい オーバースペックになる  | 必要十分なスペックを作れる | 
| 将来パーツの追加変更が困難 | 将来パーツの追加変更が容易 | 
OpenFOAMの主なCFD機能
| 一般計算 | 圧縮性、非圧縮性、定常、非定常 | 
| 格子 | 移動格子、AMR(格子自動細分化)、AMI(Arbitary Mesh Interface) | 
| 格子作成 | blockMesh(六面体格子作成)、snappyHexMesh(STL形状対応) | 
| 乱流モデル | RANS(15種類以上)、LES(18種類以上) | 
| 多相流 | オイラー法、VOF法、二、三相流、表面膜、ラグランジュ粒子 | 
| 熱計算 | 一般熱対流、輻射、流体個体間共役熱 | 
| 化学反応 | 素反応(CHEMKIN、JANAF)、化学熱分解、予混合、粒子燃焼 | 
| 並列計算 | OpenMPI、HPMPI、MPICH、IntelMPI(数千CPI規模対応) | 
| ポスト処理 | 可視化paraview、並列ポストツールsample等 | 
特長1:数多くのインターフェース
 数多くの格子要素が利用できるOpenFOAMでは、市販のメッシャー(ICEM, STAR-CD, Pointwise等)で作成された格子を読み込むことができます。
 計算結果はParaView以外にも、FieldView, FLUENT, EnSight, Tecplotなど、様々な形式に出力することができます。
特長2:並列処理機能
 近年の熱流体解析は規模が大きく、数億から十数億規模の計算に耐えられる必要があります。 OpenFOAMはメッシュなどのプリプロセス、計算、および結果出力までの全工程で並列処理が可能です。 
 OpenFOAMは「京」をはじめ、東京大学「T2K」、東京工業大学「TSUBAME」など、様々なスーパーコンピュータでも運用され、多くの大規模計算の実績があります。
 また、ライセンスによる並列数などの制限が無いため、コンピュータハードウェアのスペックが許す限り、大規模並列の計算が可能です。
特長3:カスタマイズ性
 OpenFOAMはオブジェクト指向のプログラム言語であるC++で書かれています。また、1つの大きなプログラムではなく、ライブラリ群としてモジュール化されているため、ソースコードを理解しやすく、カスタマイズ性に優れていいます。
 業務内容が変化したり、プロジェクトにより新たな機能が必要な場合にも、すでに構築したOpenFOAMのプログラムに追加して必要機能を増やすことができます。


