水滴为何是圆的,杯沿的水为何会爬升 — 表面张力与接触角
从表面张力的物理到接触角,再到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的表面delta函数。法线和曲率由相指示函数 (例如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半径缩小到十分之一,压力跳变和上升高度都增大十倍。这正是植物用毛细与蒸腾把水提升到几十米高的机理的一部分。
在下面的模拟中亲自操作一下。改变管半径和接触角,水柱会上升到平衡高度。
把接触角推到90度以上, 变为负值,液面反而下降。这正是水银在玻璃管中被压低(凸液面)的同一行为。
这个现象告诉我们什么#
表面张力是分子在表面上损失能量所产生的力。所以自然要减小表面积。
弯曲的面向内挤压(Young–Laplace),与固体相遇的角度由三种张力的平衡决定(Young)。尺度越小,这种力越压过重力。
CFD把这种面力换算成曲率与法线,作为体积力放入(CSF)。曲率算得多光滑,是抑制伪流动的关键。
如果对您有帮助,请分享。