RoacheのGCI(格子収束指数)
理論:格子を変えて誤差を見積もる
概要
レビューで『格子依存性はGCIで示して』と言われました。格子を3つ作れば、あとは式に入れるだけですか?
基本はそうだけど、式に入れる前と後に確かめることがある。GCIは、格子を細かくしたときに誤差が規則正しく減っていく(漸近範囲にある)ことを前提に、リチャードソン外挿で『無限に細かい格子の値』を推定し、今の格子との差に安全係数を掛けて誤差の幅にする方法だ。だから、結果が振動したり、見かけの収束次数が理論値からかけ離れていたりすると、出てきた数字は意味を失う。格子比が一定でないときの次数の計算も含めて、手順を1つずつ見ていこう。
格子比と収束次数
$N$ は格子数、添字1が細かい格子。$\varepsilon_{21} = \phi_2 - \phi_1$、$s$ は $\varepsilon_{32}/\varepsilon_{21}$ の符号。格子比が等しければ $q = 0$ で、次数は直接求まる。等しくなければ反復で解く(Celikらの手順)。
外挿値とGCI
『格子を細かくしました』では足りない
1980年代まで、流体の論文の多くは『格子を細かくしても結果が変わらなかった』と一言書くだけで、どれだけ変わらなかったのかを示していなかった。1986年にアメリカ機械学会の流体工学の論文誌が数値の精度の報告を求める方針を掲げ、1994年にはRoacheが格子収束指数(GCI)を提案して、格子による誤差を定量的に報告する統一的な方法を示した。2008年にはCelikらがGCIの実用的な手順をまとめた。いまでは、ASME V&V 20などの検証の規格で標準的に使われている。
計算例:3つの格子の抗力係数
3次元の格子(10万・4.2万・1.8万セル)で抗力係数を求めた。格子比は r21 = 1.335、r32 = 1.326(一定でない)。スキームは2次精度。
| ケース | 細・中・粗 | 収束次数 | 外挿値 | GCI(細) | 判断 |
|---|---|---|---|---|---|
| A 単調 | 1.2231 / 1.2285 / 1.2376 | 1.91 | 1.2158 | 0.75% | 使える |
| B 振動 | 1.2231 / 1.2262 / 1.2189 | 3.01(意味なし) | — | 0.23%(過小) | 振れ幅で±0.30% |
| C 次数が大きすぎる | 1.2231 / 1.2285 / 1.2412 | 3.08 | 1.2193 | 0.38% | 次数を2に抑え0.70% |
ケースCは計算上GCIが小さいのに、わざわざ大きい値を使うんですか?
2次精度のスキームで3.08という次数が出るのは、誤差がまだ規則正しく減る範囲に入っていないか、たまたま誤差が打ち消し合っているかのどちらかだ。そのまま使うと外挿が行き過ぎて、誤差の幅を小さく見積もってしまう。だから次数を理論値の2に抑えて、保守的に0.70%とする。ケースBのように結果が上下に振れる場合は、次数の式自体が意味を持たないから、振れ幅の半分(±0.30%)を不確かさの目安にする。格子が2つしかないなら、次数を2と仮定し安全係数3を使って、例では1.69%になる。3つ目の格子を作る手間が、そのまま誤差の幅の小ささになって返ってくるわけだ。
手順のまとめ
- 格子比1.3以上で、形を保ったまま3段階の格子を作る(全方向を同じ比で細かくする)。
- 反復の収束誤差を離散化誤差より十分小さくする。
- 評価する量ごとに、差の符号(単調か振動か)と収束次数を確かめる。
- 次数が理論値から大きく外れる場合は、次数を抑えるか格子を追加する。
- 外挿値、GCI、次数を表にして報告する。
「局所の値でGCIが暴れる」
翼の全体の揚力ではGCIが0.5%ときれいに出たのに、翼の後縁近くの圧力の点の値では、次数がマイナスになったり10を超えたりして、GCIが計算できなかった——という例がある。局所の値は、格子を変えると測定点の近くのセルの配置が変わり、誤差が単調に減らないことが多い。積分した量(揚力・抗力)は誤差が平均されて振る舞いがよい。局所の値を評価するなら、格子を相似に細かくし、補間の方法をそろえ、必要なら4つ目の格子を作る。GCIは量ごとに信頼性が違うことを忘れないようにしよう。
よくある間違い
間違いと対策
| 間違い | 起きること | 対策 |
|---|---|---|
| 振動する結果にそのまま式を使う | 誤差を過小評価 | 振れ幅で評価 |
| 見かけの次数をそのまま使う | 外挿が行き過ぎる | 理論値で抑える |
| 格子比が小さい(1.1など) | 差が反復誤差に埋もれる | 1.3以上 |
| 一方向だけ細かくする | 次数が乱れる | 全方向を相似に |
| 格子2つで安全係数1.25 | 誤差の幅が小さすぎる | 安全係数3 |
関連する内容も知りたいです。
リチャードソン外挿ツールで次数と外挿を試せるよ。関連するページは3格子のGCI、リチャードソン外挿、解の検証、コードの検証、ASME V&V 20が参考になる。
関連トピック
なった
詳しく
報告