この記事は著者が韓国語で書いた原文の翻訳です。 原文(한국어)を読む
水滴はなぜ丸く、コップの縁で水はなぜ盛り上がるのか — 表面張力と接触角
壁法線に接触角を入れても、曲率が粗いと静止した液滴が格子の上でひとりでに流れます。
1881年、Agnes Pockelsは台所の流しで、ボタンと糸とブリキのたらいを使って水の表面張力を測りました。大学に行けなかった彼女は、皿洗いをしながら水面に浮かぶ油膜の動きを観察し、自作の装置で面積と張力の関係を測定しました。この記事では、その台所実験が扱った物理 — 表面張力と接触角 — をたどり、CFDがこの力を格子上でどう再現するか(CSFモデル)まで進みます。最後には毛管上昇を実際の数値で確かめます。
接触角スライダーを 30 度と 120 度の間で動かすと、同じ体積の液滴が床に広がるか、球のように立ちます。
を30度より下げると液滴が平たく広がり、120度より上げるとほぼ球のように盛り上がります。接触線で黄色い弧が指す角こそ Young の釣り合いです。
表面張力は分子が表面で損をするエネルギー
液体の内部にある分子は、四方を隣の分子に囲まれています。表面の分子は片側が空いています。その分だけ結合エネルギーが足りません。
自然はこの損を減らすために表面積を最小にします。だから無重力の水滴は、同じ体積で表面積が最小の形、すなわち球になります。
表面張力 (単位長さあたりの力、N/m)は、この「表面を広げるのに要するエネルギー」を表します。水–空気界面は常温で約 N/m です。
表面張力が支配する世界は無次元数で区別します。Weber数(慣性/表面張力) が小さければ、液滴は壊れません。Bond数(重力/表面張力) が小さければ、液滴は重力に押されず丸いままです。毛管ではこの二つの数がどちらも小さくなります。
Young–Laplace — 曲がった面は内側を押す#
面が曲がると、表面張力が内向きの合力を生みます。その結果、界面をまたいで圧力が跳びます。
ここで は内側が大きい圧力差、 は二つの主曲率半径です。球形の液滴なら なので 。
要点は、半径が小さいほど内部圧力が大きいことです。5 µm の霧の粒の内部は、外より約 29 kPa 高くなります。小さな泡が大きな泡に吸収される理由です。
接触角 — 三つの張力の綱引き
液滴が固体の上に座ると、三つの界面が一本の線で出会います。固体–気体()、固体–液体()、液体–気体()。これらが水平方向に力の釣り合いをとる角度が接触角 です。
Youngの式です。整理すると 。
なら液体が固体を好んで広がります(濡れ、親水性)。 なら液滴が丸く盛り上がります(撥水、疎水性)。蓮の葉の上の水滴は が150度を超えます。
CSF — 面の力を格子の体積力に変える#
問題はCFDです。表面張力は厚さのない面に働く力です。しかし格子セルは体積を持ちます。面の上の力をどうやってセルに入れるのでしょうか。
BrackbillのCSF(Continuum Surface Force)モデルは、面の力を界面近傍に広がった体積力に変えます。
は界面曲率、 は界面法線、 は界面でのみ1に近い表面デルタ関数です。法線と曲率は相(phase)指示関数 (例えばVOFの体積分率)から得ます。
曲率計算がこのモデルの精度を左右します。 をそのまま使うと曲率に雑音が入り、寄生電流が生じます。そこで距離重み付き補間や最小二乗平面フィットで法線を滑らかにしてから曲率を求めます。
壁接着で接触角を強制する
壁に触れる界面はもう一つの条件を受けます。壁での接触角が、指定した にならなければなりません。
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管半径と接触角を変えると、水柱は出力の 127.1 mm、25.4 mm、12.7 mm を式どおりにたどります。
接触角を90度より上げると が負になり、液面はむしろ下がります。水銀がガラス管で押し下げられる(凸メニスカス)、まさにその動きです。
半径が10分の1になると、圧力跳びも上昇高さも10倍になります。植物が毛管と蒸散で数十メートルの高さまで水を引き上げる仕組みの一片です。
出力の 3 行は、コードの 0.072 N/m を に入れた値です。 5 µm は 28800 Pa、50 µm は 2880 Pa、500 µm は 288 Pa です。 半径が 10 倍、100 倍になると、圧力跳びは 10 分の 1、100 分の 1 になります。 28800 を 288 で割ると 100 で、500 µm を 5 µm で割った値も 100 です。 本文の約 29 kPa は、28800 Pa を丸めた言い方です。
Jurin の高さも同じ定数です。30 度で 0.1 mm なら 127.1 mm、0.5 mm なら 25.4 mm、1.0 mm なら 12.7 mm です。 127.1 を 5 で割ると 25.42 なので、25.4 は小数 1 桁への丸めです。 127.1 を 10 で割ると 12.71 で、12.7 と合います。 蓮の 150 度はコサインの符号が逆になるだけで、同じ 0.1 mm の管では下向きの 127.1 mm です。 に管半径を入れると、0.1 mm は約 0.00136、1 mm は約 0.136 です。 どちらも 1 より小さいです。この 3 本では、高さを決めるのは表面張力です。
平衡高さだけなら CSF は入れない#
管半径と接触角があれば Jurin で足ります。0.1 mm、30 度、127.1 mm。 この数字に格子上の曲率は要りません。平衡高さだけを問うとき、CSF は雑音を足すだけです。
液滴が壁で広がり、合体すると計算が変わります。壁接着は法線を指定角へ傾けるだけで、曲率が粗いと静止した液滴も流れます。 そのときの律速は接触角スライダーではなく、表面張力の時間刻みです。 陰的に開く時間刻みの窓が次の場所です。
関連記事
役に立ったらシェアしてください。