流体力学を学ぶにあたり、最初に押さえるべきは「流体とは何か」そして「流体にはどのような性質があるか」という問いです。粘性・圧縮性・表面張力は、流体の振る舞いを決定づける最も基本的な物理量です。
本記事では、流体の定義から出発し、ニュートン流体と非ニュートン流体の分類、粘性係数、動粘性係数、圧縮性、表面張力を数式とともに解説し、最後にPythonで可視化を行います。
本記事の内容
- 流体の定義と連続体仮説
- ニュートンの粘性法則と粘性係数
- ニュートン流体と非ニュートン流体
- 圧縮性と体積弾性率
- 表面張力とラプラス圧
- Pythonでの可視化
前提知識
この記事を読む前に、以下の記事を読んでおくと理解が深まります。
流体とは
固体と流体の違い
物質は大きく 固体 と 流体 に分類されます。固体はせん断応力に対して変形した後に静止しますが、流体はせん断応力が作用する限り 連続的に変形し続ける 物質です。
より正確に表現すると、静止状態でせん断応力を支えることができない物質 が流体です。流体はさらに 液体 と 気体 に分けられます。
| 性質 | 液体 | 気体 |
|---|---|---|
| 分子間距離 | 小さい | 大きい |
| 圧縮性 | 小さい(ほぼ非圧縮) | 大きい |
| 自由表面 | 持つ | 持たない |
連続体仮説
流体は分子の集合ですが、流体力学では通常 連続体仮説(continuum hypothesis) を採用し、流体を連続的な媒質として扱います。この仮説の妥当性は クヌーセン数 $\mathrm{Kn}$ で判定します。
$$ \mathrm{Kn} = \frac{\lambda}{L} $$
ここで $\lambda$ は分子の平均自由行程、$L$ は着目する代表長さです。$\mathrm{Kn} \ll 1$(目安は $\mathrm{Kn} < 0.01$)のとき、連続体仮説が成立します。
粘性(Viscosity)
ニュートンの粘性法則
2枚の平行平板間に流体が挟まれ、上板が速度 $U$ で動く状況を考えます。板間距離を $h$ とすると、十分時間が経った後に流体内には線形の速度分布が形成されます(クエット流れ)。
このとき、流体内部のせん断応力 $\tau$ は次の ニュートンの粘性法則 で表されます。
$$ \boxed{\tau = \mu \frac{du}{dy}} $$
ここで各記号の意味は以下のとおりです。
| 記号 | 意味 | SI単位 |
|---|---|---|
| $\tau$ | せん断応力 | Pa |
| $\mu$ | 粘性係数(動力学粘性率) | Pa$\cdot$s |
| $du/dy$ | 速度勾配(せん断速度) | 1/s |
動粘性係数
粘性係数 $\mu$ を密度 $\rho$ で割った量を 動粘性係数(kinematic viscosity) $\nu$ と呼びます。
$$ \nu = \frac{\mu}{\rho} $$
動粘性係数の単位は m$^2$/s です。この量はナビエ-ストークス方程式に自然に現れ、流体運動の解析で頻繁に使用されます。
代表的な流体の粘性係数を以下に示します(20$^\circ$C, 1 atm)。
| 流体 | $\mu$ [Pa$\cdot$s] | $\nu$ [m$^2$/s] |
|---|---|---|
| 水 | $1.0 \times 10^{-3}$ | $1.0 \times 10^{-6}$ |
| 空気 | $1.8 \times 10^{-5}$ | $1.5 \times 10^{-5}$ |
| グリセリン | $1.5$ | $1.2 \times 10^{-3}$ |
| 水銀 | $1.6 \times 10^{-3}$ | $1.2 \times 10^{-7}$ |
ニュートン流体と非ニュートン流体
ニュートン流体
せん断応力 $\tau$ とせん断速度 $du/dy$ が 線形関係 にある流体を ニュートン流体 と呼びます。
$$ \tau = \mu \frac{du}{dy} \quad (\mu = \text{const.}) $$
水、空気など多くの一般的な流体がニュートン流体に分類されます。
非ニュートン流体
$\tau$ と $du/dy$ の関係が非線形である流体を 非ニュートン流体 と呼びます。代表的なモデルとして べき乗則(power-law)モデル があります。
$$ \tau = K \left( \frac{du}{dy} \right)^n $$
ここで $K$ は整合性指数(consistency index)、$n$ は流動指数(flow behavior index)です。
| $n$ の値 | 分類 | 例 |
|---|---|---|
| $n = 1$ | ニュートン流体 | 水、空気 |
| $n < 1$ | 擬塑性流体(シアシニング) | 血液、ケチャップ |
| $n > 1$ | ダイラタント流体(シアシックニング) | 片栗粉水溶液 |
圧縮性と体積弾性率
体積弾性率
流体にかかる圧力が変化すると体積が変化する場合があります。この圧縮のしにくさを 体積弾性率(bulk modulus) $K_b$ で表します。
$$ K_b = -V \frac{dp}{dV} = \rho \frac{dp}{d\rho} $$
$K_b$ が大きいほど圧縮されにくい流体です。水の体積弾性率は約 $2.2 \, \mathrm{GPa}$ であり、通常の条件下では非圧縮性として扱えます。
マッハ数による圧縮性の分類
気体の流れでは、流速 $v$ と音速 $c$ の比である マッハ数 $\mathrm{Ma}$ で圧縮性の影響を判定します。
$$ \mathrm{Ma} = \frac{v}{c} $$
理想気体の音速は次式で与えられます。
$$ c = \sqrt{\gamma R_s T} $$
ここで $\gamma$ は比熱比、$R_s$ は比気体定数、$T$ は絶対温度です。
| マッハ数 | 分類 | 圧縮性の扱い |
|---|---|---|
| $\mathrm{Ma} < 0.3$ | 非圧縮性流れ | 密度変化を無視 |
| $0.3 \leq \mathrm{Ma} < 1$ | 亜音速流れ | 圧縮性の考慮が必要 |
| $\mathrm{Ma} > 1$ | 超音速流れ | 衝撃波の発生 |
表面張力
定義
液体の表面(気液界面)では、分子間力の不均衡により表面を最小化しようとする力が生じます。これが 表面張力 $\sigma$ です。単位は N/m で、単位長さあたりの力として定義されます。
| 液体(20$^\circ$C) | $\sigma$ [N/m] |
|---|---|
| 水 | 0.0728 |
| エタノール | 0.0223 |
| 水銀 | 0.465 |
ラプラス圧
曲面をもつ液滴の内外の圧力差は ラプラス圧 と呼ばれ、次式で表されます。
$$ \Delta p = \sigma \left( \frac{1}{R_1} + \frac{1}{R_2} \right) $$
ここで $R_1$, $R_2$ は曲面の2つの主曲率半径です。球形液滴($R_1 = R_2 = R$)では、
$$ \Delta p = \frac{2\sigma}{R} $$
液滴が小さいほど内部圧力が高くなることがわかります。
Pythonでの実装
ニュートン流体と非ニュートン流体のせん断特性、および表面張力に関するラプラス圧を可視化します。
import numpy as np
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 3, figsize=(18, 5))
# --- (1) ニュートン流体 vs 非ニュートン流体 ---
du_dy = np.linspace(0.1, 100, 300)
# ニュートン流体 (n=1)
mu = 0.1
tau_newton = mu * du_dy
# 擬塑性流体 (n=0.5)
K1, n1 = 0.5, 0.5
tau_pseudo = K1 * du_dy**n1
# ダイラタント流体 (n=1.5)
K2, n2 = 0.005, 1.5
tau_dilatant = K2 * du_dy**n2
axes[0].plot(du_dy, tau_newton, 'b-', lw=2, label='Newtonian ($n=1$)')
axes[0].plot(du_dy, tau_pseudo, 'r-', lw=2, label='Pseudoplastic ($n=0.5$)')
axes[0].plot(du_dy, tau_dilatant, 'g-', lw=2, label='Dilatant ($n=1.5$)')
axes[0].set_xlabel('Shear rate $du/dy$ [1/s]', fontsize=12)
axes[0].set_ylabel('Shear stress $\\tau$ [Pa]', fontsize=12)
axes[0].set_title('Newtonian vs Non-Newtonian', fontsize=13)
axes[0].legend(fontsize=10)
axes[0].grid(True, alpha=0.3)
# --- (2) 粘性係数の温度依存性 ---
T_celsius = np.linspace(0, 100, 200)
T_kelvin = T_celsius + 273.15
# 水(Vogel式)
A_w, B_w, C_w = 2.414e-5, 247.8, 140.0
mu_water = A_w * 10**(B_w / (T_kelvin - C_w))
# 空気(サザランドの式)
mu0, T0, S = 1.716e-5, 273.15, 110.4
mu_air = mu0 * (T_kelvin / T0)**1.5 * (T0 + S) / (T_kelvin + S)
ax2a = axes[1]
ax2b = ax2a.twinx()
ax2a.plot(T_celsius, mu_water * 1e3, 'b-', lw=2, label='Water [mPa·s]')
ax2b.plot(T_celsius, mu_air * 1e5, 'r--', lw=2, label='Air [$\\times 10^{-5}$ Pa·s]')
ax2a.set_xlabel('Temperature [°C]', fontsize=12)
ax2a.set_ylabel('$\\mu_{water}$ [mPa·s]', fontsize=12, color='b')
ax2b.set_ylabel('$\\mu_{air}$ [$\\times 10^{-5}$ Pa·s]', fontsize=12, color='r')
ax2a.set_title('Viscosity vs Temperature', fontsize=13)
lines1, labels1 = ax2a.get_legend_handles_labels()
lines2, labels2 = ax2b.get_legend_handles_labels()
ax2a.legend(lines1 + lines2, labels1 + labels2, fontsize=10)
ax2a.grid(True, alpha=0.3)
# --- (3) ラプラス圧 ---
R = np.linspace(1e-6, 1e-3, 300)
sigma_water = 0.0728
dP = 2 * sigma_water / R
axes[2].plot(R * 1e6, dP / 1e3, 'purple', lw=2)
axes[2].set_xlabel('Droplet radius [$\\mu$m]', fontsize=12)
axes[2].set_ylabel('$\\Delta p$ [kPa]', fontsize=12)
axes[2].set_title('Laplace Pressure (Water Droplet)', fontsize=13)
axes[2].set_xlim(0, 100)
axes[2].grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
左のグラフからニュートン流体($n=1$)の線形関係に対し、擬塑性流体($n<1$)は低いせん断速度で急速に応力が立ち上がり、ダイラタント流体($n>1$)は高いせん断速度で応力が急増することが確認できます。
中央のグラフからは、液体(水)の粘性係数が温度上昇で減少するのに対し、気体(空気)の粘性係数は増加する様子がわかります。この違いは、液体の粘性が分子間力に起因し、気体の粘性が分子の運動量輸送に起因するためです。
右のグラフからは、液滴半径が小さくなるほどラプラス圧が急激に増大する様子が確認できます。
まとめ
本記事では、流体力学の出発点となる流体の基本性質を解説しました。
- 流体の定義: 静止状態でせん断応力を支えられない物質。連続体仮説のもとで扱う
- 粘性: ニュートンの粘性法則 $\tau = \mu (du/dy)$ で記述。動粘性係数 $\nu = \mu / \rho$
- 非ニュートン流体: べき乗則 $\tau = K(du/dy)^n$ で分類。$n<1$ が擬塑性、$n>1$ がダイラタント
- 圧縮性: 体積弾性率 $K_b$ で評価。マッハ数 $\mathrm{Ma} < 0.3$ なら非圧縮性として扱える
- 表面張力: ラプラス圧 $\Delta p = 2\sigma / R$ により液滴サイズが小さいほど内圧が高い
次のステップとして、以下の記事も参考にしてください。