壁関数
壁関数の理論基礎
概要
先生、壁関数ってよく「y+を30以上にしろ」って言われるんですけど、そもそもなんでそんな条件が必要なんですか?
壁面近傍の乱流境界層には、粘性底層・バッファ層・対数層という明確な構造がある。壁関数はこのうち対数層の速度分布を利用して、壁面近傍のセルを粗いまま計算するための手法だ。粘性底層を直接解かなくて済むから、メッシュ数を大幅に削減できる。
粘性底層を飛ばしちゃうってことですか?
正確には「飛ばす」のではなく、壁面近傍の速度・温度・乱流量を半経験的な関数で近似するんだ。これが壁関数の本質だよ。
壁面境界層の構造
まず境界層の構造を教えてください。
壁面に近い順に3つの領域がある。
| 領域 | $y^+$ の範囲 | 支配的な効果 | 速度分布 |
|---|---|---|---|
| 粘性底層 | $y^+ < 5$ | 分子粘性が支配 | $u^+ = y^+$(線形) |
| バッファ層 | $5 < y^+ < 30$ | 粘性と乱流が混在 | 遷移領域(明確な公式なし) |
| 対数層 | $30 < y^+ < 300$ | 乱流応力が支配 | $u^+ = \frac{1}{\kappa}\ln(y^+) + B$ |
ここで無次元量の定義は以下の通りだ。
$u_\tau$ は摩擦速度、$\tau_w$ は壁面せん断応力、$\nu$ は動粘性係数だ。
対数則(Law of the Wall)
対数則の式を詳しく教えてください。
対数層における速度分布は次の式で表される。
ここで $\kappa \approx 0.41$(von Karman定数)、$E \approx 9.793$(滑面に対する積分定数)だ。これを書き換えると、
粗い壁面の場合はどうなるんですか?
粗面では粗さ高さ $k_s$ に応じて定数が修正される。
ここで $k_s^+ = k_s u_\tau / \nu$ が粗さレイノルズ数だ。$k_s^+ < 2.25$ なら水力学的滑面、$k_s^+ > 90$ なら完全粗面に分類される。
壁関数の種類
壁関数にも種類があるんですか?
大きく分けて3種類ある。
| 壁関数の種類 | 特徴 | $y^+$ 要件 |
|---|---|---|
| Standard Wall Function | 対数則を厳密に適用。Launder-Spalding (1974) | $30 < y^+ < 300$ |
| Scalable Wall Function | $y^+ < 11.225$ の場合に粘性底層の式に切替 | 制限なし(内部で補正) |
| Enhanced Wall Treatment | Low-Re damping + 壁関数をブレンド | $y^+ \approx 1$ が理想 |
Standard Wall Functionが最も古典的で、第1セルの $y^+$ が30〜300の範囲に入っていることが前提だ。この範囲外では精度が著しく劣化する。
なるほど、だから「$y^+$ を30以上にしろ」って言われるわけですね。逆に低レイノルズ数モデルなら $y^+ \approx 1$ が必要になると。
対数則の発見——Prandtlと弟子たちの地道な実験
壁関数の根拠となる「対数法則(log-law)」の発見は、Ludwig Prandtlとその弟子たちが20世紀初頭に行った丹念な管内乱流実験に端を発します。壁面から離れた乱流領域では速度分布が対数関数に従うという事実は、当時のデータ解析から経験的に見出されたもので、理論的な導出は後付けです。この対数則が今日の壁関数の基礎として、数百万のCFD計算で毎日使われているというのは、100年前の実験データの驚くべき生命力と言えます。
壁関数の数値計算手法
壁関数の数値実装
壁関数って、ソルバーの中では具体的にどう実装されてるんですか?
運動量の壁関数
速度場に対する壁関数はどう計算するんですか?
壁隣接セル中心の速度 $U_P$ と壁面せん断応力 $\tau_w$ の関係を、対数則から逆算する。
これを $\tau_w$ について解くと、
ただし $u_\tau = \sqrt{\tau_w/\rho}$ なので、$\tau_w$ は陰的に含まれている。実装ではニュートン法や簡易代入法で反復的に解くか、等価な渦粘性を定義する方法が使われる。
k と epsilon の壁境界条件
乱流量 $k$ と $\varepsilon$ にはどんな境界条件を課すんですか?
壁隣接セルでの $k$ と $\varepsilon$ は以下のように設定される。
ここで $C_\mu = 0.09$ だ。$\varepsilon$ はセル中心の値として直接代入(固定値)する場合が多い。$k$ については輸送方程式を壁隣接セルまで解くソルバーもあれば、上式で固定するソルバーもある。
ソルバーによって扱いが違うんですね。
その通り。Ansys Fluentでは $k$ は輸送方程式を解きつつ壁面での生成項を壁関数で修正し、$\varepsilon$ は壁隣接セルで上式の値を強制する。OpenFOAMの epsilonWallFunction も同様の実装だ。
温度の壁関数
熱の壁関数もあるんですか?
もちろん。温度場に対しても対数則に類似した壁関数がある。Jayatilleke (1969) のP関数を用いた形式が標準的だ。
ここで $\text{Pr}_t \approx 0.85$(乱流プラントル数)、$\text{Pr}$ は分子プラントル数だ。空気($\text{Pr} \approx 0.71$)ではP関数の補正は小さいが、オイル($\text{Pr} > 100$)など高プラントル数流体では大きな影響が出る。
y+ の事前見積もり
メッシュを作る前に $y^+$ を見積もる方法ってありますか?
平板境界層の経験式を使って推定するのが定石だ。
つまり目標 $y^+$ と代表レイノルズ数から第1層の厚さ $y$ を逆算できるんですね。これでインフレーションレイヤーの設定ができる。
y+計算ツールの真の価値——「事前見積もり」の文化
今では「y+ calculator」と検索すれば無数のオンラインツールが出てきますが、これらが普及したのは2010年代以降です。それ以前のCFDエンジニアは境界層の解析解(Blasius式など)を手計算か表計算で使い、第1層の厚さを見積もっていました。「試しにメッシュを切って計算してからy+を確認する」ではなく「y+を計算してからメッシュを設計する」という事前見積もりの文化が定着したのは、このツールの普及と切り離せません。今も最初の解析では必ずy+の事前推算を行う習慣を持つエンジニアが、結果に困ることは少ない。
壁関数の実務適用
実務での壁関数選択フロー
実際のプロジェクトで壁関数をどう選べばいいですか?
判断の基本フローはこうだ。
1. 壁面現象が結果に重要か? -- 剥離・遷移・熱伝達が主題なら壁関数ではなくLow-Re解析($y^+ \approx 1$)を選ぶ
2. 計算コストの制約は? -- 数千万セル超の産業問題では壁関数が現実的
3. レイノルズ数は? -- $Re > 10^6$ の高Re流れでは壁関数が安定しやすい
メッシュ設計の実務指針
壁関数を使うとき、メッシュで気をつけるポイントは?
最重要は第1層セルの $y^+$ を対数層に収めることだ。
| 壁関数タイプ | 目標 $y^+$ | 第1層の成長率 | 境界層内の推奨層数 |
|---|---|---|---|
| Standard WF | 30〜100 | 1.2〜1.3 | 8〜15層 |
| Scalable WF | 30〜300(自動補正) | 1.2〜1.3 | 8〜15層 |
| Enhanced WT | 1〜5 | 1.1〜1.2 | 15〜25層 |
実務上よくある失敗は、$y^+$ がバッファ層(5〜30)に落ちるケースだ。Standard Wall Functionはこの領域の速度分布を正しく表現できないため、壁面摩擦係数や熱伝達係数が大きく誤る。
メッシュ生成後に $y^+$ を確認する方法は?
各ソルバーで壁面 $y^+$ のコンター図を出力できる。
- Fluent: Report > Surface Integrals > Wall Yplus、またはコンター表示
- STAR-CCM+: Wall Y+ フィールド関数
- OpenFOAM:
yPlusユーティリティを実行
壁関数が破綻するケース
壁関数が使えない場面ってどういうときですか?
以下のケースでは壁関数の前提(定常・平衡境界層・対数層の成立)が崩れる。
| ケース | 理由 | 推奨アプローチ |
|---|---|---|
| 大規模剥離(鈍頭物体後方) | 対数層が存在しない | Low-Re モデルまたはLES |
| 強い圧力勾配(ディフューザ) | 対数則からのずれが大きい | Non-equilibrium WF または Enhanced WT |
| 遷移流(翼型の層流領域) | 層流仮定と矛盾 | 遷移モデル ($\gamma$-$Re_\theta$) |
| 浮力駆動流(自然対流) | 速度分布が対数則と異なる | Low-Re モデル |
| 高マッハ数圧縮性流 | 圧縮性効果で壁面法則が変化 | 圧縮性壁関数 |
産業用途の実績ベースだと、どの壁関数が多いですか?
自動車や建築物の外部空力ではScalable Wall Functionが多い。ターボ機械ではSST k-omegaのAutomatic Wall Treatmentが事実上の標準だ。これはSST k-omegaモデルの内部で $y^+$ に応じて壁関数と低Re解析を自動切替するもので、メッシュ品質にロバストな点が高く評価されている。
熱流束計算での壁関数——温度と速度で別のy+が必要な理由
熱伝達を伴う解析では、速度場と温度場で壁関数を別々に適用します。速度の対数則は乱流プラントル数が0.7〜0.9の流体では比較的ロバストですが、液体金属(プラントル数<<1)や高粘度流体では温度の対数則が成立しない場合があります。ある電子機器冷却のCFD解析で、速度のy+は35と良好なのに熱流束が実験値の2倍になった原因を調べると、水のプラントル数が低い領域での熱壁関数の不適用が原因だったという例があります。「熱が絡むと壁関数はより注意が必要」は実務の重要な経験則です。
壁関数のソフトウェア比較
ソルバー別の壁関数実装
壁関数の実装って、ソルバーごとに結構違うんですか?
考え方は同じだが、具体的な実装名や自動切替ロジックに差がある。比較してみよう。
| ソルバー | Standard WF | Scalable / 自動切替 | Low-Re / Enhanced |
|---|---|---|---|
| Ansys Fluent | Standard Wall Functions | Scalable Wall Functions | Enhanced Wall Treatment |
| Ansys CFX | -- | Automatic Wall Treatment(標準) | -- |
| STAR-CCM+ | Standard Wall Function | All y+ Wall Treatment | Low y+ Wall Treatment |
| OpenFOAM | nutUWallFunction + kqRWallFunction | nutUSpaldingWallFunction | nutLowReWallFunction |
CFXには Standard がないんですか?
CFXのAutomatic Wall TreatmentはSST k-omegaモデルと一体設計されていて、$y^+$ に応じて粘性底層解析と対数則を自動でブレンドする。だからStandardを別途選ぶ必要がない。これがCFXの大きな特徴だ。
OpenFOAMの壁関数境界条件
OpenFOAMでの設定方法を教えてください。
代表的な壁関数BCの組み合わせを示す。
| 変数 | Standard WF | Spalding WF(全 $y^+$ 対応) |
|---|---|---|
nut | nutUWallFunction | nutUSpaldingWallFunction |
k | kqRWallFunction | kqRWallFunction |
epsilon | epsilonWallFunction | epsilonWallFunction |
omega | omegaWallFunction | omegaWallFunction |
Spalding壁関数は Spalding (1961) の式 $y^+ = u^+ + e^{-\kappa B}\left[e^{\kappa u^+} - 1 - \kappa u^+ - \frac{(\kappa u^+)^2}{2} - \frac{(\kappa u^+)^3}{6}\right]$ を用いて、全 $y^+$ 範囲をカバーする。$y^+ < 5$ の粘性底層でも $y^+ > 30$ の対数層でも連続的に接続されるため、メッシュ品質にロバストだ。
ソルバー選定の指針
壁関数の観点でソルバーを選ぶなら、どう考えればいいですか?
判断基準をまとめよう。
| 判断基準 | Fluent | CFX | STAR-CCM+ | OpenFOAM |
|---|---|---|---|---|
| 壁関数の選択肢 | 多い(3種+非平衡WF) | 少ない(自動のみ) | 3種(Low/High/All y+) | 多い(カスタマイズ容易) |
| 自動 $y^+$ 対応 | Enhanced WTで対応 | 標準で対応 | All y+ で対応 | Spalding WFで対応 |
| 粗面モデル | Cebeci-Chang式対応 | Sand-grain対応 | Sand-grain対応 | nutURoughWallFunction |
| 温度壁関数 | Jayatilleke P関数 | 自動 | 3種 | alphatWallFunction系 |
実務ではどれを推奨しますか?
メッシュ品質のばらつきが大きい産業問題では、All $y^+$ 対応の壁関数を使うのが安全だ。Fluentなら Enhanced Wall Treatment、STAR-CCM+ なら All y+ Wall Treatment、OpenFOAMなら nutUSpaldingWallFunction だ。CFXはデフォルトで自動切替なので特に意識する必要がない。
OpenFOAMの壁関数メニュー——選択肢が多すぎる問題
OpenFOAMのnutWallFunction辞書には、kqRWallFunction、nutKWallFunction、nutUSpaldingWallFunctionなど多数の選択肢が存在します。初心者が「どれを選べばいい?」と迷うのは当然で、OpenFOAMユーザーフォーラムでは毎月のように同じ質問が上がります。答えは「使う乱流モデルとy+範囲の組み合わせで決まる」ですが、Spalding則を使うnutUSpaldingWallFunctionはy+の広い範囲に対応しており、迷ったときの無難な出発点として多くのユーザーが選んでいます。
壁関数の先端研究
非平衡壁関数
圧力勾配がある流れでは標準壁関数が使えないって話でしたけど、代替手段はあるんですか?
Kim-Choudhury (1995) やCraft et al. (2002) が提案した非平衡壁関数がある。壁隣接セル内で圧力勾配や対流の効果を考慮した速度分布を解析的に積分する手法だ。
Fluent の Non-Equilibrium Wall Function はこの考え方に基づいている。壁隣接セルの $k$ に関する予算式を考慮し、圧力勾配の影響を以下のように取り込む。
ここで $g(y^+)$ は圧力勾配の効果を表す補正関数だ。
Adaptive Wall Function
最近のトレンドはありますか?
Adaptive Wall Function(Popovac-Hanjalic, 2007)が注目されている。これは壁隣接セル内で1次元の簡易RANS方程式を解いて、壁面フラックスを高精度に推定する手法だ。
壁隣接セル内に仮想的なサブグリッドを導入し、セル内の速度分布 $U(y)$ を以下の方程式で解く。
この方法なら、対数則が成立しない領域でも正確な壁面せん断応力が得られる。OpenFOAMではカスタム実装が可能で、研究用途で使われている。
LES/DES向け壁モデル(WMLES)
LESでも壁関数的なアプローチがあるんですか?
ある。Wall-Modeled LES(WMLES)だ。LESでは壁面近傍の渦スケールが非常に小さく、直接解像するとメッシュ数が $Re^{13/7}$ に比例して爆発する。そこで壁面近傍だけRANS的な壁モデルを適用し、外層はLESで解く。
代表的なWMLES壁モデルとして、
- Equilibrium stress model: 対数則ベース。最も簡単
- ODE equilibrium model: 壁面近傍でTBL方程式を解く
- Integral wall model (Kawai-Larsson, 2012): 壁面近傍の運動量方程式を積分
WMLESはどのソルバーで使えますか?
機械学習による壁モデル
AIで壁関数を改良する研究もあるんですか?
DNSデータを教師データとして、ニューラルネットワークで壁面フラックスを予測する研究が盛んだ。Yang et al. (2019) やLozano-Duran et al. (2020) の研究では、圧力勾配や曲率の効果を含む壁モデルをMLで構築し、従来の対数則ベースのモデルより高精度な結果を報告している。
壁関数の世界もどんどん進化してるんですね。対数則が万能じゃないことを認識しつつ、場面に応じて最適な壁モデルを選ぶのが大事だと分かりました。
All y+ 壁関数の登場——「y+を気にしなくてよい」時代の幕開け
STAR-CCM+が導入した「All y+ Wall Treatment」(後にANSYS CFXも同様のAutomatic Wall Treatmentを採用)は、y+=1でも300でも自動的に適切な壁処理を選択するという画期的な機能です。低y+では低Reynolds数モデル的な扱いに、高y+では対数則壁関数的な扱いに内部で切り替わります。「y+の管理から解放される」という設計者への恩恵は大きく、メッシュ品質管理の一項目を省けるという生産性向上に直結しました。ただし「y+が何でもいい」ではなく「All y+の信頼範囲を理解して使う」のが正しいスタンスです。
壁関数のトラブル対応
よくあるトラブルと対策
壁関数がらみでよくあるトラブルって何ですか?
現場で最も多い問題をまとめよう。
1. y+ がバッファ層に落ちる
症状: 壁面 $y^+$ が5〜30の範囲になっている
原因: メッシュの第1層が薄すぎる(壁関数用なのにLow-Re用の厚さにしてしまった)
対策:
- 第1層厚さを増やして $y^+ > 30$ にする
- あるいは逆に $y^+ < 5$ にしてEnhanced Wall Treatment に切り替える
- Scalable Wall Function(Fluent)やAll y+ Treatment(STAR-CCM+)を使えば、$y^+$ がバッファ層でもある程度補正される
2. 壁面摩擦係数が実験値と合わない
$C_f$ が実験と20%以上ずれることがあるんですが。
考えられる原因:
- $y^+$ が対数層の範囲外
- 強い逆圧力勾配で対数則が崩れている
- 粗面モデルの粗さパラメータ $k_s$ が不適切
- メッシュが壁に沿って粗すぎ(流れ方向の解像度不足)
対策:
- $y^+$ のコンター図を確認し、全壁面で30〜100に収まっているか検証
- 圧力勾配が強い領域ではNon-Equilibrium WFを検討
- 実験の粗さデータを $k_s$ に正しく変換する(等価砂粒粗さ)
3. 壁面熱伝達係数が過大/過小
Nu数が実験の半分くらいしか出ないことがあるんですけど。
温度の壁関数は速度の壁関数以上にメッシュ感度が高い。
原因: 高Pr数流体(オイル等)で $y^+$ が大きすぎると、温度境界層(速度境界層より薄い)が第1セル内に完全に埋もれてしまう
対策:
- Pr > 1 の流体では $y^+$ を小さめに設定する(目安: $y^+ < 50 / \text{Pr}^{0.5}$)
- Enhanced Wall Treatmentに切り替える
- STAR-CCM+ではTwo-Layer All y+ Wall Treatment が有効
4. 局所的な逆流で発散する
症状: 壁隣接セルに逆流があり、壁関数の計算が不安定化
対策:
- 剥離領域の $y^+$ を確認。剥離点近傍では対数則が成立しないため壁関数が適さない
- Enhanced WTやAll y+ Treatmentに変更
- Under-relaxation factor を下げる(Fluentでは Momentum を 0.5 → 0.3)
デバッグの手順
壁関数の問題を効率よく診断する手順を教えてください。
1. まず壁面 $y^+$ のコンター図を出す。全壁面が適切な範囲にあるか確認
2. 壁面 $C_f$ 分布を理論値や実験と比較。ずれが大きい箇所を特定
3. 疑わしい壁面近傍の速度プロファイルを $u^+$ vs $y^+$ でプロットし、対数則と比較
4. メッシュ感度チェック: 第1層を1/2と2倍にして結果の変化を確認
$u^+$ vs $y^+$ のプロットって、ソルバーの標準機能で出せますか?
Fluentでは壁面に垂直なラインプローブで $U$ と $y$ を取得し、$u_\tau$(壁面摩擦速度)で無次元化する。ParaViewでも同様に計算可能だ。対数則 $u^+ = 2.44 \ln(y^+) + 5.5$ と比較して、解が対数層を正しく再現しているかが一目瞭然になる。
y+=11.25という「魔法の数字」が生む悲劇
壁関数の適用限界として有名な「y+=11.25」は、粘性底層と対数層の交差点に対応する値です。この値付近のメッシュは「粘性底層を解像するには粗すぎ、対数層に合わせるには細かすぎ」という最悪のゾーンに入ります。大型モデルを一括でメッシュ生成すると、一部の局所的な高速域でy+がちょうどこの値に入ってしまうことがあり、その部分だけ壁面せん断応力がおかしな値になります。「圧力損失が特定の流量条件だけ大きくズレる」という症状はy+=11付近の壁面セルが原因である場合があり、y+コンターの確認が重要です。
関連トピック
なった
詳しく
報告