はじめに
OpneFOAM の interFoam ソルバーをベースとした派生ツールの ihFoam$^1$ は波の境界条件および多孔質体ソルバーを含んでいる。ベースである OpenFOAM ではレイノルズ平均ナビエ・ストークス方程式 (RANS) を解くのに対し、ihFoam では体積平均 RANS (VARANS) を解く。ihFoam は変遷を経て、現在は olaFlow という名前のプロジェクトになっている。
最初に interFoam と olaFlow の基礎方程式の比較を行う。つづいて olaFlow のインストールを行い、最後に、olaFlow に付属しているチュートリアルケースの動作確認を行う。チュートリアルケースは、ダムブレイク (CR35_bambreak) を対象とする。
1. 基礎方程式
1.1 OpenFOAM (interFoam) のRANS方程式
1.1.1 連続の式
\nabla \cdot {\bf{U}} = 0\tag{1}
ここで、${\bf{U}}$ は流速を表す。
1.1.2 運動方程式
\frac{\partial (\rho {\bf{U}})}{\partial t} + \nabla \cdot (\rho {\bf{U U}}) = - \nabla p + \nabla \cdot (\mu \nabla {\bf{U}}) + \nabla \cdot \biggl[\mu \Bigl \{(\nabla {\bf{U}})^T - \frac{2}{3} (\nabla \cdot {\bf{U}}) I \Bigr\} \biggr] + \rho {\bf{g}} + {\bf{f}}_{\sigma}\tag{2}
ここで、$\rho$ は流体の加重平均密度、${\bf{g}}$ は重力加速度、$p$ は圧力、${\bf{f}}_{\sigma}$ は表面張力を表す。(2) 式は KEYSIGHT版 (ESI版) v2406 など最近の式であるが、古いバージョンでは次式のように定式化されていた。$^2$
\frac{\partial (\rho {\bf{U}})}{\partial t} + \nabla \cdot (\rho {\bf{U U}}) = - \nabla p + \nabla \cdot (\mu \nabla {\bf{U}}) + (\nabla {\bf{U}}) \cdot (\nabla \mu) + \rho {\bf{g}} + {\bf{f}}_{\sigma}\tag{3}
1.1.3 VoF方程式
\frac{\partial \alpha}{\partial t} + \nabla \cdot (\alpha {\bf{U}}) = 0\tag{4}
1.2 olaFlowのVARANS方程式
多孔質体内部での流速 (Darcy速度) ${\bf{u}}$ を、
{\bf{U}} = \frac{{\bf{u}}}{n}\tag{5}
と捉えて(1)、(2) および (4) 式の ${\bf{U}}$ を置き換えるのが VARANS の基本的な発想である。
1.2.1 連続の式
\nabla \cdot \frac{{\bf{u}}}{n} = 0\tag{6}
1.2.2 運動方程式
(1+c)\frac{\partial}{\partial t}\frac{\rho {\bf{u}}}{n} + \nabla \cdot \Bigl(\frac{{\bf{u}}}{n}\frac{{\bf{u}}}{n} \Bigr) = -\nabla p + \nabla \cdot \Bigl(\mu \nabla \frac{{\bf{u}}}{n} \Bigr) + \Bigl( \nabla \frac{{\bf{u}}}{n} \Bigr) \cdot \Bigl( \nabla \mu \Bigr) - A \frac{{\bf{u}}}{n} - B |{\bf{u}}| \frac{{\bf{u}}}{n} + \rho {\bf{g}}\tag{7}
A = a \frac{(1-n)^3}{n^2} \frac{\mu}{D_{50}^2}\tag{8}
B = b \Bigl(1 + \frac{7.5}{KC} \Bigr) \frac{1-n}{n^2} \frac{\rho}{D_{50}}\tag{9}
ここで、$n$ は空隙率 ($porosity$)、$D_{50}$ は多孔質体の中央径、$KC$ は Keulegan–Carpenter 数、$a$、$b$ は摩擦のパラメータとして調整される。経験的に、$c$ は 0.34 の定数とする。
1.2.3 VoF方程式
\frac{\partial \alpha}{\partial t} + \nabla \cdot (\alpha \frac{{\bf{u}}}{n}) = 0\tag{10}
system/fvSolutionのalpha.waterディクショナリで、"MULESCorr no;"とすることで、陽解法MULESが指定される。この場合、次の形でVoF方程式が解かれる。
n \frac{\partial \alpha}{\partial t} + \nabla \cdot (\alpha {\bf{u}}) = 0\tag{11}
"MULESCorr yes;" とすると、準陰解法 MULES が指定され、常に $n=1$ で計算される。陽解法 MULES を指定したときに、空隙率を加味した VoF 方程式を解くことが、olaFlow での改善点と思われる。逆に、準陰解法MULESを指定した場合は、ihFoam と同じ計算結果となる。よって、今回の動作確認では常に陽解法 MULES を指定する。
出典
- Higuera,P., Lara, J.L., Losada, I.J., 2013. Three-dimensional interaction of waves and porous coastal structures using OpenFOAM®. Part I: Formulation and validation
- PENGUINITISさんのホームページ