Loading
RECOMPUTE_RESIDUAL の説明を追加する
概要
FrontISTR の !SOLVER に RECOMPUTE_RESIDUAL を追加する変更に対応する記述である。キーワードリファレンスにパラメータの説明を加え、機能リファレンスの反復法の節に、残差を b - Ax から計算しなおす理由と、その周期のトレードオフを書いた。
周期を短くしすぎると行列ベクトル積が増えるだけでなく、収束性そのものが悪化しうる点を明記した。BiCGSTAB法、収束判定値1.0e-8、2領域分割の条件で RECOMPUTE_RESIDUAL=1 を指定すると、残差がNaNとなり127反復で破綻する。同じ問題は未指定なら156反復で収束する。残差 の精度を上げようとして1を指定するのは自然な発想であるため、注意として残した。
FrontISTR側でPipeCGも同じパラメータで制御するようにしたため、対象解法の一覧にPipeCGと既定値50を加えた。周期を長くしすぎる側の実測もここで記録した。PipeCGは既定の50なら91反復で収束する問題が、再計算を行わないと86反復で不定値の判定にかかって発散する。
機能リファレンスの英語版 06_solver.en.md は本文が TBD のみのスタブであるため変更していない。
変更内容
| コミット | 要約 |
|---|---|
| 2dfc4635 solver: document RECOMPUTE_RESIDUAL | キーワードリファレンス和英にパラメータを追加し、機能リファレンスに再計算の理由と周期のトレードオフを追記 |
| 986bb5c5 solver: list PipeCG among the methods RECOMPUTE_RESIDUAL applies to | 対象解法にPipeCGと既定値50を追記 |
Edited by Kazuya Goto