OpenFoamにおけるsnappyHexMeshの設定方法

「目的」

 回転座標系の運動を扱うSRFPimpleFoamのチュートリアルではメッシュが円柱状になっています。

 ところがこの円柱状のメッシュにsnappを効かせると以下のように板がまともな形状になりません。snappyHexMeshDictを調べ、いろいろ試したのでが改善されませんでした。

 そこでアプローチを変えて通常の立方体メッシュでSRFpimplefoamが使えるものを作成してみようと思います。

(左:通常メッシュでのsnappy後、右:円柱状メッシュでのsnappy後)

「方針」

 通常のblockMesh(下図)から回転運動系解析に対応出来るメッシュを作成してみます。具体的にはsanppyのaddLayer機能を用いて円周外側に規則正しい層を生成することで円柱状メッシュに近い形を目指してみます。

 尚「snappyHexMeshDict」は名称が長いので以降「snappy」と記述します。


1.準備するSTLモデル

 今回検討するモデルはOpenFoamを用いた遠心ポンプの流体解析にて用いた4枚インペラ遠心ポンプとしました。

blockMeshDictによって生成するベースを以下に示します。

 ・ベース寸法:300×300×20mm(45×45×4マス)

 このベース形状に対し以下の基本形状をSTLファイルで用意し、snapしていきます

 ・hub.stl:中央部に半径25mmの吸入孔を設定

 ・impera.stl:4枚板のインペラを設定

 ・inspect.stl:半径75mmの検査面を設定

 ・freestream.stl:外周を表現する半径125mmの中抜き円柱を設定


2.snappyファイル構造

 snappyは設定項目が多いため、すべてを本稿で網羅することは止めておきます。本稿ではチュートリアルのsnappyを基本構造とし、そこから修正する構文のみを示すこととします

 尚基本構造に選んだsnappy構文は以下のチュートリアルを用いました(選定は適当)。

  <OpenFOAM-v2306\tutorials\incompressible\pisoFoam\LES\motorBike\motorBike\system> 

 snappyは以下の5部から構成されています(参考文献[1]3.3項)。

第1:geometry部

 使用するSTLファイルを定義する。

第2:castellatedMesh部

 STLファイル形状の回りのメッシュを細かくし、立方体単位で中身を切り抜く。

第3:snap部

 第2部で作成された内面が凸凹のモデルをSTL形状に従って綺麗に切り抜く。

第4:addLayers部

 層状のメッシュを追加(必須行為ではなく、多くの場合使用していないようです)。

第5:meshQualityControls部

 メッシュの品質設定(本稿では一切変更なしとしました)。


3.実行例

3.1 castellatedMeshのみ実施の場合

 snapの様子を明確にするため、まずはcastellatedMeshの場合を行ってみます。

(以後チュートリアルsnappyの基本構文のうち、変更する箇所のみを赤字で示していきます。)

第0:実施項目定義

 最初の構文で実施する作業を選びます。ここではcastellatedMesh実施と定義します。

第1:gemetry部

 1項で用意したSTLファイルを以下のように定義します。

geometry {

第2:castellatedMesh部

 まずは細分化levels(0 0)で実施してみます。

 例えばlevels(1 2)の場合、最小21、最大22で細分化という意味となります。

castellatedMeshControls {

      refinementSurfaces {

       refinementRegions { }

実施した結果のメッシュが以下となります。

用意したSTLに従った形状が出来上がっていますが、凸凹の境界となっています。

(castellated:城のような形状という意味で、凸凹を表現しているそうです。)


3.2 snapを適用した場合

 snapを有効にしてみます。

第0:実施項目定義

 snap部を有効にします。

第3:snap部 不変(チュートリアルのまま)

 snapControls {

           nSmoothPatch 3;

           tolerance 4.0;

           nSolveIter 30;

           nRelaxIter 5; }

実施した結果のメッシュが以下となります。

凸凹だった境界が綺麗に整っています。

(snap:位置合わせという英語のイメージがあるそうです。)


3.3 addLayersを適用した場合

 周縁部を層状にするためaddLayersを有効にしてみます。

第0:実施項目定義

 addLayers部を有効にします。

第4:addLayers部(チュートリアルのまま)

 addLayersControls {

             relativeSizes true;

             layers    {

                    “freestream”

                    {            nSurfaceLayers 5;      }    }

             expansionRatio 1.0;

             finalLayerThickness 0.3;

             minThickness 0.1;

             nGrow 0;

             featureAngle 60;

             nRelaxIter 3;

             nSmoothSurfaceNormals 1;

             nSmoothNormals 3;

             nSmoothThickness 2;

             maxFaceThicknessRatio 0.5;

             maxThicknessToMedialRatio 0.3;

             minMedialAxisAngle 90;

             nBufferCellsNoExtrude 0;

             nLayerIter 50; }

実施した結果のメッシュが以下となります。

周縁部に層状のメッシュが追加されており、目的が達成出来ました。

この層があればSRFpimplefoamの解析にて発生する螺旋状の流れをよく模擬出来ると考えます。


4.SRFpimplefoam計算例

 作成したモデルを用いて遠心ポンプの計算を実施し、OpenFoamを用いた遠心ポンプの流体解析の計算結果と比較してみます。

 結果を以下に示します。

 ポンプ効率56%と円柱状メッシュ効率62%と若干の差が出てしまいました。主な要因は吐出量の不一致と考えられます。メッシュが複雑に入りこんでいるため総流量が保存されなくなっているようです。このような若干の違いは出てしまいますが、総じて立方メッシュでもSRFPimpleFoamでの解析が可能な状況と考えます

 尚本計算ではメッシュをもう少し細かくしたものを用意し、extrudeMeshで2D化しました。snappyの内容を下記※1に示します。

〇今回の計算結果

入力Lin=277.0[W] / 出力Lout=156.0[W] / 効率η=156/277=56%

吸入量 1[㍑/s]、吐出量0.93[㍑/s]

OpenFoamを用いた遠心ポンプの流体解析における計算結果

入力Lin=267.7[W] / 出力Lout=165.2[W] / 効率η=165.2/267.7=62%

吸入量 1[㍑/s]、吐出量0.98[㍑/s]

※1:本計算に用いたsnappy構文(基本構文からの変更点のみ示します)

geometry {

castellatedMeshControls {

        resolveFeatureAngle 60;

        refinementRegions {

        allowFreeStandingZoneFaces false; }

snapControls {

         nSmoothPatch 3;

         nSolveIter 30;

         nRelaxIter 5; }

addLayersControls {

            layers {

            nGrow 0;

            featureAngle 60;

            nRelaxIter 3;

            nSmoothSurfaceNormals 1;

            nSmoothNormals 3;

            nSmoothThickness 2;

            nBufferCellsNoExtrude 0;

            nLayerIter 50; }


参考文献

[1]OpenFOAMによる熱移動と流れの数値解析第2版 一般社団法人オープンCAE学会編 森北出版