0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenFOAMのsnappyHexMeshで境界層付き格子を作成する

Posted at

はじめに

OpenFOAMのsnappyHexMeshを使って格子を作成してみたいと思います。
境界層格子を狙い通りに設けることが目的です。

環境

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を以下の様に書き換えて
差分の保存、格子作成、境界層作成結果の出力をするように設定にします。

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で実施してみます。

デフォルト

この設定だと角に格子を作らない設定になっているようです。

20220129_113224.png

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の設定を変えてみると角も境界層を作るようになります。
20220129144213.png

-    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の設定を変えてみると角を微細化しているほうは全面に境界層を作るようになります。
*メッシュの品質が悪くなるので流体計算などに適さないことも想定されます。
20220129144336.png

-    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で格子を作ってから境界層を設けてみたいと思います。

0
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?