【OpenFOAM/シェル】チュートリアルのAllrunを解読


はじめに

OpenFOAMのチュートリアルケースの中にはAllrunというシェルスクリプトが入っています.内容はシミュレーションのプリ処理(メッシュ作成,並列化処理etc)で,これを使えばいちいち手打ちでコマンド実行することなくシミュレーションを開始できます.処理内容はケースによって様々です.ここではmotorBikeのAllrunについて解読した内容をメモします.自分で読むとシェルスクリプトの勉強になりますね.

環境

Windows 10 Home バージョン 1903
OpenFOAMv7
WSL1

Allrun

パス
/opt/openfoam7/tutorials/incompressible/pisoFoam/LES/motorBike

ソースコード

Allrun
#!/bin/sh
cd ${0%/*} || exit 1    # Run from this directory
# ${0%/*}はAllrun実行場所から見たAllrunの相対パス.どこから実行してもAllrunにcdする

# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# RunFunctionsもシェルスクリプト.
# “.”コマンドで読み込むことでAllrunからRunFunction内のスクリプトが使用可能になる

# copy motorbike surface from resources directory
cp $FOAM_TUTORIALS/resources/geometry/motorBike.obj.gz constant/triSurface/

runApplication blockMesh
# blockMeshを普通に実行するのとほぼ同じ.runApplicationによって引数解析を行っている

cp system/decomposeParDict.hierarchical system/decomposeParDict

runApplication decomposePar -copyZero
# -copyZeroで0ディレクトリを各プロセッサのディレクトリにコピペ

cp system/decomposeParDict.ptscotch system/decomposeParDict
runParallel snappyHexMesh -overwrite
# -overwriteでblockMeshで作成したメッシュを上書き

find . -type f -iname "*level*" -exec rm {} \;
# "level"や"Level"を名前に含むファイルを削除している.不要だから(たぶん)

runParallel renumberMesh -overwrite
# renumberMeshはセル番号を振り直してる.計算高速化のため(たぶん)

runParallel potentialFoam -initialiseUBCs
# -initialiseUBCsで速度の境界条件を初期化

runParallel $(getApplication)
# controlDictのapplicationに書かれているソルバを実行

#------------------------------------------------------------------------------