毛管上昇動特性とSmoothed-CSFモデル

# はじめに
OpenFOAMのソルバの一つであるinterFoamのチュートリアルケースに毛管上昇(capillary rise)がある。
Foundation版もESI版もリリースのある時点から界面の振動が止まらなくなった。
果たして、振動が止まらないのが正しいのかどうか、調査を行った。
まだ、ESI版ではv2212からsmoothingの回数を指定できるようになったので、その回数が毛管上昇に与える影響を調査した。

# 毛管上昇動特性
## Jurin's height
自由曲面の曲率を無視した重力と平衡となる毛細管での高さは次式で計算できる。

```math
h_0=
\frac{2\sigma cos \theta_0}{\rho g R}
```
ここで、

<table>
  <thead>
    <tr>
      <th>名前</th> <th>説明</th> <th>単位</th>
    </tr>
  </thead>
  <tr>
    <td> $h_0$ </td> <td>液相の平衡高さ (Jurin's height)</td> <td>$[m]$</td>
  </tr>
  <tr>
    <td> $\sigma$ </td> <td>表面張力</td> <td>$[N/m]$</td>
  </tr>
  <tr>
    <td> $\theta_0$ </td> <td>平衡接触角</td> <td>$[deg]$</td>
  </tr>
  <tr>
    <td> $\rho$ </td> <td>液相の密度</td> <td>$[kg/m^3]$</td>
  </tr>
  <tr>
    <td> $g$ </td> <td>重力加速度</td> <td>$[m/s^2]$</td>
  </tr>
  <tr>
    <td> $R$ </td> <td>毛管の半径</td> <td>$[m]$</td>
  </tr>
</table>

## 力のバランス式
液相の高さを$h=h(t)$とした場合の力のバランス式は次の通り。
```math
2 \pi R \sigma cos \theta_0 - \pi R^2 \rho g h - 8 \pi \mu h \frac{dh}{dt} = \pi R^2 \rho \frac{d}{dt}(h \frac{dh}{dt} )
```
この式の左辺は外力で、第一項が表面張力、第二項が重力、第三項が粘性力を表している。
この式を次の量で無次元化する。
```math
H=\frac{h}{h_0}
```
```math
s=\frac{t}{\tau}
```
```math
\tau = \sqrt{\frac{h_0}{g}}
```
すると、無次元化した力のバランス式は次のようになる。
```math
\frac{d}{ds}(H \frac{H}{ds}) + \Omega H \frac{dH}{ds} + H -1 = 0
```
ここで、$\Omega$ は、
```math
\Omega = \sqrt{\frac{128 \mu^2 \sigma cos \theta_0}{R^5 \rho^3 g^2}}
```
状態が定常に近いと仮定して、
```math
H(s) = 1 + \epsilon (s)
```
これを力のバランス式に代入して、微分を含む $\epsilon$ の自乗項を無視すると、
```math
\frac{d^2 \epsilon}{ds^2} + \Omega \frac{d \epsilon}{ds} + \epsilon = 0
```
この式を振動の微分方程式とみなし、$\epsilon = e^{\lambda s}$ とすると、特性方程式は、
```math
\lambda^2 + \Omega \lambda + 1 = 0
```
この方程式の解は、
```math
\lambda = \frac{-\Omega ± \sqrt{\Omega^2 - 4}}{2}
```
この解は次の3つに分類できる。
- $\Omega^2 - 4 < 0$ の場合 ($\Omega < 2$)
この解は不足減衰で、振幅が時間とともに指数関数的に小さくなりながら振動する減衰振動となる。
- $\Omega^2 - 4 = 0$ の場合 ($\Omega = 2$)
この解は臨界減衰で、振動せずに釣り合いの位置に収束する非周期的減衰を示す。
- $\Omega^2 - 4 > 0$ の場合 ($\Omega > 2$)
この解は過減衰で、振動せずに釣り合いの位置に収束する非周期的減衰を示す。

まとめると、$\Omega < 2$ の場合は水位が振動する可能性が高いことを意味している。

# OpenFOAMのチュートリアルケース(capillaryRise)
ESI版OpenFOAM v2406の設定値および解析値は次の通りである。

<table>
  <caption>表1  OpenFOAMのチュートリアルケース(capillaryRise)の設定値および解析値</caption>
  <thead>
    <tr>
      <th>物理量</th> <th>単位</th> <th>値</th> <th>備考</th>
    </tr>
  </thead>
  <tr>
    <td>密度 $\rho$ </td> <td>$[kg/m^3]$</td> <td>1000</td> <td></td>
  </tr>
  <tr>
    <td>動粘性係数 $\nu$ </td> <td>$[m^2/s]$</td> <td>1e-6</td> <td></td>
  </tr>
  <tr>
    <td>粘性係数 $\mu$ </td> <td>$[Pa s]$</td> <td>1e-3</td> <td>$\mu = \nu \rho$  OpenFOAMの設定値ではない</td>
  </tr>
  <tr>
    <td>静的接触角 $\theta_0$ </td> <td>$[deg]$</td> <td>45</td> <td></td>
  </tr>
  <tr>
    <td>毛管半径 $R$ </td> <td>$[m]$</td> <td>1e-3</td> <td>チュートリアルケース(capillaryRise)の幅に相当</td>
  </tr>
  <tr>
    <td>重力加速度 $g$ </td> <td>$[m/s^2]$</td> <td>10</td> <td>絶対値を記載</td>
  </tr>
  <tr>
    <td>表面張力 $\sigma$ </td> <td>$[N/m]$</td> <td>0.0707106</td> <td></td>
  </tr>
  <tr>
    <td>平衡水位 $h_0$ </td> <td>$[m]$</td> <td>0.01</td> <td>初期水位は8e-3$[m]$</td>
  </tr>
  <tr>
    <td>$\Omega$ </td> <td>$[-]$</td> <td>0.253</td> <td>$\Omega < 2$</td>
  </tr>
</table>

計算結果を次に示す。
![h.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784513/3096019f-1050-4f8c-4c9d-1a62cdb73c81.png)
図1  OpenFOAMのチュートリアルケース(capillaryRise)の計算結果

$\Omega$が2よりもかなり小さいためか、水位が大きく振動している。なお、チュートリアルケースの元々の計算終了時間は$0.5[s]$であったが、$2.0[s]$に延長した。

# チュートリアルケースの改善
毛管半径に該当する幅を小さくすると、$\Omega > 2$ とすることができ、水位が振動しなくなることが予想される。
設定値および解析値は次の通りである。
<table>
  <caption>表2  改善したOpenFOAMのチュートリアルケース(capillaryRise)の設定値および解析値</caption>
  <thead>
    <tr>
      <th>物理量</th> <th>単位</th> <th>値</th> <th>備考</th>
    </tr>
  </thead>
  <tr>
    <td>密度 $\rho$ </td> <td>$[kg/m^3]$</td> <td>1000</td> <td></td>
  </tr>
  <tr>
    <td>動粘性係数 $\nu$ </td> <td>$[m^2/s]$</td> <td>1e-6</td> <td></td>
  </tr>
  <tr>
    <td>粘性係数 $\mu$ </td> <td>$[Pa s]$</td> <td>1e-3</td> <td>$\mu = \nu \rho$  OpenFOAMの設定値ではない</td>
  </tr>
  <tr>
    <td>静的接触角 $\theta_0$ </td> <td>$[deg]$</td> <td>45</td> <td></td>
  </tr>
  <tr>
    <td>毛管半径 $R$ </td> <td>$[m]$</td> <td>4e-4</td> <td>1e-3$[m]$から変更</td>
  </tr>
  <tr>
    <td>重力加速度 $g$ </td> <td>$[m/s^2]$</td> <td>10</td> <td>絶対値を記載</td>
  </tr>
  <tr>
    <td>表面張力 $\sigma$ </td> <td>$[N/m]$</td> <td>0.0707106</td> <td></td>
  </tr>
  <tr>
    <td>平衡水位 $h_0$ </td> <td>$[m]$</td> <td>0.025</td> <td>初期水位を1e-2$[m]$に変更</td>
  </tr>
  <tr>
    <td>$\Omega$ </td> <td>$[-]$</td> <td>2.50</td> <td>$\Omega > 2$</td>
  </tr>
</table>

計算結果を次に示す。
![h.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784513/b3ca260a-80ae-314e-3528-c68142def796.png)
図2  改善したOpenFOAMのチュートリアルケース(capillaryRise)の計算結果

$\Omega$が2よりも大きいため、水位は振動していない。計算終了時の水位は$0.022[m]$で$h_0$に近い値となっている。

# smoothing
改善したOpenFOAMのチュートリアルケース(capillaryRise)を対象にして、smoothingを1から3回行うケースを実施した。
計算結果を次に示す。
![h_compare.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1784513/2981bf66-0ac2-d9b7-df81-4879b82a47ed.png)
図3  smoothing計算結果

nAlphaSmoothCurvatureがsmoothingの回数の設定値で、system/fvSolutionで設定する。
下表にsmoothing計算結果の誤差を示す。
smoothingの回数が1および2の場合は、誤差$E(h)$が大きく減って行くが、3になると大きな変化はない。

<table>
  <caption>表3  smoothing計算結果の誤差</caption>
  <thead>
    <tr>
      <th>nAlphaSmoothCurvature</th> <th>$h_{last}$</th> <th>$E(h)=\frac{(h_{last}-h_0)}{h_0}$</th>
    </tr>
  </thead>
  <tr>
    <td> 0 </td> <td> 0.0222 </td> <td> -0.1119 </td>
  </tr>
  <tr>
    <td> 1 </td> <td> 0.0230 </td> <td> -0.0794 </td>
  </tr>
  <tr>
    <td> 2 </td> <td> 0.0241 </td> <td> -0.0359 </td>
  </tr>
  <tr>
    <td> 3 </td> <td> 0.0242 </td> <td> -0.0306 </td>
  </tr>
</table>

# おわりに
参考文献によると、毛管上昇の振動は$\Omega$だけではなく、"contact line friction"の寄与もあるらしい。そうすると、$\Omega < 2$ ならば必ず振動するとは言い難くなる。
"contact line friction"は実際に観測しないとわからない量のようで、水の毛管上昇でのデータは見つからなかった。

# 参考文献
[1] M. Fricke, E. Ouro-Koura, S. Raju, R. von Klitzing, J. De Coninck, and
D. Bothe. An analytical study of capillary rise dynamics: Critical conditions and hidden oscillations 2023,  DOI: 10.1016/j.physd.2023.133895.