この章では、一般的にユーザーが入力する必要のある主な設定について詳しく説明します。これらのパラメータは、グローバルな Hex-dominant parametric 設定の下に表示されます。これらには、ベースドメインサイズと離散化、いくつかのタイプのメッシュ細分化とそれに対応する設定の定義が含まれます。
以下に説明する多くの設定と精密化は、自動 Hex-dominant (CFDのみ)設定で説明する設定と類似しています。ただし、1つの重要な違いは、メッシュセルサイズが自動メッシュ生成アルゴリズムでは絶対長さとして定義されるのに対し、ここではリファインメントレベルを介して定義されることです。
ジオメトリプリミティブと主なプロパティ
ジオメトリプリミティブには 、デフォルトでBackground Mesh BoxとMaterial Pointが含まれています。要件に応じて、ジオメトリを追加することができます。(Region refinementでメッシュの細分化領域を定義するためなど )
Background Mesh Box
Background Mesh Boxは、ベースメッシュの境界拡張を指定します。 外部流体シミュレーションと内部流体シミュレーションのどちらにメッシュを使用するかによって、境界拡張を選択する必要があります。
- 外部流れのとき: Background Mesh Boxの境界拡張は、後に特定の境界条件で指定される流体領域の境界/面としても機能します。したがって、この場合、対象物に対して上流、下流、横方向にある程度の距離を持たせる必要があります。一般的に対象モデルの代表径をDとして、少なくとも上流方向に2-3D、下流方向に6-8D、横方向に2-3Dの範囲を指定することを推奨します。
- 内部流れのとき: ここでは、Background Mesh Boxの境界拡張はベースメッシュの参照としてのみ機能するため、流体領域としては使用されません。領域はジオメトリの内部ボリュームになります。 境界条件は、結果として得られるジオメトリサーフェス上で指定されます。したがって、 Background Mesh Boxは 少なくともジオメトリの境界よりもわずかに大きい必要があります。
Material Point
Material Point はBackground Mesh Box内の囲まれた空間を指定するために使用します。この空間は キャステレーションメッシュステップの セル除去の 部分でメッシュとして保持されます(Hex-dominant メッシュのバックグラウンドを参照)。これは最終メッシュを構成するスペースとなります。
従って、Background Mesh Boxとは 関係なく、Material Pointによって、最終メッシュが外部流れシミュレーション用か内部流れシミュレーション用かが決まります。下の図は、同じBackground Mesh Boxとオブジェクトに対して、異なるMaterial Pointを指定した場合の2つのシナリオを示しています。
| 注意 |
| Material Pointは決して面上に配置されるべきではなく、メッシュを細分化した後でも常にセル内に配置されるべきです。したがって、奇数値で終わる座標が望ましいです。 |
追加のジオメトリプリミティブ
メッシュツリーの Geometry primitives ノードの+ボタンを使って、ユーザーがジオメトリプリミティブを追加することができます。これらのジオメトリは、メッシュ内の特定の領域をリファインするために使用し、カスタムメッシュのリファイン範囲を制限することができます。
定義できる形状は以下の3種類です:
- Cartesian box (直方体)
- Sphere (球)
- Cylinder (円柱)
下図は、Background Mesh Boxの内側でオブジェクトを囲むCartesian box (直方体)の例です。
主なプロパティ
ベースメッシュを作成するには、 Bounding box resolution (バウンディングボックスの解像度)で各座標方向の(Background Mesh Boxの)セル数を指定する必要があります。
ベースメッシュのセルサイズ(X方向)は次のようになります:
\[\frac{X_{max}-X_{min}}{N_x}\]
ここで、\(X_{max}\)はBackground Mesh Boxの最大X座標、\(X_{min}\)は最小X座標、\(N_x\)はX方向のセル数です。
離散化の際は、より良い結果を得るために完全な立方体のセルを持つBackground Mesh Boxを持つことをお勧めします。これは以下の公式が成り立つ場合に達成できます:
\[\frac{X_{max}-X_{min}}{N_x}=\frac{Y_{max}-Y_{min}}{N_y}=\frac{Z_{max}-Z_{min}}{N_z}\]
上記の定式化に従って、完全な立方体セルを持つBackground Mesh Boxのサンプルを下図に示します。
メッシュ細分化
細分化レベル
メッシュの細分化は、細分化レベルが1つ上がるごとにセル寸法は半分にすることで行われます。ここで最も粗い(最も大きい)メッシュのLevel 0は、Background Mesh Boxのメッシュです。\(\Delta X_0\)を参照すると、各座標方向のセルサイズについて以下の公式が成り立ちます:
$$\Delta X_n=\left(\frac{\Delta X_0}{2}\right)^2$$
この細分化レベルを図に示します:
| 重要 |
| 最大レベルは、ジオメトリの最小寸法のオーダーで最小セルサイズを達成するように設定することをお勧めします。細分化レベルに制限はなく、任意の細分化レベル(例えばレベル10)を指定することができますが、この場合メッシュサイズが大きくなりすぎる可能性があります。 |
Hex-dominant Parametricでは必要なメッシュを得るためにいくつかの細分化オプションを選択することができます。これらは全て Mesh Refinement サブツリーで指定されます。各細分化はメッシュ作成プロセスにおいて特定の役割を果たします:
- Surface refinement と Feature refinementは 、特にキャステレーションメッシュステップのセルの分割フェーズで使用されます。メッシュで解像されるべき最小の幾何学寸法のオーダーのセルサイズになるような細分化レベルを指定することをお勧めします。
- Region refinements は、ジオメトリの一部またはジオメトリプリミティブでユーザ定義された 1 つまたは複数のボリューム領域を細分化するために使用されます。
- Layer refinementは、メッシュ生成プロセスの レイヤー追加ステップ で使用され、ボディの選択された面に整列された六面体セルを追加し、結果の精度を向上させます。
- Box layersは Layer refinementと似ていますが、外側のBackground Mesh Boxの面上にレイヤーメッシュを生成するために使用されます。したがって、外部流体メッシュにのみ適用できます。
各細分化オプションの設定とパラメータについては、以下で詳しく説明します。
Surface refinement
Surface refinementは選択された面に対してのみ行われます。ユーザーが Surface refinementにボリュームを割り当てると、そのボリュームのすべての面に細分化が適用されます。Surface refinementを使用してセルをグループ化することもできます。
このようなセルグループはセルゾーンと呼ばれます。ユーザーはMin level (最小レベル)とMax level (最大レベル)を指定する必要があります。Min level (最小レベル)は最初にすべての面に適用されます。Max level (最大レベル)は、法線がResolve feature angleで指定された角度より大きい角度を形成する領域のセルにのみ適用されます。したがって、以下の場合はMin level (最小レベル)のみが適用されます。
- 平坦な面。
- 法線間の角度が Resolve feature angle で指定された値より小さい面。
その結果、複数の交点がResolve feature angleの値よりも大きな角度を形成するセルは、Max level (最大レベル)まで細分化されます。
下図はSurface refinement がMin level(最小レベル)=2、Max level (最大レベル)=4のメッシュです。
セルゾーン
このオプションはデフォルトでは無効になっています。ユーザーがこのSuraface refinementに閉じたボリュームを割り当て、このオプションをアクティブに設定すると、細分化はこのボリュームで囲まれたすべてのセルをグループ化します。このようなセルグループをセルゾーンと呼びます。例えば、Rotating zone (MRF(Multiple Reference Frame)またはAMI(Arbritrary Mesh Interface))、Momentum sources、Heat source、Passive scalar Sourceとして設定することができます。メッシュ化されるジオメトリがSTLフォーマットの場合、ユーザーは閉じたボリュームを形成する面のリストを割り当ててセルゾーンを作成することもできます。
| 重要 |
| Max level (最大レベル)は、最小面寸法のオーダーのセルサイズを与えるように設定することをお勧めします。Surface refinementは、Feature refinementでのみ上書きされます。 |
Feature refinement
この細分化タイプは、ジオメトリのフィーチャエッジを細分化するために使用されるため、特に重要です。フィーチャーエッジは、Included angle で指定された角度に基づいて抽出されます。そのため、隣接するサーフェス法線がIncluded angleより小さい角度を形成するエッジが抽出され細分化の対象となります。
ユーザーは Distance (距離)と Level (レベル)を 指定する必要があります。エッジとサーフェスメッシュは、下図に示すように、抽出されたエッジから全方向に指定されたDistance (距離)まで細分化されます。
| 注意 |
|
Distance (距離)入力の値は、以下のように小さいものから大きいものへと記述してください:
|
| 重要 |
| このFeature refinementは、より良い構造を提供する explicit Feature Snapに基づいて います。このFeature refinementを使用しない場合、デフォルトでimplicit Feature Snapが 使用されます。(詳細は Snap Controlsを参照) |
Region refinement
Region refinement は、 ジオメトリプリミティブ または ジオメトリ領域の下で、ユーザが指定した1つまたは複数のボリューム領域のボリュームメッシュを細分化するために使用されます。各領域には、以下のRefinement modeのいずれかを適用できます:
- Inside (内側): 面内部のすべてのボリュームメッシュセルを指定されたレベルまで細分化します。このためには面が閉じている必要があります。
- Outside (外側): 外側のボリュームメッシュセルを指定されたレベルまで細分化します。
- Distance (距離): 割り当てられたボリュームの面までの距離に従って細分化し、複数の距離で異なるレベルに対応できます。距離は昇順でテーブルに指定されていることに注意してください。それに応じて細分化レベルまたはセルの最大エッジ長を設定します。
Inside (内側)とOutside (外側)のRefinement modeの場合、距離は必要なく無視されます。そしてレベルはベースメッシュのセルサイズとの相対的なセルサイズを決定します。
Inflate boundary layer
Inflate boundary layerでは、面に整列したセルを持つボリュームメッシュを追加します。ユーザーは以下の4つの基本パラメータを入力する必要があります:
- Layers: レイヤーの総数を指定します。
- Expansion ratio (拡大率): 連続するレイヤーの成長率を指定します。値が大きいほどレイヤーの高さの差が大きくなります。
- Min thickness (最小厚さ): すべてのレイヤーの全体の最小厚さを指定します。この値はすべてのレイヤーの合計厚さより小さくなければなりません。そうでない場合、レイヤーは生成されません。
- Final layer thickness (最終レイヤーの厚さ): 表面から最も遠いレイヤーの高さ(厚さ)を指定します。
値は、細分化後の隣接するボリュームセルサイズを基準に指定する必要があります。下の図は、オブジェクトの表面に沿ったレイヤーのサンプルイメージです。
Bounding box layer addition
Bounding box layer additionは Inflate boundary layerと似ていますが、Background Mesh Boxにのみ適用されます。これは主に、ボックス表面が流れ領域の壁として機能し、精度のためにレイヤーメッシュで精緻化する必要がある外部流れ解析に役立ちます。ユーザーは、レイヤー生成のためのボックス面である追加パラメータを1つ選択する必要があります。
参考文献
[1] Snappy Hex Mesh 公式ユーザーガイド: http://cfd.direct/openfoam/user-guide/snappyHexMesh
[2] snappyWiki: https://sites.google.com/site/snappywiki/snappyhexmesh/snappyhexmeshdict