概要
このページでは、Mesh quality (メッシュ品質)とは何か、なぜそれが重要なのかについて説明します。以下の記事も併せてご参考にしてください:
メッシュはジオメトリを小さな要素に離散化したものです。メッシュ分割によって実際の形状を近似するため、メッシュの密度と品質はシミュレーションの精度と安定性に大きな影響を与えます。
メッシュ品質評価指標の目的は、離散計算領域(メッシュ)のシミュレーションへの適合性を評価することです。メッシュは通常、他のメッシュと比較して、最も重要なシミュレーション特性とされる収束までの時間、安定性、精度のうち少なくとも1つが、他の特性に悪影響を与えることなく改善されていれば、高品質であるとみなされます。
1.メッシュ品質の指標
SimScaleは一連の品質指標を使ってメッシュの品質を測定します。品質指標は、理想的なセル形状からどの程度離れているかを判断します。以下に、SimScaleで使用されるメッシュ品質指標を示します。
1.1 アスペクト比
簡単に説明すると、アスペクト比(Aspect ratio)とはセルの最長辺と最短辺の比のことです。理想的なアスペクト比は1で、これが1に近いほどセルの品質は高くなります。計算方法はセルの種類によって以下のように異なります:
六面体セルのアスペクト比: 最長辺と最短辺の比。
$$ Aspect\ ratio = \frac{max(x_1, x_2, …, x_{12})}{min(x_1, x_2, …, x_{12})} $$
四面体セル アスペクト比: セル内部の球体の半径と最大辺の相関関係。
$$ Aspect\ ratio = \frac{max(x_1, x_2, …, x_6)}{2 \cdot \sqrt 6 \cdot r} $$
1.2 非直交性
非直交性(Non-orthogonality)とは、隣接する2つのセルの重心を結ぶベクトル(図2における青いベクトル)と、これらのセルが共有する面(図2における赤い面)の法線との間の角度(図2における\(\theta\))のことです。非直交性の範囲は0(理想)~90(最低)です。0はメッシュが直交していることを示します。互いに整列した2つの完全な六面体は非直交性が0に等しくなります。
非直行性が90に近いほど数値的に不安定になるため、これを避けることが求めれらます。非直行性が90に近い場合、シミュレーションは収束に時間がかかるか、あるいは発散します。
非直交性は常に70以下に抑えることをお勧めします。非直交性が80を超える場合は、発散する可能性が高いためメッシュの改善をご検討ください。
1.3 体積比
体積比(Volume ratio)は隣接するセルの体積の比です。体積が\(V_1\) と\(V_2\) の2つの隣接セルを考えます。体積比は次のように計算されます:
$$ Volume\ ratio = \frac{max(V_1, V_2)}{min(V_1, V_2)} $$
実際は、一つのセルは複数の隣接セルに囲まれています。複数の体積比が存在するので、最大の体積比をセルの体積比と考えます。
$$ Volume\ ratio_i = max( Volume\ ratio_{j=1}, Volume\ ratio_{j=2},…, Volume\ ratio_{j=n}) $$
理想的な体積比は1です。体積比が1に近いほど、メッシュの品質は高くなります。
1.4 テトラエッジ比
テトラエッジ比(Tet edge ratio)は最長辺と最短辺の比です。この品質指標は四面体セルに対してのみ有効です。\(x\)で表されるセルの辺の長さを考慮すると、テトラエッジ比は次のように計算されます:
$$ Tet\ edge\ ratio = \frac{max(x_1, x_2, … x_6)}{min(x_1, x_2, … x_6) } $$
1.5 歪度
歪度(Skewness)は最適セルサイズと既存セルサイズの偏差です。歪度 の範囲は 0(理想)~ 1(最低)の間です。歪度が1に近いセルは補間領域内の精度が悪くなるため好まれません。計算方法はセルタイプによって以下のように異なります:
六面体セルの歪度: 六面体の面対の頂点角度と理想的な頂点角度である90度との偏差を測定します。単純に六面体内部の最大角度と最小角度を求め、以下の式で代入します:
$$ Skewness =max( \frac{\theta_{max}-90}{180-90}, \frac{\ 90- \theta_{min}}{90} ) $$
四面体セルの歪度: セル体積と理想体積の比率。四面体セルの理想体積は以下のように計算されます:
$$ V_{ideal}= \frac{8 \cdot \sqrt 3 \cdot R^3}{27} $$
最長辺とセル外球の半径の間には相関関係があります。
$$ Skewness = \frac{V_{ideal}-V_{cell}}{V_{ideal}} $$
最大歪度を0.5以下に保つことを推奨します。平均歪度が0.33以上、または最大歪度が0.85以上の場合はメッシュの改善をご検討ください。
1.6 クアッド最大角
六面体セルのクアッド最大角(Quad Max Angle)は隣り合うセルエッジ間の角度の最大値です。通常の範囲は 90(理想)~180(最悪)です。許容範囲は 90~135です。
1.7 トライ最大角
四面体セルのトライ最大角 (Tri Max Angle) は隣り合うセルエッジ間の角度の最大値です。通常の範囲は 60(理想)~180(最悪)です。
1.8 トライ最小角
四面体セルのトライ最小角 (Tri Min Angle) は隣り合うセルエッジ間の角度の最小値です。通常の範囲は 0(理想)~60(最悪)です。
2.品質評価
メッシュの品質評価には2つの用途があります:
-
シミュレーションの実行前:
生成されたメッシュがシミュレーション実行に適していることを確認するために実施します。ここでの評価はCFDの専門家向けで、経験の少ないユーザーはデフォルト設定のままで問題ありません。 -
シミュレーションで計算が発散した場合:
計算が発散してシミュレーションが失敗した場合、Mesh qualityでは、問題の原因となっている領域を特定するための強力なツールを提供しています。
以下の図は、Mesh qualityでメッシュの品質をチェックした結果のプレビューです:
2.1 Meshing log
メッシュの品質は、通常メッシュセルの幾何学的特性(例: アスペクト比)や隣接セル間の関係(例: 非直交性)に基づく様々な指標によって評価することができます。シミュレーションに対するメッシュの適合性は、シミュレーションする物理体系、シミュレーションのソルバー、幾何学的領域に強く影響されるため、品質指標はメッシュがシミュレーションの計算に適しているかどうかの目安にしかなりません。例として、単純な非圧縮性CFDシミュレーションは、高密度の変化を伴う圧縮性流れよりも、品質の低いセルに対する感度が通常はるかに低いとされています。
図6に、品質の良いメッシュと悪いメッシュのメッシュ生成ログを示します。ハイライトされた点は以下の通りです:
- メッシュ品質指標の種類(ここではアスペクト比)
- メッシュ内の対応する品質指標の最小(min)、最大(max)、平均(average)、標準偏差(standard deviation)。
- 対応する品質指標の中央値(median)。指標の99.9パーセンタイルが推奨範囲内にあることを確認します。
- 総合メッシュ品質指標(Overall mesh quality)。値が高いほどメッシュ品質が高いことを示します。
メッシュ品質指標のベストプラクティス:
次の表は、ベストプラクティスに基づくいくつかのメッシュ品質指標の範囲を示しています。「最大 」は、メッシュ品質を原因とするソルバーの発散がなく、シミュレーションを実行できる品質指標の最大値を意味します。「推奨」は、良好なメッシュ品質を確保するために推奨範囲における最大値を意味します。また流体解析および構造解析の場合をそれぞれ示しています。
ここで重要なことは、以下の数値は必須ではなく、推奨であるということです。例として、非直交性が85以上の場合、80%の確率で流体シミュレーションは失敗します。これは、メッシュの非直交性が86以上のシミュレーションが必ず失敗する、あるいは非直交性が84以上のシミュレーションが必ず成功するという意味ではありません。しかし、メッシュ品質が低いと、数値エラーが発生する可能性が高く、シミュレーションが発散して失敗するか、信頼性の低い結果が得られます。
| メッシュ品質指標 | 最大 (流体) | 推奨 (流体) | 最大 (構造) | 推奨 (構造) |
| アスペクト比 Aspect ratio |
20 | 10 | 80 | 4 |
| 非直交性 Non-Orthogonality |
85 | 60 | 90 | 60 |
| テトラエッジ比 Tet edge ratio |
100 | 10 | 100 | 10 |
| 体積比 Volume ratio |
80 | 10 | 100 | 30 |
| 歪度 Skewness |
0.85 | 0.25 | 0.85 | 0.25 |
| 注 |
| 体積比と非直交性はメッシュの各面で定義されます。SimScaleではセルにおけるすべての面の最大値を判定し表示します。 |
以下の例で、低品質メッシュと高品質メッシュがシミュレーションの安定性に及ぼす影響をご確認いただけます。
上の図は、低品質メッシュを用いたシミュレーションのMeshing log (メッシュ生成ログ)とConvergence plots (収束プロット)です。Meshing log (メッシュ生成ログ)において低品質メッシュ指標は赤字で示されています。Convergence plots (収束プロット)は、シミュレーションがおよそ400回反復計算した後に発散したことを示しています。このように発散したシミュレーションの結果は信頼できません。収束の詳細については、 CFDシミュレーションの収束を確認する方法(英語) をご参照ください。
上の図は、成功したシミュレーションのMeshing log (メッシュ生成ログ)とConvergence plots (収束プロット)です。Meshing log (メッシュ生成ログ)において高品質メッシュ指標は青字で示されています。Convergence plots (収束プロット)では残差が安定していることを示しています。この例から、メッシュ品質指標の向上がシミュレーションの安定性に大きな影響を与えることがわかります。
2.2 メッシュ品質の可視化
メッシュ品質指標は、メッシュ生成が終了した後、シミュレーションツリーのMesh qualityからアクセスすることができます。
ポスト処理ビューアはメッシュをロードし、メッシュ品質を即時計算します。そのため、大きなメッシュ(1,000万セル以上)では数分かかることがあります。メッシュ品質指標の表示を切り替える場合は、ポスト処理での操作と同じ方法で表示できます。
2.3 指標に基づくセルの分離
Mesh qualityでは様々なフィルタ表示をご利用いただけます。Isovolume フィルタは特に便利です。このフィルターでは、しきい値の最小値または最大値を推奨限界に調整することで、品質の悪いセルをハイライトすることができます。次の図はIsovolumeの 作成方法を示しています:
- Mesh 機能を開きます。
- Isovolumeの 横にある + ボタンをクリックして新しい Isovolumeを作成します。
- 分析したい指標を選択します。
- スライダーで、表示させたい限界値を調整します。
メッシュ内の不良要素は非常に小さく、それをハイライトしようとすると、見つけるのが難しいことが多くあります。このような場合、 パーツを 完全に非表示にして、オリエンテーションキューブの横にあるホームボタン(家型のボタン)を使って、不良要素の範囲にズームでき効率的に見つけることができます。モデルに複数の不良要素がある場合、 Isovolumeのしきい値をさらに制限する必要があるかもしれません。不良要素にズームしたら、 Part visualizationを再度有効にして、モデル内のセルを見つけることができます。
良いメッシュを作成する方法については、 標準メッシャーのメッシュ作成チュートリアル(英語)を ご覧ください。
3.メッシュ品質が低い場合の対処法
メッシュ品質が低いと、数値エラーが発生し、発散(シミュレーションの失敗)の原因となる可能性が高いです。あるいは、シミュレーションは失敗しないものの、信頼性の低い結果を出力することもあります。したがって、これらの問題が発生した場合、まずMeshing log (メッシュ生成ログ)をチェックしてください。品質指標を前述のベストプラクティスと比較してください。指標がメッシュ品質が不十分であることを示す場合、Mesh qualityを使ってメッシュを可視化します。完全なメッシュ品質のチェックとメッシュの改善方法は、 メッシュ品質のチェックと改善方法の記事でご覧いただけます。
SimScaleのOpenFOAMソルバーでは、数値計算の調整が可能です。シミュレーションツリーのNumericsで設定できます。メッシュ品質に不安がある場合、最後の手段としてNumericsでメッシュ品質に関連する数値計算を調整することもできます。
3.1 Relaxation factor (緩和係数)
Relaxation factor (緩和係数)を Automatic (自動)に調整することができます。Relaxation factor (緩和係数)についての詳細は、 Numericsを参照してください。
3.2 Number of non-orthogonal corrector (非直交補正の回数)
非直交補正は、圧力反復を繰り返すことによって流れ方向のフラックスを補正することを目的としています。そのため、計算量が増加します。 非直交補正の回数の増加は、非直交性の最大値によって決定する必要があります:
- 非直交性の最大値が 75 以下の場合、非直交補正は不要です。
- 非直交性の最大値が 75 ~ 82 の場合、非直交補正を 1 回行います。
- 非直交性の最大値が 82 ~ 85 の場合、非直交補正を 2 回行います。
非直交性の最大値が85以上の場合は、非直交補正は適用できずメッシュの品質を向上させることが求められます。
3.3 Gradient (勾配)
CellLimited (勾配)スキームは、計算された勾配を使用してセルの値が面に外挿されるとき、面の値が周囲のセルの値の上限を外れないように勾配を制限します。
Limiter coefficient (制限係数)は基礎となるスキームの後に指定され、1 は境界性を保証し、0 は一切制限を適用しません。実用的には、精度を上げるために0を、安定性を上げるために1を使います。
- 非直交性が 75 ~ 80 の場合は、cellLimited least squares - Limiter coefficient1.0 を使用します。
- 非直交性が 80 以上の場合は、cellLimited Gauss linear - Limiter coefficient 1.0 を使用します。
3.4 Divergence (発散)
Divergence (発散)スキームは対流離散化スキームです。簡単に説明すると、1次スキームは収束しやすく、2次スキームはより正確です。
- 非直交性が 75 ~ 80 の場合は、Gauss linear upwind や Gauss limited linear などの 2 次スキームを使用します。
- 非直交性が80以上の場合は、 Bounded Gauss upwind の 1次スキームを使用します。
3.5 Laplacian (ラプラシアン)
Laplacian (ラプラシアン)はスカラー関数の勾配の発散によって与えられる微分演算子です。一般にラプラシアン項は運動量方程式の拡散項です。Limiter coefficientは0から1の間で設定できます。
- Limiter coefficient 0 : 補正なし、Bounded補正、1次、非保存的: 低品質メッシュに適しています。
- Limiter coefficient 1: 補正あり、 Unbounded補正、2次、保存的: 高品質メッシュに適しています。
Laplacian (ラプラシアン)のスキームを選択する際に、以下のベストプラクティスを使用することができます:
- 非直交性が70以下の場合は、 Limiter coefficient 1のGauss linear correctedまたはGauss linear limited correctedを使用します。
- 非直交性が 75 ~ 80 の場合は、 Limiter coefficient 0.5の Gauss linear limited correctedを使用します 。
- 非直交性が80以上の場合は、 Limiter coefficient 0.333のGauss linear uncorrectedまたはGauss linear limited correctedを使用します。
3.6 Surface normal gradient (サーフェス法線勾配)
ラプラシアン項と同様に、Surface normal gradient (サーフェス法線勾配)に以下のベストプラクティスを使用してください:
- 非直交性が70以下の場合は、Limiter coefficient 1のGauss linear correctedまたはGauss linear limited correctedを 使用します。
- 非直交性が 75 ~ 80 の場合は、Limiter coefficient 0.5のGauss linear limited correctedを使用します。
- 非直交性が80以上の場合は、 Limiter coefficient 0.333のGauss linear uncorrectedまたはGauss linear limited correctedを使用します。