LoginSignup
0

More than 3 years have passed since last update.

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

Posted at

はじめに

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に書かれているソルバを実行

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0