LES WALEモデルについて

#　はじめに
かつては乱流計算といえばRAN（レイノルズ平均モデル）一択でした。ただ、近年のコンピューターの発展によってLarge Eddy Simulation(LES)も選択肢に入りつつあります。かつて数値流体力学解析を学んだときは、LESのSubgrid scaleモデルはSmagorinskyが主流だったと思います（たぶん）。現在はいろいろなモデルが使用されるようになってきています。

ここでは、OpenFOAMにも採用されているWALE (Wall Adapting Local Eddy) モデルについてまとめていきたいと思います。

なお、原著論文は[こちら](https://link.springer.com/article/10.1023/A:1009995426001)になります。詳細を知りたい方はこちらをご参照ください。
 
# LESとは？
[Kolmogorovの自己相似性理論](https://ci.nii.ac.jp/naid/10010355206)より、流れの大きな渦は形状に依存するが、小さなスケールはより普遍的であると考えられます。この特徴を利用して、大きな渦はグリッドスケール(GS)で明示的に解き、小さな渦はサブグリッドスケールモデル（SGSモデル）を使って暗黙的に解くのがLESになります。

空間平均された速度は、フィルターGを用いて

```math 
\overline{u}_i ({\bf x}) = \int G({\bf x} - {\bf \xi}) u({\bf \xi}) d {\bf \xi}
```

で表されます。ここで、

```math 
u_i = \overline{u}_i + u'_i
```

であり、$\overline{u}_i$はGS成分の速度、$u'_i$はSGS成分の速度を表しています。

非圧縮流れの空間平均化されたNavier-Stokes方程式は

```math 
\frac{\partial {\bar u_i}}{\partial t} + \frac{\partial {\overline{u_i u_j}}}{\partial x_j} = - \frac{1}{\rho} \frac{\partial {\bar p}}{\partial x_i} + \nu \frac{\partial}{\partial x_j} \left( \frac{\partial \bar u_i}{\partial x_j} + \frac{\partial \bar u_j}{\partial x_i} \right)
```
で表されます。
移流項 ${\overline{u_i u_j}}$ は[Lenonard](https://www.sciencedirect.com/science/article/abs/pii/S0065268708604641?via%3Dihub)の論文から、以下のように分割することができきます。

```math 
\tau_{ij} = {\overline{u_i u_j}} - {\bar u_i}{\bar u_j}
```

ここで、

```math 
\overline{S}_{ij} = \frac{1}{2} \left( \frac{\partial \overline{u}_i}{\partial x_j} + \frac{\partial \overline{u}_j}{\partial x_i} \right)
```

を用いると、NS方程式は次のように表されます。


```math 
\frac{\partial {\bar u_i}}{\partial t} + \frac{\partial {\bar{u_i} \bar{ u_j}}}{\partial x_j} = - \frac{1}{\rho} \frac{\partial {\bar p}}{\partial x_i} + \frac{\partial}{\partial x_i} \left( - \tau_{ij} - 2 \nu {\bar S_{ij}} \right)
```

$\tau_{ij}$ はSGSテンソルを表しています。渦粘性の仮定により、GSスケールの変形テンソル$\overline{S}_{ij}$を用いると、

```math 
\tau_{ij} - \frac{1}{3} \tau_{kk} \delta_{ij} = 2 \nu_t \overline{S}_{ij}
```

のように表されます。

$\nu_t$は渦動粘性係数になります。この $\tau_{ij}$、渦動粘性をどう記述するかが、SmagorinskyやDynamicなどのモデルの違いになってきます。ここでは、既出の通り``WALE``について解説していきます。


# WALEモデル

WALEモデルにおいて渦動粘性係数は、

```math 
\nu_t = (c_w \Delta )^2 \frac{(S_{ij}^d S_{ij}^d)^{3/2}}{(\overline{S}_{ij} \overline{S}_{ij})^{5/2} + (S_{ij}^d S_{ij}^d) ^{5/4}}
```

で表されます。ここで

```math 
S_{ij}^d = \frac{1}{2} ( \overline{g}_{ij}^2 + \overline{g}_{ji}^2 ) - \frac{1}{3} \delta_{ij} \overline{g}_{kk}^2
```

```math 
\overline{g}_{ij} = \frac{\partial \overline{u}_i}{\partial x_j}
```

であり前者は二乗速度勾配テンソル（非対角項）を表しています。
また後者は速度勾配テンソルを表しています。

このように`WALE`モデルでは、RANSでお馴染みの乱流エネルギーや消散速度を扱うこと無く、渦動粘性係数、乱流場の計算を行うことができます。


# OpenFOAMでは

前述の通り乱流エネルギー$k$、消散速度$\epsilon$などを扱いませんので、`0`ディレクトリ下には`nut`のみが必要で、`k`や`epsilon`などは必要ありません(RANSで育った身としては、最初、？？？となりました）。
したがって、LES WALEで計算するときは、

```c++:momentumTransport
simulationType LES;

LES
{
    model           WALE;

    turbulence      on;

    printCoeffs     on;

    delta           cubeRootVol;

    cubeRootVolCoeffs
    {
        deltaCoeff      1;
    }
}
```

```c++:0/nut
dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 0;

boundaryField
{
    bottomWall
    {
        type            zeroGradient;
    }
    topWall
    {
        type            zeroGradient;
    }
}
```

などの設定になろうかと思います。

#　さいごに
OpenFOAMでLES WALEで計算をしたときに、nutだけで動いて？？？となったのが、今回のまとめのきっかけになりました。原著論文に戻ったりと、知見を広げることができました。
誤り等がありましたら、そっとご指摘いただければと思います。