水滴はなぜ丸く、コップの縁で水はなぜ盛り上がるのか — 表面張力と接触角
表面張力の物理から接触角、そしてCFDのCSFモデルまで
1881年、Agnes Pockelsは台所の流しで、ボタンと糸とブリキのたらいを使って水の表面張力を測りました。大学に行けなかった彼女は、皿洗いをしながら水面に浮かぶ油膜の動きを観察し、自作の装置で面積と張力の関係を測定しました。この記事では、その台所実験が扱った物理 — 表面張力と接触角 — をたどり、CFDがこの力を格子上でどう再現するか(CSFモデル)まで進みます。最後には毛管上昇を実際の数値で確かめます。
表面張力は分子が表面で損をするエネルギー#
液体の内部にある分子は、四方を隣の分子に囲まれています。表面の分子は片側が空いています。その分だけ結合エネルギーが足りません。
自然はこの損を減らすために表面積を最小にします。だから無重力の水滴は、同じ体積で表面積が最小の形、すなわち球になります。
表面張力 (単位長さあたりの力、N/m)は、この「表面を広げるのに要するエネルギー」を表します。水–空気界面は常温で約 N/m です。
表面張力が支配する世界は無次元数で区別します。Weber数(慣性/表面張力) が小さければ、液滴は壊れません。Bond数(重力/表面張力) が小さければ、液滴は重力に押されず丸いままです。毛管ではこの二つの数がどちらも小さくなります。
Young–Laplace — 曲がった面は内側を押す#
面が曲がると、表面張力が内向きの合力を生みます。その結果、界面をまたいで圧力が跳びます。
ここで は内側が大きい圧力差、 は二つの主曲率半径です。球形の液滴なら なので 。
要点は、半径が小さいほど内部圧力が大きいことです。5 µm の霧の粒の内部は、外より約 29 kPa 高くなります。小さな泡が大きな泡に吸収される理由です。
接触角 — 三つの張力の綱引き#
液滴が固体の上に座ると、三つの界面が一本の線で出会います。固体–気体()、固体–液体()、液体–気体()。これらが水平方向に力の釣り合いをとる角度が接触角 です。
Youngの式です。整理すると 。
なら液体が固体を好んで広がります(濡れ、親水性)。 なら液滴が丸く盛り上がります(撥水、疎水性)。蓮の葉の上の水滴は が150度を超えます。
下のシミュレーションで実際に操作してみましょう。接触角のスライダーを動かすと、同じ体積の液滴がどう広がり、どう盛り上がるかが見えます。
を30度より下げると液滴が平たく広がり、120度より上げるとほぼ球のように盛り上がります。接触線で黄色い弧が指す角こそ Young の釣り合いです。
CSF — 面の力を格子の体積力に変える#
問題はCFDです。表面張力は厚さのない面に働く力です。しかし格子セルは体積を持ちます。面の上の力をどうやってセルに入れるのでしょうか。
BrackbillのCSF(Continuum Surface Force)モデルは、面の力を界面近傍に広がった体積力に変えます。
は界面曲率、 は界面法線、 は界面でのみ1に近い表面デルタ関数です。法線と曲率は相(phase)指示関数 (例えばVOFの体積分率)から得ます。
曲率計算がこのモデルの精度を左右します。 をそのまま使うと曲率に雑音が入り、偽の流れ(parasitic current)が生じます。そこで距離重み付き補間や最小二乗平面フィットで法線を滑らかにしてから曲率を求めます。
壁接着で接触角を強制する#
壁に触れる界面はもう一つの条件を受けます。壁での接触角が、指定した にならなければなりません。
CSFはこれを、壁近傍セルの法線を強制的に傾けて実装します。壁法線 と接線 で界面法線を書き直します。
法線を傾けると曲率が変わり、その曲率が再び表面張力を生んで、液滴を指定の接触角へ引き寄せます。これが wall adhesion(壁接着)モデルです。三相が出会う線の動きまで扱うには追加のモデルが必要です。
Python — Jurinの法則を数値で確かめる#
細い管を水に浸すと、水が自分で上がってきます。毛管上昇です。平衡高さは Young–Laplace と静水圧の釣り合いから出ます。
は管の半径、 は接触角です。細い管ほど( が小さいほど)高く上がります。
import numpy as np
SIGMA = 0.072 # N/m, 水-空気 (常温)
RHO = 1000.0 # kg/m^3
G = 9.81 # m/s^2
def young_laplace_dp(sigma, R1, R2):
"""曲がった界面をまたぐ圧力跳び dp = sigma*(1/R1 + 1/R2)."""
return sigma * (1.0 / R1 + 1.0 / R2)
def jurin_capillary_rise(r, theta_deg, sigma=SIGMA, rho=RHO, g=G):
"""半径 r の毛管における平衡上昇高さ (m)."""
theta = np.radians(theta_deg)
return 2.0 * sigma * np.cos(theta) / (rho * g * r)
# 球形の水滴 (R1=R2=R): 半径が小さいほど内部圧力が高い
for R_um in (5, 50, 500):
R = R_um * 1e-6
print(f"R={R_um:4d} um -> dp = {young_laplace_dp(SIGMA, R, R):8.1f} Pa")
# Jurinの法則: 細い管ほど高く上がる
print()
for r_mm in (0.1, 0.5, 1.0):
h = jurin_capillary_rise(r_mm * 1e-3, theta_deg=30)
print(f"r={r_mm:.1f} mm -> h = {h*1000:6.1f} mm")出力:
R= 5 um -> dp = 28800.0 Pa
R= 50 um -> dp = 2880.0 Pa
R= 500 um -> dp = 288.0 Pa
r=0.1 mm -> h = 127.1 mm
r=0.5 mm -> h = 25.4 mm
r=1.0 mm -> h = 12.7 mm半径が10分の1になると、圧力跳びも上昇高さも10倍になります。植物が毛管と蒸散で数十メートルの高さまで水を引き上げる仕組みの一片です。
下のシミュレーションで実際に操作してみましょう。管の半径と接触角を変えると、水柱が平衡高さまで上がります。
接触角を90度より上げると が負になり、液面はむしろ下がります。水銀がガラス管で押し下げられる(凸メニスカス)、まさにその動きです。
この現象が教えてくれること#
表面張力は、分子が表面で損をするエネルギーが生んだ力です。だから自然は表面積を減らそうとします。
曲がった面は内側を押し(Young–Laplace)、固体と出会う角度は三つの張力の釣り合いで決まります(Young)。小さなスケールほど、この力が重力を上回ります。
CFDはこの面の力を曲率・法線に換算して体積力として入れます(CSF)。曲率をどれだけ滑らかに求めるかが、偽の流れを抑える鍵です。
役に立ったらシェアしてください。