OpenFOAM
最終更新日:2022年8月4日OpenFOAM (Field Operation and Mnipulation)は、 複雑な条件の流体計算から分子動力学や電磁気学等、 さまざまな現象をシミュレートする構造化された統合ソルバー集です。 OpenFOAM は OpenCFD 社が開発している版 (vYYMM) と、 The OpenFOAM Foundation が開発している版 (4.x, 5.x, ..) があり、 ともに GPL ライセンスの下でオープンソースとして 開発と配布がなされています。
OpenFOAM に関する情報は以下をご覧下さい。
OpenFOAM 公式ドキュメント(英語)
OpenFOAM ユーザー会 Wiki
OpenCAE 学会
利用方法や不具合についての問い合せは対応できない可能性が高いことを予めご了承ください。
利用環境
- サブシステムA
- サブシステムB
- ログインノード(ito)
バージョン | 九州大学構成員 | 学術研究機関構成員 | 民間利用の方 |
---|---|---|---|
v1912 OpenCFD 版 |
○ | ○ | ○ |
v1812 OpenCFD 版 |
○ | ○ | ○ |
v1706 OpenCFD 版 |
○ | ○ | ○ |
5.0 The OpenFOAM Foundation 版 |
○ | ○ | ○ |
バージョン | 九州大学構成員 | 学術研究機関構成員 | 民間利用の方 |
---|---|---|---|
v1912 OpenCFD 版 |
○ | ○ | ○ |
v1812 OpenCFD 版 |
○ | ○ | ○ |
v1706 OpenCFD 版 |
○ | ○ | ○ |
5.0 The OpenFOAM Foundation 版 |
○ | ○ | ○ |
バージョン | 九州大学構成員 | 学術研究機関構成員 | 民間利用の方 |
---|---|---|---|
v1912 OpenCFD 版 |
○ | ○ | ○ |
v1812 OpenCFD 版 |
○ | ○ | ○ |
v1706 OpenCFD 版 |
○ | ○ | ○ |
5.0 The OpenFOAM Foundation 版 |
○ | ○ | ○ |
利用方法
下準備
計算を始める前の下準備は フロントエンドサーバ 上で対話処理にて行います。OpenFOAM で実行可能な case 一式を既にお持ちの場合は 実行に進んでください。
◆セットアップスクリプトの実行
まず最初に OpenFOAM を利用するために必要な環境変数等の設定を行います。
ご利用のシェルと OpenFOAM のバージョンに応じて、
以下の要領で
$HOME/.bashrc
に記述してください。
◆環境設定
version: v1912
module load openfoam/v1912_ompi |
version: v1812
module load openfoam/v1812_ompi |
version: v1706
. /home/app/a/OpenFOAM/OpenFOAM-v1706/etc/bashrc |
version: 5.0
. /home/app/a/OpenFOAM/OpenFOAM-5.0/etc/bashrc |
◆case の作成
OpenFOAM で計算をする為の case を作成してください。case の場所は
$HOME
以下であれば何処でも構いませんが、$WM_PROJECT_USER_DIR
で指定されている場所に置く事が
推奨されています。
尚、チュートリアルが
$WM_PROJECT_DIR/tutorials/
以下にありますので、
case のサンプルとしてご利用戴けます。
◆pre-processing
次に前処理として、 メッシュの生成や 並列実行の為の メッシュ分割 などを行います。尚、これらの処理がフロントエンドサーバ上で実行するには
重すぎると判断される時には、
あらかじめメッシュ分割を済ませた case を用意するか、
バッチ処理にてバックエンドで実行して下さい。
◆プログラムのコンパイル
自作のプログラムを OpenFOAM の機構に組み込んで利用する場合は wmake で コンパイル を行います。
コンパイルした実行形式は $FOAM_USER_APPBIN
に入れてください。
ライブラリをコンパイルされた場合は $FOAM_USER_LIBBIN
に入れてください。
これらの設定は、プログラム・ソースディレクトリにある
Make/files
で行います。
$ cat Make/files hogeFoam.C EXE = $(FOAM_USER_APPBIN)/hogeFoam |
実行方法(サブシステムA,B)
ここでは MPI を用いたバッチリクエストファイルの例を示します。OpenFOAM-v1912
|
|
OpenFOAM-v1706, 5.0
|
|
実行方法(フロントエンド)
フロントエンドは基本的では1ノード内での並列処理であり、ノード間並列を使わないため若干ジョブでのsolverの実行方法と異なる部分があります。具体的には以下のように、フロントエンドでsolverを動かす際には、 -mca orte_rsh_agent で /bin/ssh を指定します。
|
post-processing
スレッド毎に分割された出力ファイルに対して行う大半のポスト処理は、 MPI 並列実行する必要があるのでバッチ処理にて行います。
例えば sample
コマンドを用いる場合のバッチリクエストファイルは、
主計算のファイル中のソルバーを sample
コマンドにそのまま置き換
えたものになります。