チャネル流れDNS
チャネル流れDNSの理論基礎
概要
先生、チャネル流れのDNSってCFDの世界で特別な位置づけなんですか?
乱流研究の最も基本的なベンチマークだ。Kim, Moin & Moser (1987) が $Re_\tau = 180$ のDNSを行ったのが画期的で、以来乱流モデル検証のゴールドスタンダードになっている。
$Re_\tau$ って何ですか?
摩擦Reynolds数で、壁面摩擦速度 $u_\tau$ とチャネル半幅 $\delta$ で定義される。
ここで $\tau_w$ は壁面せん断応力。$Re_\tau$ は壁乱流の内層スケールと外層スケールの比を表す無次元数だ。
壁法則
壁法則というのも関係しますか?
乱流チャネル流れの最も重要な理論的成果が壁法則だ。壁面からの距離を内層変数で無次元化する。
粘性底層($y^+ < 5$)では線形関係:
対数領域($y^+ > 30$)ではlog-law:
ここで $\kappa \approx 0.41$(von Karman定数)、$B \approx 5.2$ だ。
DNSデータがこの法則の検証に使われるわけですね。
Moser, Kim & Mansour (1999) の $Re_\tau = 590$ のDNS(通称MKMデータ)は、壁法則の普遍性を高精度で確認した重要なデータセットだ。現在では $Re_\tau = 5200$(Lee & Moser, 2015)まで達している。
主要なDNSデータベース
| 研究者 | $Re_\tau$ | 格子点数 | 年 |
|---|---|---|---|
| Kim, Moin & Moser | 180 | $192 \times 129 \times 160$ | 1987 |
| Moser, Kim & Mansour | 180, 395, 590 | 最大 $384 \times 257 \times 384$ | 1999 |
| Hoyas & Jimenez | 2003 | $6144 \times 633 \times 4608$ | 2006 |
| Lee & Moser | 5200 | $10240 \times 1536 \times 7680$ | 2015 |
$Re_\tau = 5200$ で100億格子点ですか。すさまじい計算規模ですね。
1987年、世界初の乱流DNSに「数週間」かかった話
Kim・Moin・Moserが1987年にチャネル流れのDNS(直接数値計算)を発表したとき、計算には当時の最高性能スーパーコンピュータを使って数週間かかりました。Re数はわずか180(摩擦速度基準)で、格子点数は約400万点。今なら研究室のワークステーションで数日で終わる計算です。この論文が画期的だったのは「乱流の内部構造を初めて数値的に可視化した」という点で、壁近傍のストリーク構造や縦渦が理論通りに現れた瞬間、世界中の流体研究者が興奮したといいます。その論文は現在も年間数千回引用され続けています。
チャネル流れDNSの数値計算手法
DNS手法
DNSってどういうアルゴリズムで解くんですか?
DNS(Direct Numerical Simulation)は乱流の全スケールを解像する。モデルなしでNavier-Stokes方程式を直接解く。チャネル流れDNSでは擬スペクトル法が主流だ。
擬スペクトル法
流れ方向($x$)とスパン方向($z$)は周期境界条件なのでFourier級数展開、壁直交方向($y$)はChebyshev多項式展開を使う。
非線形項(対流項)は物理空間で計算し、FFTで波数空間に変換する。これが「擬」スペクトル法と呼ばれる所以だ。
非線形項を波数空間で直接計算しないんですね。
波数空間で対流項を計算するとconvolution(畳み込み)になり計算量が $O(N^2)$ になる。物理空間で計算してFFTすれば $O(N \log N)$ で済む。ただしaliasing誤差が生じるので3/2則(de-aliasing)を適用する。
格子解像度の要件
DNSではKolmogorovスケール $\eta$ 以下の格子が必要。チャネル流れでは内層変数で表現する。
| 方向 | 推奨解像度 | 備考 |
|---|---|---|
| 流れ方向 $\Delta x^+$ | 5〜10 | 縞状構造を解像 |
| スパン方向 $\Delta z^+$ | 3〜5 | 縞状構造の幅 $\lambda_z^+ \approx 100$ |
| 壁直交 $\Delta y^+_{wall}$ | < 1 | 粘性底層を解像 |
| 壁直交 $\Delta y^+_{center}$ | 5〜10 | チャネル中心 |
時間積分
時間積分はどうするんですか?
粘性項には陰解法(Crank-Nicolson)、非線形項には陽解法(3次Adams-Bashforth or 3段Runge-Kutta)のハイブリッドが標準だ。CFL条件は陽解法部分で決まり、典型的には $\Delta t^+ \approx 0.1$〜$0.5$ だ。
統計量を得るにはどのくらい時間積分するんですか?
統計的定常に達するまでの助走時間(wash-out time)として $T u_\tau / \delta > 10$ 程度、その後サンプリングに $T u_\tau / \delta > 20$〜$50$ が必要だ。統計量の収束は高次モーメントほど遅い。
スペクトル法が「チャネルDNSの標準」になった理由
チャネル流れDNSでスペクトル法(フーリエ展開+チェビシェフ多項式)が広く使われるのは、有限差分法と比べて「同じ精度を低コストで達成できる」からです。乱流の全スケールを解像するためには非常に高い精度が必要で、有限差分法だと格子点数を極端に増やさないと追いつけません。一方でスペクトル法は滑らかな周期的流れを「数学的に最高効率」で解ける。ただし欠点もあって、複雑形状には使いにくい。だからDNSのベンチマーク計算はチャネルや管のような単純形状に集中しがちで、それが結果的にデータベースの充実につながっています。
チャネル流れDNSの実務適用
実践ガイド
DNSデータをRANSモデルの検証に使うにはどうすればいいですか?
DNS自体を行うのは大規模計算だが、公開データを活用してRANSやLESの精度を検証することが実務では重要だ。
公開DNSデータベースの活用
JHTDBってAPIでDNSデータを取得できるんですか。便利ですね。
RANSモデル検証の手順
1. DNSと同じ $Re_\tau$ でRANS計算を実施
2. 以下の量をDNSと比較:
- 平均速度プロファイル $U^+(y^+)$
- レイノルズ応力 $\overline{u'v'}^+$
- 乱流エネルギー $k^+ = \frac{1}{2}(\overline{u'^2} + \overline{v'^2} + \overline{w'^2})/u_\tau^2$
- 壁面摩擦係数 $C_f = 2(u_\tau/U_b)^2$
RANSモデルの性能比較
| モデル | $C_f$ 誤差($Re_\tau=395$) | log-law再現性 |
|---|---|---|
| $k$-$\varepsilon$ 標準 | -5% | やや不良(log層過大) |
| $k$-$\omega$ SST | -2% | 良好 |
| Spalart-Allmaras | -3% | 良好 |
| $v^2$-$f$ | -1% | 非常に良好 |
チャネル流れはシンプルなのに、モデルの違いがはっきり出るんですね。
だからこそベンチマークとして優れている。平行平板間の完全発達流れだから境界条件の不確かさがなく、モデル自体の精度を純粋に評価できる。
メッシュ設計(RANS用)
壁関数を使わない場合、壁面第一セルは $y^+ < 1$ に設定する。チャネル半幅方向に60〜80セル、成長比1.05〜1.1で等比配列するのが典型的だ。
RANSなら2Dで十分ですか?
チャネル流れのRANS検証は1次元問題($y$方向のみ変化)に帰着するから、実質1Dで解ける。OpenFOAMなら1セル厚の2Dケースで十分だ。
DNSデータが「乱流モデルの教師」になる仕組み
チャネル流れDNSの実践的な価値の一つが「乱流モデルの係数チューニングデータ」としての役割です。k-εモデルやk-ωモデルの係数(Cμ=0.09など)は、実験データとDNSデータを組み合わせて決められています。つまり「RANSで実務計算する人」も、間接的にDNSの恩恵を受けている。最近ではDNSデータを機械学習モデルの訓練データに使い、新しい乱流クロージャーを自動生成するアプローチも出てきています。DNSを「高価な研究のための計算」と思うと損で、「RANSが信頼できる根拠」として読み直すと現場での使い方が見えてきます。
チャネル流れDNSのソフトウェア比較
ツール別実装
DNSは専用コードで行うんですか? 商用ソフトでもできますか?
高Re DNSは専用擬スペクトルコードが圧倒的に効率的だが、低Re($Re_\tau \leq 180$)なら商用・OSS有限体積法ソルバーでも可能だ。
専用DNSコード
| コード | 手法 | 特徴 |
|---|---|---|
| ChannelFlow (Gibson) | 擬スペクトル | C++、オープンソース、教育向け |
| Nek5000 | スペクトル要素法 | Fortran、大規模HPC対応 |
| SIMSON (KTH) | 擬スペクトル | Fortran、遷移・乱流研究用 |
| AFiD | 有限差分2次 | Fortran、GPU対応 |
OpenFOAMでの低Re DNS
pimpleFoam(非定常、非圧縮)blockMesh で $L_x = 4\pi\delta$, $L_z = 2\pi\delta$ のドメイン。周期境界条件を流れ方向・スパン方向に設定fvOptions の meanVelocityForce で一定体積力を印加OpenFOAMだとmeanVelocityForceを使って一定の流量を維持するんですね。
物理的には圧力勾配で駆動するが、周期境界条件では圧力差を設定できないので、体積力として等価な一定圧力勾配を与えるんだ。
Ansys Fluent での設定
FluentのPeriodic条件って質量流量で駆動できるんですね。
そうだ。体積力を手動で設定する必要がなく便利だ。ただしDNSをFluentで行うのはコスト効率が悪いので、あくまで教育目的やLES検証用と考えたほうがいい。
GPUがDNSを「研究者の手の届く計算」に変えた
2010年代以降、GPUを使ったDNSコードが登場したことで、チャネル流れDNSのコストが劇的に下がりました。以前はスーパーコンピュータの利用申請が必要だったRe_τ=1000程度の計算が、現在では8枚のGPUクラスタで数日で回せます。NVIDIA A100クラスのGPUはFP64演算の面では以前の最高性能スパコンに匹敵するパワーを持ちます。オープンソースのDNSコード(Channelflowなど)も整備され、「学生が研究室のGPUサーバーでDNSデータを自前生成する」時代になっています。ツールの選び方より「どんな解析に使うか」のビジョンが重要になった典型例です。
チャネル流れDNSの先端研究
先端トピック
チャネル流れDNSの最新研究はどんな方向に進んでいますか?
主に3つの方向性がある。
高Reynolds数への挑戦
Lee & Moser (2015) の $Re_\tau = 5200$ 以降、さらに高Reを目指す研究が進んでいる。高ReではKolmogorovスケールと大規模構造のスケール比が大きくなり、格子点数が $Re_\tau^{9/4}$ に比例して増大する。
$Re_\tau$ が2倍になると格子点数は約4.8倍ですか。
そうだ。$Re_\tau = 10,000$ のDNSには約500億格子点が必要と見積もられており、エクサスケール計算機の到来で現実的になりつつある。
機械学習との融合
DNSデータを教師データとして、乱流モデルの改良にML/DLが活用されている。
- TBNN (Tensor Basis Neural Network): レイノルズ応力テンソルの非線形構成則をNNで学習(Ling, Kurzawski & Templeton, 2016)
- PINN: 物理インフォームドNNでDNSデータに適合するモデルを構築
- 超解像 (Super-Resolution): 粗いLESデータからDNS相当の場を再構成
DNSデータがAIの学習素材になっているんですね。
壁乱流の大規模構造
高Re DNSで明らかになった重要な現象として、VLSM (Very Large-Scale Motions) がある。流れ方向長さが $10\delta$〜$20\delta$ に達する超大規模渦構造で、壁面摩擦の変動に大きく寄与する。
計算ドメインの流れ方向長さが不足するとVLSMが正しく再現されない。$Re_\tau \geq 1000$ では $L_x \geq 8\pi\delta$ が推奨されている。
ドメイン長さも解像度と同じくらい重要なパラメータなんですね。
その通り。DNSの「正しさ」はドメインサイズ、解像度、サンプリング時間の三つ組で決まる。どれが欠けても信頼性が低下する。
Re=5200のDNSが到達するまでに30年かかった話
Kim・Moin・Moserの1987年論文のRe数(摩擦速度基準)はRe_τ=180でした。その後、コンピュータ性能の向上に比例してRe数が上がり続け、Lee & Moser(2015年)がRe_τ=5200のDNSを達成するまでに約30年かかっています。格子点数は約1000億点。Re数が倍になると格子点数は約8倍必要(3次元で各方向2倍)なので、これは必然的に時間がかかる。実用的な航空機や船舶のRe数は10⁷〜10⁹のオーダーなので、フルDNSはまだ夢の話です。「DNSでいつか全部解ける」は幻想で、RANSやLESが主役であり続ける理由がここにあります。
チャネル流れDNSのトラブル対応
トラブルシューティング
チャネル流れDNS(やLES検証)でよくある問題は何ですか?
典型的なトラブルを見ていこう。
統計量がDNS参照値と合わない
原因1: 解像度不足
- $\Delta x^+$, $\Delta z^+$ が大きすぎて縞状構造を解像できていない
- 確認: エネルギースペクトルを計算し、高波数側にaliasedエネルギーの蓄積がないか
原因2: サンプリング時間不足
- 乱流統計量(特に $\overline{v'^2}$, $\overline{u'v'}$)の収束が不十分
- 対策: 統計サンプリング時間を $Tu_\tau/\delta > 30$ まで延長
原因3: ドメインサイズ不足
- 流れ方向・スパン方向が短すぎて最大渦構造が切れている
- 確認: 2点相関関数がドメイン半分以内でゼロに減衰しているか
2点相関でドメインの十分性を確認できるんですね。
$Re_\tau$ が設計値と異なる
一定体積力で駆動する場合、$Re_\tau$ は入力パラメータだが、一定流量で駆動すると実現する $Re_\tau$ は事前にわからない。
- 対策: 助走計算で $\tau_w$ をモニタリングし、安定したら $Re_\tau$ を確認。必要に応じて流量を調整
LESでの壁面近傍の精度
LESでチャネル流れを計算すると壁近傍の速度分布がずれるんですが。
SGSモデルが壁近傍で過度な散逸を与えている可能性がある。対策:
- WALE or Dynamic Smagorinsky: 壁近傍で自動的にSGS粘性が減少するモデルを使う
- 格子解像度: $\Delta y^+_{wall} < 2$ を確保
- van Driest減衰: 静的Smagorinskyならvan Driest damping functionを適用
チェックリスト
| 確認項目 | 基準 |
|---|---|
| 壁面第一セル $\Delta y^+$ | < 1 (DNS), < 2 (wall-resolved LES) |
| 流れ方向解像度 $\Delta x^+$ | < 10 (DNS), < 40 (LES) |
| スパン方向解像度 $\Delta z^+$ | < 5 (DNS), < 20 (LES) |
| ドメイン $L_x/\delta$ | > $4\pi$ (低Re), > $8\pi$ (高Re) |
| ドメイン $L_z/\delta$ | > $2\pi$ |
| サンプリング時間 $Tu_\tau/\delta$ | > 20 |
数値で基準が明確なので、セルフチェックしやすいですね。
チャネル流れは境界条件がシンプルだからこそ、解像度とドメインサイズの問題が純粋に浮き彫りになる。ここで基本を押さえておけば、複雑な形状のLESでも応用が利く。
「乱流が消えて層流になった」——統計が収束しない罠
チャネルDNSでありがちなトラブルが「計算途中で乱流構造が消えて層流化してしまう」現象です。原因の多くは「初期擾乱が不十分」か「計算ドメインが小さすぎて乱流維持に必要な渦スケールが収まらない」こと。乱流は「自己維持サイクル」(Hamiltonらの理論)で持続されるので、周期長さが短すぎるとこのサイクルが成立しない。一般的に流れ方向に8π×壁間距離の長さが必要とされており、これを短くすると「一見収束したように見えて実は層流の偽物解」になります。収束判定を「速度場が変動しなくなった」でやると見逃すので、乱流統計量(u'v'相関など)の時系列で確認することが大切です。
関連トピック
なった
詳しく
報告