衝撃波管問題(Riemannソルバー) — Sod問題の実装と検証

カテゴリ: 流体解析(CFD) | 2026-02-01
shock-tube-riemann-practice
実践のフィールドへ

Sod問題の初期条件

🧑‍🎓

Sod問題の具体的な設定を教えてください。


🎓

Sod (1978) の標準的な初期条件は以下の通りだ。管の長さを1、ダイアフラム位置を $x = 0.5$ とする。


状態量左側 $(x < 0.5)$右側 $(x > 0.5)$
密度 $\rho$1.00.125
速度 $u$0.00.0
圧力 $p$1.00.1

比熱比 $\gamma = 1.4$(理想気体)。出力時刻は $t = 0.2$ が標準だ。


🧑‍🎓

この問題をOpenFOAMで解く場合、どう設定すればいいですか?


🎓

rhoCentralFoamを使う。0/ディレクトリの初期条件はsetFieldsユーティリティで設定するのが簡単だ。system/setFieldsDictに左右の状態を定義して実行する。メッシュはblockMeshDictで1次元に1000セル程度配置すれば十分だよ。


数値解の評価ポイント

🧑‍🎓

数値解を厳密解と比較するとき、何に注目すべきですか?


🎓

4つの観点で評価するのが標準的だ。


🎓

1. 衝撃波の解像度: 衝撃波が何セルで捕捉されているか。理想は2-3セル。5セル以上は数値拡散が過大。


2. 接触不連続面の解像度: 密度の不連続が保持されているか。数値拡散で最も影響を受けやすい。


3. 膨張波の滑らかさ: 膨張波内にオーバーシュートやアンダーシュートがないか。リミッター関数の効果がここに現れる。


4. Wall-heating問題: 衝撃波の壁面反射時に壁面近傍で非物理的な温度上昇が出る。Godunovスキームの既知問題で、Noh問題でテストできる。


他のベンチマーク問題

🧑‍🎓

Sod問題以外にもテストに使える問題はありますか?


🎓

いくつかの標準的な問題を紹介しよう。それぞれ異なる側面をテストできる。


問題名特徴テスト対象
Sod (1978)標準的な衝撃波管基本的な衝撃波・接触不連続面捕捉
Lax (1954)Sodより強い衝撃波強い衝撃波での安定性
Shu-Osher (1989)衝撃波とエントロピー波の干渉高次精度スキームの分散関係
Woodward-Colella (1984)ダブルマッハ反射2Dでの衝撃波干渉解像
Noh (1987)衝撃波の壁面反射Wall-heating問題のテスト
Einfeldt (1988)123問題膨張波の正確な再現
🧑‍🎓

Shu-Osher問題は面白そうですね。衝撃波の後ろの振動構造が解像できるかをテストするわけですか?


🎓

その通り。衝撃波がサイン波状のエントロピー変動に突入するという設定で、衝撃波後方に高周波の密度変動が生じる。1次精度や散逸の大きいスキームではこの高周波成分が消えてしまう。WENO5やMP5といった高次精度スキームの性能評価にはうってつけだよ。

Coffee Break よもやま話

レイノルズの実験(1883年)——乱流発見の瞬間

オズボーン・レイノルズは、管内の水にインクを流す実験で「層流から乱流への遷移」を発見しました。流速を上げていくと、インクの線がある瞬間にグチャグチャに乱れる。この劇的な瞬間を、レイノルズは数学的に $Re = \rho uD/\mu$ という無次元数で表現した。100年以上経った今も、CFDエンジニアが最初に確認するのはこのレイノルズ数です。

実務者のための直感的理解

この解析分野のイメージ

CFDって、要は「デジタル風洞」です。自動車メーカーが巨大な風洞実験設備に何億円もかけるところを、PCの中で再現できる。でも1つ注意——風洞実験なら「風を当てれば結果が出る」けど、CFDでは「メッシュの品質」と「乱流モデルの選択」という見えない品質要因がある。ここを手抜きすると、きれいなコンター図が出ても中身はデタラメ…なんてことになりかねません。

解析フローのたとえ

CFDの解析フローは「水族館の水槽を設計する」感覚で考えてみてください。まず水槽の形を決め(計算領域)、水の入り口と出口を設計し(境界条件)、ポンプの強さを設定する(流量条件)。魚がどう泳ぐか見たければ粒子追跡。水温が気になれば熱解析を追加。…どうですか? 意外と直感的ではありませんか?

初心者が陥りやすい落とし穴

「y+って何ですか?」——この質問が出たら要注意。壁面近くのメッシュ解像度を表すy+は、CFDの結果精度を左右する最重要パラメータの1つ。壁関数を使うなら30〜300、壁を完全に解像するなら1以下。これを確認せずに「摩擦抵抗が合わない!」と悩む人がとても多い。体温計の先端をちゃんと脇に挟まないで「熱がないのに37.5度って出た!」と慌てているようなものです。

境界条件の考え方

入口の境界条件は「蛇口をどのくらい開けるか」と同じ。ちょろちょろ出すか(低速)、全開にするか(高速)。でもCFDではもう一つ——「どのくらい暴れた水を出すか」(乱流強度)も指定する必要があります。蛇口の開け方を間違えると、下流のシンク全体の流れが変わりますよね? CFDでも入口条件のミスは下流全体に波及します。

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

Project NovaSolver — CAE実務の課題に向き合う研究開発

「衝撃波管問題(Riemannソルバー)をもっと効率的に解析できないか?」——私たちは実務者の声に耳を傾け、既存ワークフローの改善を目指す次世代CAEプロジェクトに取り組んでいます。具体的な機能はまだ公開前ですが、開発の進捗をお届けします。

進捗通知を受け取る →