極超音速流れ — トラブルシューティングガイド
より充実した内容を hypersonic-flow.html でご覧いただけます。
よくあるトラブルと対処法
極超音速CFDで計算が上手くいかないとき、何が原因なんですか?
極超音速特有のトラブルパターンを整理しよう。
1. カーバンクル不安定
カーバンクルって聞いたことあります。弓状衝撃波が崩れる現象ですよね?
Roe法で鈍頭物体の計算をすると、淀み点付近の弓状衝撃波が非物理的に凸凹になる現象だ。格子の対称線上で特に発生しやすい。
対策:
- AUSM+やHLLCスキームに切り替える(Roeより耐性がある)
- Roeを使う場合はH-correction(entropy fix)を適用
- 衝撃波に直交する格子方向にわずかな人工粘性を追加
- 格子の対称線を避ける(微小な非対称性を導入)
2. 負温度・負密度の発生
温度や密度がマイナスになるって、どういう状況ですか?
強い膨張波や衝撃波干渉の近傍で保存量から原始変数への変換時に非物理的な値が出ることがある。特に化学反応込みの場合、質量分率が0未満や1超になるケースも。
対策:
- CFL数を下げる(0.1以下からスタート)
- 1次精度で初期解を作り、収束後に2次精度へ切り替え
- 質量分率のクリッピング処理を入れる( $\max(0, \min(1, Y_s))$ )
- Positivity-preserving limiterを使用
3. 壁面加熱率の格子依存性
メッシュを変えると加熱率がかなり変わるんですが…
これは極超音速CFDで最もよくある問題だ。壁面加熱率は温度勾配 $\partial T / \partial n |_{wall}$ に比例するから、壁面近傍のメッシュ解像度に強く依存する。
対策:
- 壁面法線方向に最低50-80層の格子を配置
- 第一層の高さは $y^+ < 1$(極超音速境界層は薄いので数μmオーダーになることも)
- 格子収束性を3水準以上で確認(Richardson外挿が望ましい)
- 衝撃波と壁面の間に均等に格子を分布させる
4. 化学反応の発散
化学反応を入れると計算が発散するケースはどう対処しますか?
化学反応ソース項のstiffnessが原因であることが多い。
対策:
- 流体と化学をoperator splittingで分離し、化学種にはstiff ODEソルバー(CVODE等)を使用
- Point-implicit法でソース項のヤコビアンを陰的に扱う
- まず凍結流(frozen flow)で収束させ、その後反応を徐々にオンにする
- 温度の下限値を設定(100K以下では反応速度式が破綻する場合がある)
5. 衝撃波スタンドオフ距離の不一致
衝撃波の位置が実験と合わないときは?
衝撃波スタンドオフ距離は気体モデルに敏感だ。理想気体モデルだとスタンドオフが大きすぎ、化学平衡モデルだと小さすぎることがある。非平衡モデルが正解に近い場合が多い。
チェックリスト:
- 気体モデル(理想/平衡/非平衡)は適切か
- 自由流条件(M, T, p)は正しいか
- 反応速度定数のデータソースは適切か(Park 1990 vs. Gupta 1990等)
- 格子は衝撃波を十分に解像しているか(衝撃波幅に5セル以上)
極超音速は物理モデルの選択が結果に直結するから、トラブルシューティングも物理に立ち返ることが重要なんですね。
その通り。数値手法のデバッグだけでなく、「この条件で本当に非平衡効果は重要なのか」「壁面触媒条件は妥当か」といった物理的な判断が求められる。それが極超音速CFDの難しさでもあり面白さでもある。
極超音速計算の「carbuncle現象」——衝撃波が化け物になる数値バグ
極超音速CFDで悪名高いトラブルが「carbuncle(カービアンクル)現象」です。強い弓形衝撃波(Bow shock)の前縁付近に、現実には存在しないグロテスクな数値的突起が生えてくる現象で、ロエ・スキームやGodunovスキームを使った計算でよく発生します。名前の由来は「carbuncle(腫れもの)」──見た目通りのひどいバグです。対策としてはHLLE系の適度な数値粘性を持つスキームへの切り替えや、衝撃波検出器を使った局所的なスキーム切り替えが有効です。極超音速コードを書いたり使ったりするなら、真っ先に頭に入れておくべき症状の一つです。
トラブル解決の考え方
「解析が合わない」と思ったら
- まず深呼吸——焦って設定をランダムに変えると、問題がさらに複雑になる
- 最小再現ケースを作る——極超音速流れの問題を最も単純な形で再現する。「引き算のデバッグ」が最も効率的
- 1つだけ変えて再実行——複数の変更を同時に行うと、何が効いたか分からなくなる。科学実験と同じ「対照実験」の原則
- 物理に立ち返る——計算結果が「重力に逆らって物が浮く」ような非物理的な結果なら、入力データの根本的な間違いを疑う
関連トピック
なった
詳しく
報告