ソルバー収束の確認と診断
収束を論じるための理論基礎
「収束」という言葉の3つの意味
先生、「解析が収束しました」って報告したら、先輩に「どの収束のこと?」って聞き返されました…。
いい質問をされたね。CAEで「収束」は少なくとも3つの別物を指すんだ。①線形ソルバーの反復収束(連立方程式 \( A\mathbf{x}=\mathbf{b} \) を反復法で解く際の残差低減)、②非線形反復の収束(Newton法が釣り合い状態に到達すること)、③離散化の収束(メッシュや時間刻みを細かくしたとき解が漸近すること)。①②が収束しても③を確認していなければ「間違った方程式を正確に解いた」だけかもしれない。この記事は①②の確認と診断を扱うよ。③はメッシュ収束性検証で詳しく説明している。
残差の定義と収束判定ノルム
非線形静解析における残差は、外力と内力の不釣り合い量です。
$$ \mathbf{r}^{(k)} = \mathbf{F}^{ext} - \mathbf{F}^{int}(\mathbf{u}^{(k)}) $$
ソルバーはこの残差ノルムが基準値以下になった時点を「釣り合いに達した」と判定します。実際の判定には複数の尺度が併用されます。
| 基準 | 定義(概念) | 特徴と限界 |
|---|---|---|
| 力残差基準 | \( \|\mathbf{r}\| / \|\mathbf{F}^{ext}\| \le \epsilon_F \) | 釣り合いを直接測る最重要指標。荷重がほぼゼロの段階では相対化が破綻しやすい |
| 変位補正基準 | \( \|\Delta\mathbf{u}^{(k)}\| / \|\Delta\mathbf{u}\| \le \epsilon_u \) | 解の変化の頭打ちを見る。停滞と収束を区別できない欠点がある |
| エネルギー基準 | \( |\mathbf{r}\cdot\Delta\mathbf{u}| \) の低減 | 力と変位の積で両者をバランスよく監視。単独では使わない |
重要なのは、変位補正基準だけで「収束」を宣言してはいけないことです。反復が停滞しているだけでも変位変化は小さくなるためで、力残差が下がりきっていない「見かけの収束」を通してしまいます。
収束の速さを支配するもの
Newton-Raphson法は解の近傍で二次収束します。残差が反復ごとに \( 10^{-2} \to 10^{-4} \to 10^{-8} \) のように桁数を倍にしながら落ちるのが健全な挙動で、この「加速しながら落ちる」パターンからの逸脱が診断の手がかりになります。一方、線形反復法(CG法・GMRES法)の収束率は係数行列の条件数 \( \kappa(A) \) に支配されます。細長い要素・極端な材料剛性比・薄板構造は条件数を悪化させ、反復停滞の主要因になります。つまり線形ソルバーの収束不良は、それ自体がモデル品質(メッシュ・材料・拘束)の診断情報でもあるのです。
収束を制御する数値手法
Newton法系列と荷重増分
非線形問題は荷重を一度に加えず増分に分割し、各増分でNewton反復を回します。接線剛性を毎回更新するフルNewton法は二次収束しますが1反復が高価、更新を省く修正Newton法は1反復が安価な代わりに線形収束に落ちます。収束が苦しいときの実務的な打ち手は概ね次の順です。
- 荷重増分を小さくする — 各増分の初期推定が解に近づき、Newton法の収束半径内に入りやすくなる
- ライン探索を有効化 — 補正量のスケーリングで発散方向への行き過ぎを抑制
- 安定化(微小減衰・粘性)を追加 — 座屈・スナップ直前の不安定を通過。ただし散逸エネルギーが十分小さいことの事後確認が必須
- 弧長法(Riks法)へ切替 — 荷重-変位曲線が折り返すスナップスルー・スナップバックでは荷重制御自体が破綻するため、弧長パラメータで経路追跡する
線形反復法と前処理
大規模モデルでは直接法(LU・Cholesky分解)のメモリがボトルネックになり、反復法+前処理が標準になります。前処理は条件数を実効的に下げる変換で、ILU分解系や代数マルチグリッド(AMG)が代表です。反復回数が数百を超えて停滞する場合、反復上限を増やすのではなく前処理の変更・メッシュ品質の改善が正道です。対称正定値ならCG法、非対称(流体・接触の一部定式化)ならGMRES法という選択も、収束不良診断の際に確認すべき基本事項です。
収束履歴の読み方
残差のグラフって、下がっていればそれでOKなんじゃないんですか?
「どう下がるか」に情報が詰まっているんだ。パターンで読めるようになると、対策が逆引きできるよ。
| 残差履歴のパターン | 読み取れる状態 | 典型的な対策 |
|---|---|---|
| 反復ごとに桁数が倍増して低下 | 健全な二次収束 | そのままでよい |
| 一定レートの直線的低下 | 修正Newton・準Newtonの線形収束 | 許容内なら可。遅ければ接線更新頻度を上げる |
| 途中から横ばい(停滞) | 接線と実剛性の乖離、接触のチャタリング、悪条件 | 増分縮小・接触安定化・前処理見直し |
| 振動しながら低下しない | 接触のオンオフ繰り返し、材料の除荷再負荷 | 接触の初期貫入解消、減衰追加、増分縮小 |
| 単調増大(発散) | 収束半径外、構造の不安定化(座屈)、入力ミス | 初期増分を1/10に、安定化、モデル再点検 |
CFDにおける収束判定の特殊性
定常CFDでは「残差が規定値まで落ちること」と「答えが定まること」のずれが特に大きく、残差と監視量の併用が必須です。残差が \( 10^{-3} \) で停滞していても揚力係数や圧力損失が完全に一定なら実用上収束していることがあり、逆に残差が小さくても監視量がゆっくり漂流し続ける(偽定常)ことがあります。判定は次の3点セットで行います:①スケール化残差の低下、②積分量(力・流量・平均温度)の定常化、③境界収支(質量・エネルギー)の残差が入力の1%未満。剥離を伴う流れで監視量が周期振動する場合は、そもそも定常解が存在しない(非定常解析へ移行すべき)ことを示しています。
実務での確認手順
収束判定基準のデフォルトを盲信しない
各ソルバーの既定値(力残差0.5%など)は「多くの問題で妥当」な妥協点であって、あなたの問題での十分性は保証しません。検証の定石は判定基準の感度チェックです:基準を1桁厳しくして再解析し、評価量(最大応力・変位・反力)の変化が要求精度より小さいことを確認します。変化が大きいなら、通常運用の基準では緩すぎたということです。逆に、基準を過剰に厳しくして計算時間を浪費していないかも同じ方法で確認できます。
収束履歴を成果物として残す
収束履歴(増分ごとの反復回数・カットバック発生箇所・最終残差)は解析の「健康診断書」です。報告書に最大応力の図だけ貼って履歴を捨てる運用では、後から結果の信頼性を検証できません。最低限、①全増分が判定基準を満たして終了したか(打ち切り増分の有無)、②カットバックが集中した荷重域はどこか(そこに物理的イベントがある)、③最終増分の残差値、の3点を記録に残します。「最大反復回数に達したため次の増分へ進んだ」列が1行でもあれば、その解は釣り合っていません。
収束不良を切り分ける標準手順
収束しないとき、パラメータを闇雲に触る前に原因を二分法で絞ります。
- 線形弾性・小変形に落として解く — これでも解けなければ拘束不足・結合不良・メッシュ品質の問題(非線形性は無関係)
- 非線形性を1つずつ戻す — 材料非線形・幾何非線形・接触の順に有効化し、どれを入れた瞬間に壊れるか特定
- 荷重を1/10にする — 小荷重で収束するなら増分制御の問題、しないならモデル定義の問題
- 壊れる直前の増分の変形・応力を可視化 — 局所座屈、要素の裏返り、接触の食い込みなど物理イベントが見える
この順で進めば、「収束しない」の9割は数増分の調査で原因箇所が特定できます。
主要ソルバーの収束制御と診断出力
ソルバー別の判定基準と診断ファイル
| ソルバー | 収束判定の設定 | 診断情報の所在 | 実務メモ |
|---|---|---|---|
| MSC Nastran / NX Nastran | NLPARM(CONV=UPW で変位/荷重/仕事基準を選択) | .f06 の非線形反復サマリ(EUI・EPI・EWI) | 基準の組合せ選択が結果に効く。荷重基準を外さない |
| Abaqus | 既定は力残差0.5%(時間平均力比)。*CONTROLSで変更 | .msg(反復詳細)・.sta(増分サマリ) | カットバック箇所と警告(Numerical singularity等)を.msgで確認 |
| Ansys Mechanical | CNVTOL(力・モーメント・変位) | Solution Information・収束グラフ | bisection発生点に物理イベントあり。弱ばね自動追加に注意 |
| Ansys Fluent | スケール化残差の目標値+モニタ | 残差プロット・レポート定義 | 残差だけで判定しない。Report Definitionで積分量を常時監視 |
| OpenFOAM | fvSolutionのsolver tolerance/SIMPLEのresidualControl | ログ+solverInfo/residuals functionObject | 緩和係数(URF)と収束速度のトレードオフを記録に残す |
カットバック(増分自動縮小)の読み方
陰解法ソルバーは収束に失敗すると増分を自動で縮めて再試行します(Abaqusのcutback、Ansysのbisection)。これは失敗ではなく診断情報で、カットバックが集中する荷重レベルには座屈・接触状態の切替・材料の降伏拡大などの物理イベントが存在します。その荷重域の変形と接触状態を可視化すれば、モデルが伝えようとしている挙動が読み取れます。カットバックを「時間がかかる邪魔なもの」として最小増分を強引に緩めるのは、診断情報を捨てる行為です。
陽解法には「収束判定」がないことに注意
陽的動解析(LS-DYNA、Abaqus/Explicit)は連立方程式を解かないため、そもそも収束判定が存在しません。その代わりの健全性指標がエネルギー収支です。全エネルギーの保存(内部+運動+散逸−外部仕事≒一定)、人工エネルギー(砂時計制御)が内部エネルギーの数%以下、質量スケーリングによる質量増加率の管理——これらが陰解法の残差チェックに相当します。「Explicitだから収束の心配は不要」ではなく、確認すべき量が別物になるだけです。
先端研究の動向
大規模化とスケーラブルな前処理
数千万自由度級の解析では、収束性とスケーラビリティを両立する前処理が研究の中心です。代数マルチグリッド(AMG)は理想条件下でメッシュサイズに依存しない反復回数を達成し、領域分割法(FETI-DP/BDDC系)は超並列環境での標準になりつつあります。実務側から見ると、「大規模で収束が遅い」問題の多くはソルバー選定・前処理設定で桁違いに改善する余地があり、既定設定のまま計算資源を増強する前に検討する価値があります。
機械学習による収束加速
ニューラルネットワークで初期解や前処理を学習し反復回数を削減する研究が活発です。類似解析の結果から良い初期推定を生成する手法は、形状最適化やパラメトリックスタディのように「似た問題を大量に解く」ワークフローで実用的な削減率が報告されています。ただし学習ベースの初期値は分布外の問題で逆効果になり得るため、収束判定そのものは従来の残差基準で行う(加速はするが判定は委ねない)のが現時点の健全な使い方です。
非線形ロバスト性の自動化
増分制御・安定化・ソルバー切替を自動調整するアダプティブ戦略の整備が各ソルバーで進んでいます。準Newton法(BFGS系)と自動ライン探索の組み合わせ、信頼領域法による大域収束性の保証、接触の内点法定式化など、「人がパラメータを職人芸で調整する」領域を減らす方向です。一方で自動化が進むほど、何が自動で行われたかをログで確認する検証者の役割は重くなります。散逸エネルギーの事後チェックのように、自動安定化の副作用を定量確認する手順が今後ますます重要になります。
トラブル対応
症状別の診断表
| 症状 | 考えられる原因 | 対策 |
|---|---|---|
| 最初の増分から発散 | 拘束不足・単位系ミス・初期貫入・荷重の桁違い | 線形解析に落として点検。接触は初期調整で貫入解消 |
| 特定の荷重レベルで毎回停滞 | 座屈・スナップスルー・接触状態の大規模切替 | その直前の変形を可視化。弧長法か安定化、動解析化を検討 |
| カットバック連発で進まない | 増分下限が問題の非線形性に対して大きすぎる | 最小増分を下げる。局所メッシュ・材料曲線の折れも点検 |
| 線形ソルバーの反復が停滞 | 悪条件(極端な要素形状・剛性比・薄板) | 前処理をAMG等へ変更、メッシュ品質改善、直接法で切り分け |
| 残差は下がるが結果が反復条件で変わる | 判定基準が緩すぎる(見かけの収束) | 基準を1桁厳しくして感度確認。力残差基準を主にする |
| CFDで残差が10^-3で横ばい | 偽定常・非定常性・メッシュ起因の振動 | 監視量の定常性と収支で判定。振動なら非定常解析へ |
どうしても収束しないときの最終確認
全部試しても収束しないときは、どうすれば…?
最後に疑うべきは「その問題に静的な釣り合い解が存在するのか」だよ。崩壊荷重を超えた構造、動的に飛び移る座屈、自励振動する流れ——存在しない定常解をソルバーに探させても、永遠に収束しない。収束不良が物理の答えであるケースだね。この場合は動解析・弧長法・非定常解析といった「時間や経路を追う定式化」への切替が唯一の正解になる。ソルバー設定の問題か、物理の問題かを見極めるのが収束診断の最終段階だよ。
収束の確認は「計算が最後まで走ったか」ではなく「釣り合い・保存則がどこまで満たされたか」の定量確認です。判定基準の感度チェックと履歴の記録を習慣化すれば、収束起因の品質事故はほぼ防げます。あわせて境界条件の検証手法、メッシュ収束性検証も確認してください。
なった
詳しく
報告