snappyHexMeshの概要
SnappyHexMeshは 、オープンソースソフトウェアOPENFOAM®のメッシュ生成ツールです。
このツールは、6面体(hex)要素と分割6面体(split-hex)要素からなる3次元非構造メッシュまたはハイブリッドメッシュを生成します。SimScaleプラットフォームには、4面体(テトラヘドラル、tet)要素と6面体(ヘキサヘドラル、hex)要素のハイブリッドメッシュを生成する自動の Standard アルゴリズムの他に、 snappyHexMesh メッシュ生成アルゴリズムも搭載されています。このメソッドは以下に詳述するステップを繰り返し実行し、最終メッシュを得ます。
6面体要素や分割6面体(split-hex)要素のHex-dominantアルゴリズムを使用する利点は、メッシュの質をあまり落とすことなく要素を非常に細かいスケールまで細分化できるため、シミュレーション速度と精度が向上する可能性があることです。これは、複雑な形状にフィットさせるためによりロバストに自動化できる4面体要素とは対照的です。
基本的には、6面体セル要素で構成されたベースメッシュを参照してセルを形状に投影し、あてはめます。最適な形状フィーチャーの解像度と最終的なメッシュ品質を得るために、エッジ、サーフェス、内側または外側のボリュームに対してメッシュの精密化を柔軟に指定することができます。各反復での負荷分散が可能な並列計算がサポートされています。
Hex-dominant メッシングの手法
snappyHexMeshアルゴリズムを使用した基本的な Hex-dominantメッシャーは4つの主要ステップから構成されています:
- キャステレーション メッシュ ステップ:
オブジェクトの周囲にベースメッシュが作成されます(リファインメントの有無は問いません)。 - スナップ ステップ:
次に、キャステレーションメッシュはオブジェクトのサーフェスにスナップされます。 - レイヤー追加ステップ:
指定された場合は、選択されたサーフェス上にメッシュレイヤーが生成され、メインメッシュに統合されます。 - メッシュ品質評価ステップ:
最終メッシュの不正/不良セルがチェックされ、品質基準に達するまでさらに反復が行われます。
これらの4つのステップについて、以下に簡単に説明します:
キャステレーションメッシュステップ
キャステレーションメッシュステップでは、ベースメッシュが ベースメッシュボックスの 境界内に作成されます。
ベースメッシュボックス または バックグラウンドメッシュボックスはメッシュ生成プロセスにおけるベースメッシュを作成する領域として機能します。このメッシュは単純な六面体要素で構成され、その数はユーザーによって定義されます。どの方向に対してもセル数は1より大きい、三次元メッシュになることに注意してください。
以下の図では、車体周りの外部メッシュの作成を例としてメッシュ作成プロセスを説明します。下の最初の画像は、オブジェクトを囲む ベースメッシュボックスを示して います。
下図に示すように、 ベースメッシュは ベースメッシュボックスで 囲まれた空間全体に生成されます。
セルの分割:
ボディ内部のメッシュセルを削除する前に、このベースメッシュは指定されたエッジとサーフェスの細分化設定に基づいて細分化され、ボディサーフェス近辺で分割されます。
セルの除去:
ボディの局所におけるメッシュが細分化され、分割された後、 material point (マテリアルポイント)の指定に基づいてセルが除去されます(詳細は Hex-dominantの基本設定 を参照)。
これには、少なくとも1つの領域が領域内のサーフェスで囲まれている必要があります。マテリアルポイントがあるメッシュ空間は維持され、他の空間ではセルが削除されます。つまり、マテリアルポイントはベースメッシュボックスの境界とボディ表面の間の空間であればどこにあっても構わないと言えます。
領域の絞り込み:
最後に、メッシュ空間は、指定された Region refinement (領域の細分化設定) と Refinement level (細分化レベル) に基づいてさらに細分化されます( Refinement > Region refinement で設定します)。この後、キャステレーションされたメッシュは下図のようになります。
スナップステップ
snappyHexMeshアルゴリズムにおける次のステップは、キャステレーションされたメッシュ(階段型のメッシュ)をオブジェクトサーフェスにスナップまたは投影することです。この処理は以下のアルゴリズムで行われます:
- キャステレーションメッシュのセル頂点をオブジェクトのサーフェス上に配置します。
- 次に、移動させた頂点により内部メッシュを緩和します。
- メッシュ品質パラメータに違反する不良セルをチェックします。
- 品質基準が達成されるまでこのプロセスを繰り返します。
スナップ処理後の内部メッシュを下図に示します:
レイヤー追加ステップ
メッシュ設定の仕様に応じて、サーフェスにアライメントされた六面体セルからなるレイヤーメッシュが、選択されたサーフェスまたはすべてのサーフェスに生成されます。
このプロセスも反復的に行われ、必要なメッシュを生成するために多くのステップを伴います。ここでは方法論のみを説明し、設定の詳細は メイン設定 > レイヤーリファインメントで 説明します。
主な手順は以下の通りです:
- 内部のスナップされたメッシュはオブジェクトの表面から法線方向に指定された距離(Thickness値)だけ押し戻されます。
- 内部メッシュは緩和され、品質パラメータを満たすかチェックされます。
- 品質基準が満たされれば、レイヤーが挿入されます。そうでない場合は、前のステップを繰り返します。
- 必要な品質基準を達成する可能性がない場合は、レイヤーは挿入されません。
メッシュ品質評価ステップ
最終ステップとして、メッシュの品質基準がチェックされ、すべてのチェックに合格するか、全体の反復限界に達するまでメッシュ作成プロセスがループされます。
チェックに失敗したまま反復限界に達した場合、メッシュに不良要素やセルが含まれている可能性があります。
参考文献
- Snappy Hex Mesh公式ユーザーガイド http://cfd.direct/openfoam/user-guide/snappyHexMesh