ILU — CAE用語解説
ILU
先生、CFDの反復法ソルバーで「前処理にILU(0)を使用」って設定があるんですけど、ILUって何をしてるんですか?
定義
ILUの基本を教えてください。
Incomplete LU分解(不完全LU分解)の略だよ。通常のLU分解は行列Aを下三角行列Lと上三角行列Uの積に完全に分解するけど、大規模な疎行列だとフィルイン(元々ゼロだった場所に非ゼロ成分が発生すること)が膨大になってメモリが足りなくなる。ILUはフィルインを制限して近似的にLU分解するんだ。
ILU(0)の「0」は何を意味してるんですか?
フィルインレベルだよ。ILU(0)はフィルインを一切許さない、つまり元の行列Aと同じ疎パターンでLUを近似する。ILU(1)だと1段階のフィルインまで許容する。レベルを上げるほど近似精度は良くなって反復回数は減るけど、メモリと前処理の計算時間が増える。この精度とコストのトレードオフがILUのキモだね。
数値解法における役割
実務ではILUのレベルをどう選ぶんですか?
CFDの圧力方程式みたいな条件数の悪い問題ではILU(1)やILU(2)が必要になることが多い。一方、運動量方程式のように比較的おとなしい系ではILU(0)で十分な場合も多い。Fluentだとデフォルトの設定で自動選択されるけど、収束が遅いときはレベルを上げてみるといいよ。
ILU以外の前処理もあるんですか?
もちろん。ヤコビ前処理やSOR前処理はILUより軽量だけど効果が弱い。AMG(代数的マルチグリッド)は並列効率が高くて大規模問題向き。問題のサイズや特性に応じて使い分けるのが大事だよ。
関連用語
ILU周辺の関連用語を教えてください。
この5つを押さえておくと体系的に理解できるよ。
今の解析で収束が遅いケースがあるので、ILUのレベルを変えて試してみます!
いいね。残差の収束履歴をプロットしながらレベルを変えると、前処理の効果が定量的にわかるよ。
CAE用語の正確な理解は、チーム内のコミュニケーションの基盤です。 — Project NovaSolverは実務者の学習支援も視野に入れています。
CAEの未来を、実務者と共に考える
Project NovaSolverは、ILUにおける実務課題の本質に向き合い、エンジニアリングの現場を支える道具づくりを目指す研究開発プロジェクトです。
プロジェクトの最新情報を見る →関連トピック
なった
詳しく
報告