風上差分スキーム
理論:面の値をどう作るか
概要
CFDの設定で対流項のスキームを『1次風上』『2次風上』『QUICK』から選べます。どれを選べばいいですか?
有限体積法では、セルの面を通る流束を計算するのに、面での値が必要になる。それを上流側(風上)のセルの値から作るのが風上差分だ。1次風上は上流のセルの値をそのまま使うから安定で振動しないけれど、山がどんどん平らになる。2次風上やQUICKは上流の2つ以上のセルから直線や曲線で延ばすので精度は高いけれど、急な変化の所ではみ出す。どれを選ぶかは、何を大事にするか次第だ。実際に同じ山を運ばせて比べてみよう。
面の値の作り方
流れが左から右($i$ 側が上流)の場合。1次風上(UDS)、2次風上(LUD)、QUICKの順に使う点が増え、精度が上がる。
制限関数つきのTVDスキーム
$r$ は隣り合う勾配の比で、滑らかな所では1に近く、急な変化や極値の近くでは0や負になる。制限関数 $\psi$ はそこで2次の補正を弱め、はみ出しを防ぐ。
ゴドゥノフの定理
1959年、ソ連のゴドゥノフは、振動を出さない線形のスキームは1次精度までしかない、という定理を示した。つまり、係数が固定された普通のスキームでは、高い精度と振動しないことを両立できない。この壁を越えるために1970〜80年代に考え出されたのが、解の形に応じて係数を変える『非線形』のスキームで、ヴァン・リアのMUSCLやハーテンのTVDがその代表だ。制限関数は、滑らかな所では2次精度、急な所では1次に切り替えることで、ゴドゥノフの定理をうまくかわしている。
計算例:山と四角い波を1周運ぶ
周期的な区間を100セルに分け、CFL 0.4・2段のルンゲ–クッタ法で、四角い波(高さ1)とガウス分布の山(高さ1)を1周運んだ。本来は形が変わらず元に戻るはず。
| スキーム | 四角い波の最大 | 四角い波の最小 | 山の高さ | 山の誤差(L1) |
|---|---|---|---|---|
| 1次風上 | 0.683 | 0.000 | 0.333 | 0.086 |
| 2次風上 | 1.190 | −0.215 | 0.746 | 0.064 |
| QUICK | 1.100 | −0.101 | 0.926 | 0.009 |
| TVD(minmod) | 0.964 | 0.000 | 0.613 | 0.037 |
| TVD(van Leer) | 0.999 | 0.000 | 0.750 | 0.021 |
QUICKは山をいちばんよく残すのに、四角い波では10%もはみ出すんですね。
そう、滑らかな所は精度が高いけれど、急な段差では振動が出る。濃度や温度で0より小さい値や上限を超える値が出ると、物性の計算が破綻したり、負の濃度で反応が進んだりする。2次風上は四角い波で19%もはみ出した。TVDは段差でも0〜1の範囲を守り、van Leerなら山も75%残る。1次風上は安全だけど、山が3分の1になるほど平らになってしまう。滑らかな流れの精度を重視するならQUICKや2次風上、段差や境界の鋭い量を扱うならTVD、というのが基本の使い分けだ。
選び方の目安
- 計算を安定させるための最初の数百回の反復は1次風上で始め、落ち着いたら高次に切り替える。
- 最終的な結果は2次以上(2次風上・QUICK・TVD)で出す。1次風上のままにしない。
- 濃度・体積率・乱流量など、範囲の決まった量にはTVDを使う。
- 格子を細かくして結果が変わらないことを、使うスキームで確かめる。
- 流れに沿った格子(ずれの少ない格子)ほど数値拡散は小さい。
「混ざりすぎる煙」
トンネルの換気のCFDで、煙の濃度が実験よりずっと早く薄まって広がった——という例がある。安定して計算を終わらせるために、最後まで1次風上差分のままにしていた。1次風上の数値拡散が、実際の乱流の拡散に上乗せされていたのだ。2次風上に制限関数をかけたTVDに切り替えると、煙の層がはっきり残り、実験の濃度に近づいた。安定させるための設定を、結果を出すときまで使い続けないことが大事だ。
よくある間違い
間違いと対策
| 間違い | 起きること | 対策 |
|---|---|---|
| 最後まで1次風上 | 混合・拡散の過大評価 | 2次以上に切り替え |
| 範囲のある量にQUICK | 負の濃度・体積率 | TVDを使う |
| 振動を物理と誤解 | 誤った結論 | スキームを変えて確認 |
| 制限関数を強すぎに | 山が削られる | van Leerなど中庸なもの |
| 格子の向きを無視 | 斜めの流れで拡散 | 流れに沿った格子 |
関連する内容も知りたいです。
対流拡散のシミュレーターで対流と拡散を試せるよ。関連するページは中心差分スキーム、有限体積法の基礎、CFDの時間積分、密度ベースの解法、CFDのメッシュ品質指標が参考になる。
なった
詳しく
報告