Loading
熱解析テスト exR・exQ の非線形収束判定値を 1e-3 に緩める
概要
heat/exR の R362 が、hybrid の CI でまれに非線形反復の上限(20回)に達して失敗する。その応急処置として、exR と exQ の !HEAT で EPS を 1e-3 にした。原因は #922 (closed) のとおりである。既定の EPS 1e-6 は線形ソルバの打ち切り誤差と同じくらい小さいので、OpenMP で実行ごとに変わる丸め誤差によって、||ΔT|| がそこから下がらずに停滞することがある。exQ の Q362 も同じで、2プロセス×2スレッドでは20回中11回停滞した(最大18回)。
CI と同じイメージとバイナリで exR の全12ケースを解いたときの、compare_res.pl の残差の最大は次のとおり。
| EPS | 非線形反復回数 | 残差の最大 |
|---|---|---|
| 1e-6(変更前) | 12〜13(R362 は hybrid で13〜20) | 7e-11 |
| 1e-3 | 9〜10 | 3.3e-8 |
| 1e-2 | 8 | 2.3e-7 |
EPS 1e-3 では、参照解との差がしきい値 1e-4 より3桁以上小さい。exR は全ケース9〜10回、exQ は全ケース7回で止まり、serial・mpi・openmp・hybrid のどの構成でも反復回数は変わらない。R362・R352・Q362 を2プロセス×2スレッドで20回ずつ解いても同じだった。exQ の残差の最大は 1.8e-9 である。参照解は更新していない。
非線形反復の収束判定そのものは変えていないので、#922 (closed) は閉じない。
変更内容
| コミット | 要約 |
|---|---|
| 75b24acf Loosen the nonlinear tolerance of the heat exR tests | exR の12ケースで EPS を 1e-3 にする |
| 45dd1a5d Loosen the nonlinear tolerance of the heat exQ tests | exQ の12ケースで EPS を 1e-3 にする |