OpenFOAM

OpenFOAM（Open source Field Operation And Manipulationの略称)は数値解析開発、及び数値流体力学を含む連続体力学の前後処理用のC++製ツールボックスである。GNU General Public License公開のオープンソースであり、名称は2007年にOpenCFD Ltdが登録後、2011年にOpenFOAM財団が非独占権利者となった。
特徴.
文法.
特徴の一つにテンソル解析や偏微分方程式に似た文法を用いる。 例えば、以下の方程式
は以下のコードで示される
solve
 fvm::ddt(rho,U)
 + fvm::div(phi,U)
 - fvm::laplacian(mu,U)
 - fvc::grad(p)
オブジェクト指向プログラミングと利用者定義演算子により実現された文法により、利用者は比較的簡単にカスタムソルバーを作成することができる。しかしOpenFOAMのライブラリは仕様書不足とテンプレートメタプログラミングが多用されているためライブラリをより深く使うにつれて難易度が上がる。
拡張性.
境界条件や乱流モデルを修正する際に、既存ソースコード修正及びコンパイルの代わりにソルバーを用いる方法として、基本インタフェース (情報技術)の基本クラスとFactory Method パターンの組み合わせであるrun-time selectionがある。
標準ソルバー.
流体計算を中心とした作成済みのソルバーが用意されている。このソルバーを使用すると以下のような解析を行うことができる。
また計算格子を生成するためのメッシャー、前後処理用のユーティリティーも用意されていてこれらを使用することでプログラミングを行うことなく計算、結果可視化が実行できる。