衝撃波管問題(Riemannソルバー) — よくある問題と対策

カテゴリ: 流体解析(CFD) | 2026-02-20
shock-tube-riemann-troubleshoot
問題解決のヒント

数値振動(Gibbs現象)

🧑‍🎓

衝撃波の前後に数値的な振動が出てしまうんですが、どうすればいいですか?


🎓

不連続面近傍のオーバーシュート/アンダーシュートは高次精度スキームの宿命だ。対策の選択肢を整理しよう。


対策メリットデメリット
1次精度に落とす振動完全消滅数値拡散で解がぼやける
TVDリミッターを強める振動抑制しつつ2次精度滑らかな領域の精度が低下
WENO/MP系スキーム高次精度を維持実装が複雑、計算コスト増
人工粘性追加実装簡単粘性量の調整が経験的
🧑‍🎓

Fluentで2次精度風上差分を使っていて振動が出る場合は?


🎓

Fluentでは「Solution Methods」でSpatial DiscretizationをFirst Order Upwindに一旦落として収束させ、その解を初期値にしてSecond Orderに切り替えるという手順が有効だ。また、Gradient LimiterのMethodをStandardからMultidimensional Limiterに変更すると振動が抑制されることもある。


Carbuncle現象

🧑‍🎓

「Carbuncle現象」って何ですか?先輩が困っていたんですが...


🎓

Carbuncle現象は、強い垂直衝撃波の数値解が格子に依存した非物理的な不安定構造を示す問題だ。Roe系スキームで特に発生しやすい。衝撃波面が格子に平行に配置されたとき、衝撃波面上に不規則な凹凸が成長してしまう。


🎓

対策はいくつかある。


1. HLL系スキームへの切り替え: HLLやHLLCは接触不連続面の解像度が低い代わりにCarbuncleフリー

2. H-correction(Sanders et al., 1998): Roeスキームに横方向の数値粘性を追加

3. Rotated Roe: フラックス計算の座標系を局所的に回転させる

4. AUSM+up: 低マッハ数補正付きAUSMはCarbuncleに対してロバスト


🧑‍🎓

STAR-CCM+のデフォルトがAUSM+なのは、この問題を避けるためですか?


🎓

それも理由の一つだよ。AUSM系は衝撃波安定性に優れるから、汎用ソルバーのデフォルトには適しているんだ。


低マッハ数領域での精度劣化

🧑‍🎓

圧縮性ソルバーで低マッハ数($M < 0.3$)の流れを解くと精度が悪いと聞きましたが?


🎓

Godunov系スキームは低マッハ数で過度な数値拡散を生じる。これはフラックスの散逸項が $O(1/M)$ でスケーリングするためだ。対策として以下がある。


🎓
  • プリコンディショニング: Turkel, Choi-Merkleなどの手法で固有値を修正し、低マッハ数での数値拡散を抑制。FluentではLow Speed Preconditionerとして実装されている
  • AUSM+up: 圧力項に低マッハ数補正を追加したスキーム。全速度域で使用可能
  • 圧力ベースソルバーへの切り替え: $M < 0.3$ が支配的なら非圧縮性ソルバーの方が効率的。FluentのCoupled Pressure-Based Solverは$M < 2$程度まで対応

🧑‍🎓

全速度域で使えるソルバーがあれば理想的ですね。


🎓

All-speed schemeは活発な研究分野で、STAR-CCM+のCoupled Flowソルバーはそれに近い設計思想だよ。非圧縮極限と圧縮性を一つのフレームワークで扱える点が強みだ。

Coffee Break よもやま話

F1と空力の戦い

F1マシンは時速300kmで走ると、車重と同じくらいのダウンフォース(下向きの空力的な力)を発生します。つまり理論上、天井に貼り付けて走れる! チームは数千CPU時間のCFDシミュレーションを毎週実行し、フロントウィングの角度を0.1°単位で最適化しています。F1はCAEの技術力がそのまま順位に直結する世界です。

トラブル解決の考え方

デバッグのイメージ

CFDのデバッグは「水道管の詰まり修理」に似ている。まず「どこで詰まっているか」(どの残差が下がらないか)を特定し、次に「何が詰まっているか」(メッシュ品質境界条件乱流モデル?)を調べ、最後に「どう直すか」(メッシュ修正?緩和係数?)を判断する。

「解析が合わない」と思ったら

  1. まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
  2. 最小再現ケースを作る——衝撃波管問題(Riemannソルバー)の問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
  3. 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
  4. 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う

CFDメッシュの品質管理や乱流モデルの選定に悩む時間を、もっと創造的な設計作業に使えたら。 — Project NovaSolverはそんな実務者の声から生まれました。

CAEの未来を、実務者と共に考える

Project NovaSolverは、衝撃波管問題(Riemannソルバー)における実務課題の本質に向き合い、エンジニアリングの現場を支える道具づくりを目指す研究開発プロジェクトです。

プロジェクトの最新情報を見る →