はじめに
OpenFOAMのsnappyHexMeshを使って格子を作成してみたいと思います。
境界層格子を狙い通りに設けることが目的です。
- [OpenFOAM (R) ] (https://www.openfoam.com/)
環境
OS : Windows 10
WSL : Ubuntu 18.04 LTS
OpenFOAM:openfoam2006
TUTORIALの調整
下記様にチュートリアルをコピーし、もとのファイルのバックアップと経過の出力先を作成します。
snappyHexMeshDict では layerFields を出力するように設定しておきます。
cp $FOAM_TUTORIALS/heatTransfer/buoyantBoussinesqSimpleFoam/iglooWithFridges .
cd iglooWithFridges
echo "writeFlags ( layerFields );" >> system/snappyHexMeshDict
cp system/snappyHexMeshDict system/snappyHexMeshDict.bak
mkdir result
次にAllrun
を以下の様に書き換えて
差分の保存、格子作成、境界層作成結果の出力をするように設定にします。
#!/bin/bash
cd "${0%/*}" || exit # Run from this directory
. $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
FILENAME=`date +%Y%m%d%H%M%S`
log=result/${FILENAME}.snappyHexMeshDictDiff
diff -u system/snappyHexMeshDict system/snappyHexMeshDict.bak > ${log}
grep "^- " ${log} -A 2
runApplication blockMesh
runApplication snappyHexMesh -overwrite
sed -n "/patch\s*faces\s*layers\s*over/, /Writing /p" log.snappyHexMesh|sed -n '$!p' > result/${FILENAME}.layer
cat result/${FILENAME}.layer
#touch t.foam
#sed -i 's/^pvsm.*/pvsm="showlayer.pvsm"/' saveimage.py
#pvpython saveimage.py
実施結果
上記で作成したスクリプトを./Allrun
で実施してみます。
デフォルト
この設定だと角に格子を作らない設定になっているようです。
patch faces layers overall thickness
[m] [%]
----- ----- ------ --- ---
igloo 1276 1 0.124 99.1
twoFridgeFreezers_seal_0 800 2.1 0.0882 63.6
twoFridgeFreezers_herring_1 592 2.1 0.112 65.9
featureAngle 変更
featureAngleの設定を変えてみると角も境界層を作るようになります。
- featureAngle 360;
+ featureAngle 60;
patch faces layers overall thickness
[m] [%]
----- ----- ------ --- ---
igloo 1276 1 0.124 99.1
twoFridgeFreezers_seal_0 800 2.81 0.125 81.7
twoFridgeFreezers_herring_1 592 2.93 0.159 85
maxNonOrtho の変更
更にmaxNonOrthoの設定を変えてみると角を微細化しているほうは全面に境界層を作るようになります。
*メッシュの品質が悪くなるので流体計算などに適さないことも想定されます。
- maxNonOrtho 85;
patch faces layers overall thickness
[m] [%]
----- ----- ------ --- ---
igloo 1276 1 0.124 99.1
twoFridgeFreezers_seal_0 800 3 0.131 87.2
twoFridgeFreezers_herring_1 592 2.91 0.16 85.3
この他更に設定を模索しましたが微細化せずに全面に境界層を設ける方法が見つかりませんでした。
適切な設定をご教示頂けると幸いです。
次回はgmshで格子を作ってから境界層を設けてみたいと思います。