*[[SnappyHexMesh]] [#d5674751]

[[OpenFOAM:http://www.openfoam.org]]でメッシュを作成するツールの1つであるSnappyHexMeshについて説明します。

SnappyHexMeshで生成されるメッシュは、ポリヘドラルメッシュ(多面体要素からなるメッシュ)になります。

SnappyHexMeshは並列化されており、高速にメッシュを作成することが可能です。

** 表面メッシュ [#lae95520]

形状データは三角形の表面メッシュ(STL, Nastran, OBJなど)です。
constant/triSurfaceで設定します。

#ref(triSurface.png,center,nowrap,60%,triSurface);

** 初期メッシュ [#x7be5e08]

blockMeshなどで、オクトツリーの根になる初期メッシュ(6面体)を作成します。

#ref(initial_mesh.png,center,nowrap,60%,initial_mesh);


** オクトツリーによる細分 [#e6ca1dce]

-表面形状による細分(特徴性、曲率)
-体積形状による細分(閉じた空間、幾何形状)

を指定して、初期メッシュを細分します。

#ref(refinement.png,center,nowrap,60%,refinement);

** 使用しない領域のメッシュを削除 [#w187030d]

keep pointで、残す領域を指定して、計算領域以外のボリュームメッシュを削除します。

#ref(removeUnusedCells.png,center,nowrap,60%,removeUnusedCells);

#ref(castellatedMesh.png,center,nowrap,60%,castellatedMesh);

** スナッピング [#ud3f77ac]

スナッピングとはpatch面を表面形状上に射影することです。
スナッピングではpatch面を表面形状上に射影します。

snapControls sub-dictionaryで設定します。
#ref(snappying.png,center,nowrap,60%,snappying);

スナッピングの設定は、snapControls sub-dictionaryで行います。

#code(c){{
snapControls
{
    nSmoothPatch 3;

    tolerance 1.0;

    nSolveIter 300;

    nRelaxIter 5;

    nFeatureSnapIter 10;
}

}}

  nSmoothPatch 3;
面上に射影する前に、パッチ点をスムージングする回数

  toleracne 1.0;
面に近づけるための最大辺長の倍率

  nSolverIter 300;
スナッピングした変形場に適用するスムージングの回数

  nRelaxIter 5;
誤差を減らすための倍率を戻す再の繰り返し数

  nFeatureSnapIter 10;
特徴線上へのスナッピングするときの繰り返し数




** 境界層 [#p546c358]

境界層は、ボリュームメッシュがある状態から入れますので、後入れの境界層となります。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS