CFD解析の発散

カテゴリ: エラー対策 | 2026-02-01
cfd-divergence

CFD解析の発散とは

🧑‍🎓

先生、OpenFOAMで流体解析を回したら「Floating point exception」で落ちました…


🎓

CFDの発散は、速度場や圧力場の値が計算中に無限大に発散してしまう現象だ。原因は多岐にわたるが、メッシュ品質、境界条件の不適切さ、時間刻みの設定が三大原因だ。


🧑‍🎓

構造解析の収束失敗とは性質が違うんですか?


🎓

構造のFEAは通常暗黙的に解くので「収束しない」という形で現れる。CFDの場合、特に陽解法ベース(多くのFVMソルバー)ではCFL条件を超えると即座に値が発散する。


エラーメッセージと対策

OpenFOAM

🎓

メッセージ: #0 Foam::error::printStack(Foam::Ostream&) at ??:? --> FOAM FATAL ERROR: Floating point exception


もしくは:

Maximum number of iterations exceeded. Solution has diverged.


OpenFOAMではまずCourant数を確認する。system/controlDictmaxCoを0.5以下にするか、adjustTimeStep yesで自動調整させる。メッシュのcheckMeshで非直交性(non-orthogonality)が70度を超えていないか確認。


Ansys Fluent

🎓

メッセージ: Divergence detected in AMG solver: pressure correction. Solution is diverging.


Fluentではsolver settingsでUnder-Relaxation Factor(URF)を下げる。圧力のURFを0.3→0.1、運動量のURFを0.7→0.3に下げるのが初手。Coupled solverなら CFL numberを5→1に下げる。


STAR-CCM+

🎓

STAR-CCM+ではResidual Monitorが指数関数的に増大する場合は発散。URFの低減やメッシュ改善が必要。Polyhedral meshはtetrahedral meshより安定する。


🧑‍🎓

メッシュの品質がCFDでは特に重要なんですね。


🎓

CFDでは非直交性(non-orthogonality)、スキューネス(skewness)、アスペクト比が特に重要だ。OpenFOAMのcheckMeshでは、非直交性 > 65度、スキューネス > 4.0の要素があると警告が出る。

ソルバーエラーの原因特定に費やす時間は、もっと短くできるはず。 — Project NovaSolverはエラー診断体験の改善を研究テーマの一つとしています。

Project NovaSolver — CAE実務の課題に向き合う研究開発

「CFD解析の発散をもっと効率的に解析できないか?」——私たちは実務者の声に耳を傾け、既存ワークフローの改善を目指す次世代CAEプロジェクトに取り組んでいます。具体的な機能はまだ公開前ですが、開発の進捗をお届けします。

進捗通知を受け取る →