openfoam-2.1.1 利用手引き - 学際大規模計算機シス … cd $foam_utilities...
TRANSCRIPT
2011.11.27 CAE ソリューションズ
1
OpenFOAM-2.1.1 利用手引き
1. 概要
OpenFOAM™は OpenCFD Foundation1 が公開・配布しているオープンソースソフトウエアで
す。各種ドキュメントはOpenCFD Foundationのホームページに掲載されています。
なお,User’s GuideとProgrammer’s Guideについては,本センターサービスアプリケーション
のオンラインマニュアル一覧ページより閲覧可能です。
2. 環境設定(以下実行例の”%”はプロンプトとなります)
1) OpenFOAMの環境設定
OpenFOAMを実行する前に,以下のコマンドを実行してください。
ログインシェルが cshの場合
% source /usr/local/OpenFOAM/setupOpenFOAM-2.1.1.csh
ログインシェルがbashの場合
% source /usr/local/OpenFOAM/setupOpenFOAM-2.1.1.sh
その他のシェルをご利用の場合は,/usr/local/OpenFOAM/setupOpenFOAM-2.1.1
ファイルを参考に利用しているシェルに合わせた環境設定ファイルを作成してください。
ParaView2は OpenFOAM が標準でサポートするオープンソースの可視化ソフトウエア
です。このほかにOpenFOAMにはEnsightやFieldView、tecplot等の商用可視化ソフ
トで可視化するためのデータコンバート用コマンド3が用意されています。詳細は User’s
Guideを参照してください。
"Base configuration ok."
"Critical systems ok."
と表示されれば,環境設定が成功しOpenFOAMが使用可能となります。
1 http://www.openfoam.org/ 2 http://www.paraview.org/ 3 foamToEnsight、foamToFieldview9、foamToTecplot360等
2011.11.27 CAE ソリューションズ
2
2) ParaViewの起動確認
OpenFOAM標準の可視化ツールParaViewの起動を確認します。(注意:ParaView
実行には,Xアプリケーションを実行できる環境が必要です)
コマンドプロンプトからparaviewコマンドを実行して起動します。
% paraview
2011.11.27 CAE ソリューションズ
3
3) 環境変数および alias の設定値
上記2-1)の環境設定により、OpenFOAM 固有の環境変数と alias の設定が行われています。
以下に,主要な設定値を示します。
表 1 よく使用する環境変数の設定値
環境変数 設定値 説明
FOAM_RUN /home/<利用者番号>/OpenFOAM/<利用者番号>-2.1.1/run 作業用ディレクトリ
FOAM_TUTORIALS /usr/local/OpenFOAM/OpenFOAM-2.1.1/tutorials チュートリアル
FOAM_SOLVERS /usr/local/OpenFOAM/OpenFOAM-2.1.1/applications/solvers ソルバのソースコード
FOAM_UTILITIES /usr/local/OpenFOAM/OpenFOAM-2.1.1/applications/utilities 付属ツールのソースコード
FOAM_SRC /usr/local/OpenFOAM/OpenFOAM-2.1.1/src クラスライブラリのソースコード
表 2 よく使用するコマンド(alias 設定値)
コマンド alias の設定値 説明
run cd $FOAM_RUN 作業用ディレクトリ
tut cd $FOAM_TUTORIALS チュートリアル
sol cd $FOAM_SOLVERS ソルバのソースコード
util cd $FOAM_UTILITIES 付属ツールのソースコード
src cd $FOAM_SRC クラスライブラリのソースコード
alias で設定されたコマンドは頻繁に参照するディレクトリへの移動を容易にするためのものです。run 以外は、書き込み権限を与えられて
いないディレクトリに移動しますので取り扱いにはご注意ください。
2011.11.27 CAE ソリューションズ
4
3. 作業ディレクトリの作成
OpenFOAMは標準の作業ディレクトリを環境変数 FOAM_RUN に設定しています:。
($FOAM_RUN=/home/<利用者番号>/OpenFOAM/<利用者番号>-2.1.1/run)
以下のコマンドを実行し,作業ディレクトリを作成します。
% mkdir –p $FOAM_RUN
このディレクトリには p3 表 2 に記載した alias 設定の”run”コマンドで移動することができま
す。
4. OpenFOAM付属例題の実行
OpenFOAM付属の例題をホームディレクトリにコピー
OpenFOAM の例題は$FOAM_TUTORIALS に設定されたディレクトリに格納されています。
$FOAM_TUTORIALS は共用領域 /usr/local 下にあり参照のみ許可されていますので、以下のコ
マンドを実行し,ユーザホームディレクトリ下の$FOAM_RUNにコピーして使用します。
% cp –r $FOAM_TUTORIALS $FOAM_RUN
この操作により、次のディレクトリが作成されます。(サイズは約52MBです。)
$FOAM_RUN/tutorials
例題はサブディレクトリに分類されています。
サブディレクトリ下の項目は <ソルバ名>/<ケースファイル名> となっています。
2011.11.27 CAE ソリューションズ
5
たとえばディレクトリ incompressibleには等温非圧縮流を扱うソルバの例題が格納されています。
icoFoamは層流のソルバで、cavity流れ等の例題があります。
1) 例題(等温非圧縮流ソルバ)を実行
この例題ではblockMeshを用いて6面体メッシュを生成し、非圧縮層流ソルバ icoFoam
を用いて実行するための設定が行われています。詳細は UsersGuide の 2.1 Lid-driven
cavity flow (page U-18)を参照してください。
① 以下のコマンドを実行し,例題のあるフォルダに移動します。
% run
% cd tutorials/incompressible/icoFoam/cavity
② blockMeshコマンドを実行しメッシュ生成を行います。OpenFOAMのコマンドが
caseディレクトリの直下で実行された場合、OpenFOAMはこのディレクトリを case
ディレクトリと認識して処理を行います。
% blockMesh
メッシュ生成が正常に行われなかった場合は、標準出力に警告やエラーが表示されま
す。正常に行われた場合は以下のような出力となります。
2011.11.27 CAE ソリューションズ
7
④ ParaViewで可視化を行うため,caseディレクトリの直下に拡張子が”.foam”の
空ファイルを作成します。 <caseName>.foamのように命名することを推奨します。
ここでは touchコマンドを使用して“cavity.foam”を作成します。
% touch cavity.foam
実行結果は、時刻を名称とするディレクトリに保存されます。
0 0.1 0.2 0.3 0.4 0.5 cavity.foam constant system
0ディレクトリには初期値・境界値、constantディレクトリにはメッシュデータ等、
systemディレクトリには計算条件等のデータが入っています。詳細はUser’s guideを
参照してください。
⑤ ParaViewを起動します。(注意:Xアプリケーションを実行できる環境が必要です)
% paraview
⑥ “File”メニューから”Open File”ダイアログを開き、④で作成した cavity.foamを選択
して、”OK”ボタンを押します。
2011.11.27 CAE ソリューションズ
9
⑨ コマンドバーの”Last Flameボタン” を押すことで,最終時刻0.5sのデータが
選択されます。
“Rescale to Data Range”ボタン を押して、色表示のスケールを自動調整します。
ParaViewのくわしい利用方法についてはHelpメニューから表示されるオンライン
ヘルプを参照ください。
2) 例題(液柱崩壊ソルバ)を並列で実行
液柱崩壊の例題を並列で実行する手順を示します。詳細はUsersGuideの2.3 Breaking of
a dam (page U-18)を参照してください。
① 以下のコマンドを実行し,例題のあるフォルダに移動します。
% run
% cd tutorials//multiphase/interFoam/laminar/damBreakFine
② blockMeshコマンドを実行しメッシュ生成を行います。
blockMeshの設定は constant/poluMesh/blockMeshDictファイルに記述されています。
% blockMesh
③ 0/alpha1.orgファイルから0/alpha1ファイルを作成(コピー)します。
% cp 0/alpha1.org 0/alpha1 (0は数字のゼロ,alpha1の末尾1は数字の一)
2011.11.27 CAE ソリューションズ
10
④ ParaViewで可視化を行うため空ファイルを作成します。ここでは touchコマンド
を使用して“damBreakFine.foam”を作成します。
% touch damBreakFine.foam
⑤ ParaViewを起動します。(注意:Xアプリケーションを実行できる環境が必要です)
% paraview
⑥ “File”メニューから”Open File”ダイアログを開き、④で作成したdamBreakFine.foam
を選択して、”OK”ボタンを押します。
⑦ “Apply”ボタンが緑に表示されたらクリックして変更を反映させます。
⑧ Solid Colorを“alpha1”に切り替え,スカラーバーを表示させ,Surfaceを“Surface
with edges”に切り替えます。
この段階では計算領域全体が空気(alpha1=0)の設定となります。
2011.11.27 CAE ソリューションズ
11
⑨ ParaViewを終了し,計算領域の左下に液柱(alpha1=1)を設定するため,プロ
ンプトから setFieldsコマンドを実行します。なお,setFieldsの設定は system/
setFieldsDictファイルに記述されています4。
% setFields
⑩ 再び⑤~⑦の手順でParaViewを起動し,データを読み込みます。
⑪ Solid Colorを“alpha1”に切り替え,Surfaceを“Surfacewith edges”に切り替え
ます。計算領域の左下に液柱(alpha1=1)の短形領域が設定されたことが確認でき
ます。
⑫ ParaViewを終了して,プロンプトからdecomposeParコマンドを実行し,計算
領域を4つに分割します。領域分割の設定は system/decomposeRarDictファイルに記
述されています。
% decomposePar
4 メッシュ数を変更した後 setFieldsを実行する場合は、0/alpha1.org を 0/alpha1に上書きして
ください。
2011.11.27 CAE ソリューションズ
12
なお,分割されたデータはprocessor0~processor3の4つのディレクトリに保存され
ます。
⑬ interFoamを4並列で実行します。なお,ここでは標準出力をファイル
(log.interFoam4para)にリダイレクトで保存します。
% mpirun –np 4 interFoam –parallel >& log.interFoam4para &
なお,標準出力(ここでは log.intarFoam4paraファイル)に“Finalising parallel run”
という出力が表示されると終了です。
※ 並列実行のシンタックスは
mpirun -np <領域数> <ソルバ名> -parallel
です。-parallel を忘れやすいので注意してください。
⑭ 解析結果をParaViewで可視化します。まず,⑩,⑪の手順を行います。
⑮ Case Typeに“Decomposed Case”を選択し,“Apply”ボタンが緑に表示されたらクリ
ックして変更を反映させます。
⑯ “Play”ボタンをクリックし,解析結果のシミュレーションを再生します。
⑰ 領域中の回転中心マークを非表示にするには“Show Center”ボタンをクリックしま
す。
⑯
⑮
⑰