h-リファインメント(メッシュ細分化)
h-リファインメントの理論基礎
h・p・r——3つのリファインメントの使い分け
メッシュ由来の離散化誤差を下げる手段は3系統あります。h-リファインメントは要素サイズ \( h \) を小さくする(要素を増やす)方法、p-リファインメントは要素の多項式次数を上げる方法、r-リファインメントは要素数を変えずに節点配置を最適化する方法です。このうちhは、どんな要素タイプ・どんなソルバーでも使える最も汎用的な経路で、メッシュ収束性検証(GCI等)の土台でもあります。
「とりあえず全体を2倍細かく」って先輩に言われるんですが、それで何がどれくらい良くなるのか、理屈が分かってなくて…。
そこには綺麗な理論があるんだ。誤差がメッシュサイズの何乗で減るか——収束次数が要素の次数で決まっている。これを知っていると「2倍細かくしたら誤差は1/4になるはず」という定量的な予測ができて、予測から外れたら何かがおかしいと分かる。細分化は闇雲な作業じゃなくて、予測と検証の道具なんだよ。
先験的誤差評価と収束次数
解が十分滑らかなとき、次数 \( k \) の要素(1次要素なら \( k=1 \))による有限要素解の誤差は
$$ \| u - u_h \|_{E} \le C\, h^{k}, \qquad \| u - u_h \|_{L^2} \le C\, h^{k+1} $$
と評価されます(\( \|\cdot\|_E \) はエネルギーノルム)。つまり1次要素ではひずみ・応力は \( O(h) \)、変位は \( O(h^2) \)、2次要素ではそれぞれ \( O(h^2) \)・\( O(h^3) \) で減ります。変位が先に収束し応力が遅れて収束するのはこの次数差の帰結で、「変位はもう変わらないのに応力がまだ動く」のは異常ではありません。
特異点による収束率の制限
この綺麗な収束は解の滑らかさが前提です。入隅(re-entrant corner)・点荷重・点拘束・材料界面の角には応力特異性があり、解の正則性が \( u \sim r^{\lambda} \)(\( \lambda < 1 \))に落ちます。すると一様細分の収束率は要素次数によらず \( \min(k, \lambda) \) に制限され、高次要素を使っても・どれだけ細分しても、特異点近傍の応力値は収束しません。この場合の正しい選択は、①特異点を丸め(実形状のフィレットを入れる)、②評価点を特異点から離す、③特異点周りに向けた適応細分+外挿で扱う、のいずれかです。h-リファインメントの限界を知ることが、正しく使う第一歩です。
細分化の数値手法
一様細分と局所細分
一様細分は全要素を等分割する方法で、収束性検証(GCI・Richardson外挿)に最適な系統的系列を作れます。コストは3次元で1段あたり要素数8倍。局所細分は誤差の大きい領域だけを細分する方法で、実用解析の主力です。局所細分の実装には主に2方式があります。
- 要素分割型 — 既存要素を分割(四分木/八分木、red-green分割、二分割法)。分割で生じる隣接要素との節点不整合は、ハンギングノード拘束または遷移要素で処理
- リメッシュ型 — サイズ場(サイズマップ)を更新して領域全体を切り直す。要素品質を保ちやすいが、解のマッピングが必要な非線形・時刻歴問題では履歴の移送誤差に注意
いずれの方式でも、細分後の新しい境界節点は元のCAD形状に再投影する必要があります。粗メッシュの折れ線形状のまま細分すると、形状誤差が離散化誤差の低減を頭打ちにします(円孔の応力集中係数が理論値に収束しない典型原因)。
適応的h-リファインメントのループ
適応細分は「解く→誤差を推定→マークする→細分する」の反復です。
- SOLVE — 現メッシュで解を計算
- ESTIMATE — 要素ごとの誤差指標を計算。応力回復型(Zienkiewicz-Zhuの超収束パッチ回復:平滑化応力と要素応力の差)と残差型が代表
- MARK — 誤差の大きい要素を選択(誤差合計の一定割合を占める要素集合を選ぶDörflerマーキング等)
- REFINE — マークした要素を分割し、次の反復へ
終了判定は「推定誤差が目標以下」または「目的量の変化が許容以下」です。誤差指標は推定であって厳密値ではないため、最終メッシュでの収束性確認(もう1段細分して目的量の変化を見る)は省略できません。
CFD境界層メッシュの細分は等方細分ではない
壁面境界層の解像は法線方向の第1層厚さ(\( y^+ \))と成長率で管理されており、等方的な一様細分はこの設計を壊します。境界層の細分は「第1層厚さを保ったまま層数を増やす」「成長率を下げる」という異方的な操作で行い、\( y^+ \) の分布を細分前後で確認します。壁関数を使う場合は \( y^+ \) を細分で30未満に下げてしまうと壁関数の適用条件を破る——細分すると悪化するケースがあるのがCFDの落とし穴です。
実務適用の指針
どこを細分するかの目安
| 部位 | 目安 | 理由 |
|---|---|---|
| 応力集中部(フィレット・孔縁) | 円弧90°あたり3要素以上、勾配方向に3層以上 | ピーク応力の解像。1〜2要素では系統的に過小評価 |
| 板厚方向(曲げを受けるソリッド) | 2次要素で2層以上 | 曲げ応力の線形分布の解像 |
| 接触面 | 接触圧分布の端部に向けて細分 | 接触圧の端部特異性・エッジ効果 |
| 荷重・拘束の導入部 | 評価しないなら粗くてよい(離す) | サンブナンの原理。細分しても特異なら収束しない |
| 遠方場 | 粗く保つ | 計算資源を勾配部へ集中 |
系統的な細分系列の作り方
収束性検証に使う系列は「同じ設計思想のまま全体を等倍率で細かくした」メッシュ群であるべきです。実務での作り方は2通りあります。①グローバルサイズと局所サイズを同じ倍率(推奨1.5〜2倍)で同時に縮める、②一様分割機能で機械的に細分する。避けるべきは「粗メッシュは自動、細メッシュは手動調整」のような系列で、これは細分比が場所ごとにバラバラになり、観測次数が意味を失います。各水準で要素品質指標(歪み・ヤコビアン)の分布も確認し、細分で品質が劣化していないことを添えます。
コストの見積りと打ち切りライン
3次元の一様細分は1段で要素数8倍・直接法ソルバーの計算量はそれ以上に増えます。「もう1段細かくできない」状況は普通に起きるため、局所細分で評価部位だけ系列を作る(サブモデリングの併用を含む)のが実務解です。粗い全体モデルから変位境界条件を切り出し、詳細メッシュのサブモデルで応力評価部を解けば、全体を細分せずに評価部の収束性を確認できます。サブモデル境界が応力勾配の強い場所にかかっていないこと(境界を動かして結果が変わらないこと)の確認までがワンセットです。
主要ツールの細分化機能
ツール別の対応状況
| ツール | 細分化機能 | 実務メモ |
|---|---|---|
| Ansys Mechanical | Convergence(結果項目ベースの自動適応細分)、Sphere of Influence等の局所サイズ制御 | Convergence対象に特異点上の応力を選ぶと発散し続ける点に注意 |
| Abaqus | 適応リメッシュ(誤差指標ベースのサイズ場更新)、ALE適応メッシュ | リメッシュ間の解マッピングを伴う非線形問題は移送誤差を確認 |
| COMSOL Multiphysics | 物理制御メッシュ+適応メッシュ細分化(誤差推定内蔵) | 目的量ベース(汎関数指定)の適応も選択可 |
| OpenFOAM | refineMesh・snappyHexMeshの領域細分、動的AMR(dynamicRefineFvMesh) | ハンギングノードは面分割で処理される。checkMeshで品質確認 |
| Nastran系 | 自動適応は限定的。プリプロセッサ側のサイズ制御が主 | 系統的系列はメッシャー側で倍率管理して作る |
自動適応機能を使うときの検証ポイント
自動で収束するまで細分してくれる機能があるなら、手動のメッシュスタディはもう不要なんじゃ…?
自動適応は強力だけど、2つの前提を人間が確認しないと結果を誤用しかねない。第一に収束判定の対象——ツールの既定は「選んだ結果項目」の変化率で、あなたの設計判断に使う量と同じとは限らない。第二に特異点——特異点上の応力を対象に選ぶと、自動細分は永遠に収束せず反復上限で止まり、その時点の値が「収束値」として出てくる。細分履歴(反復ごとの値の推移)を必ずグラフで見て、漸近しているか発散傾向かを自分の目で確認すること。それをやるなら、自動適応は最高の時短ツールだよ。
先端研究の動向
ゴール指向(随伴ベース)適応
従来の誤差指標は「解全体のエネルギーノルム誤差」を下げるように細分しますが、実務で欲しいのは「揚力係数」「特定点の応力」など目的量の誤差です。随伴(adjoint)問題を解いて目的量への感度で誤差を重み付けするDWR(dual-weighted residual)法は、目的量あたりの精度を最小の要素数で達成する枠組みとして、CFD分野(特に空力係数の格子収束)で実装が進んでいます。目的と関係ない渦を細分し続ける無駄が原理的に避けられるのが利点です。
hp適応と指数収束
滑らかな領域ではpを上げ、特異点近傍ではhを幾何級数的に細分するhp適応は、特異性があっても自由度数に対して指数的な誤差収束を達成できることが理論的に知られています。実装の複雑さから汎用商用コードへの浸透は部分的ですが、スペクトル要素系・高次DG(不連続ガレルキン)系ソルバーの発展とともに、高精度計算の標準手法になりつつあります。
機械学習との融合
適応ループの「ESTIMATE→MARK」を学習モデルで置き換える研究が活発です。粗メッシュの解から最適サイズ場を直接予測するモデル、強化学習で細分方策を学ぶアプローチなどが報告されており、適応反復の回数(=ソルバー実行回数)を削減できます。ただし学習ベースのサイズ場は保証を持たないため、最終メッシュでの古典的な収束性確認を置き換えるものではない——この整理は感度分析やサロゲート同様、ML×CAE全般に共通します。
トラブル対応
症状別の原因と対策
| 症状 | 考えられる原因 | 対策 |
|---|---|---|
| 細分しても応力が増え続ける | 応力特異点(入隅・点拘束・点荷重) | 収束対象にしない。フィレット付与・評価点移動・公称応力/ホットスポット法へ切替 |
| 細分で要素品質が悪化する | 分割型細分の劣化蓄積、曲面再投影なし | リメッシュ型に切替、CAD再投影を有効化、品質指標を水準ごとに記録 |
| 細分したのに結果がほぼ変わらず精度も上がらない | 誤差の支配源がメッシュ以外(境界条件・材料・形状理想化) | 誤差収支を見直す。境界条件検証へ |
| 適応細分が評価部位と無関係な場所を細分する | 大域誤差指標と目的量の不一致 | 目的量ベース(ゴール指向)設定に変更、または評価部位の手動サイズ指定を併用 |
| CFDで細分後に壁面熱伝達・摩擦が悪化 | y+が壁関数の適用範囲を外れた | 境界層は異方細分で管理。壁処理(壁関数/低Re型)と整合させる |
| 細分系列の観測次数が理論値に合わない | 系列の非系統性、漸近域未達、反復収束不足 | GCIトラブルシュートの診断手順を適用 |
| メモリ・時間が限界 | 3Dの一様細分は1段8倍 | 局所細分+サブモデリング、反復法ソルバー+並列化へ |
「細分化すべきか」を最初に問う
結局、迷ったらまず細分しておけば安全…ですよね?
「安全」ではあるけど「有効」とは限らない、が正確なところだね。解析の総誤差は離散化誤差+モデル化誤差(境界条件・材料・形状理想化)+入力の不確かさの合算で、h-リファインメントが減らせるのは最初の1つだけ。離散化誤差が全体の1割しかない状況で8倍のコストをかけて半分にしても、総誤差はほぼ変わらない。だから順番は、①まずGCIで離散化誤差の大きさを見積もる、②それが支配的なら細分する、③そうでないならモデル化誤差・入力の不確かさに投資する。細分化は目的じゃなくて、誤差収支の中の一手段だよ。
関連トピック
なった
詳しく
報告