Skip to content
cfd-lab:~/zh/posts/interface-capturing● online

本文译自作者的韩语原文。 阅读原文(한국어)

NOTE #003DAY FRI CFD기법DATE 2026.03.06UPDATED 2026.10.19READ 4 min read#Multiphase#VOF#Level-Set#Diffuse-Interface

界面捕捉技术对比:VOF vs Level Set vs Diffuse Interface

PLIC 把质量关住,曲率却糙。Level Set 曲率干净,质量会漏。激波打到接触面时,非守恒的 α 输运更不容易晃。

如何处理界面

可压缩两相算例里,卡住的往往不是通量。是两种流体相接的那一面,在单元里怎么记下来。

分叉有三条。

  1. Volume of Fluid (VOF)
  2. Level Set
  3. Diffuse Interface (扩散界面)

模式开关在 VOF、Level Set、Diffuse 之间拨动,同一个圆的厚度和符号会变。

같은 원을 세 방법이 어떻게 표현하는지 비교 — VOF는 셀 평균, Level Set는 부호거리, Diffuse는 매끄러운 전이.

VOF 用单元里的一段直线把颜色关住。Level Set 的零等值线很光。Diffuse 则铺开一条占几个单元的带子。

1. Volume of Fluid (VOF)#

原理

追踪每个网格中特定流体所占的体积分数 (volume fraction) α\alpha。

∂α∂t+u⋅∇α=0\frac{\partial \alpha}{\partial t} + \mathbf{u} \cdot \nabla \alpha = 0

如果 α=1\alpha = 1,表示该网格充满流体 A; 如果 α=0\alpha = 0,表示充满流体 B;如果 0<α<10 < \alpha < 1,则界面穿过该网格。

界面重构 (Interface Reconstruction)#

VOF 的核心是根据 α\alpha 值重构网格内部的界面位置:

  • SLIC (Simple Line Interface Calculation):将界面近似为平行于坐标轴的直线。
  • PLIC (Piecewise Linear Interface Calculation):将界面近似为具有任意斜率的直线。

在 PLIC 中,界面的法向量 n\mathbf{n} 通过 α\alpha 场的梯度来估计:

n=∇α∣∇α∣\mathbf{n} = \frac{\nabla \alpha}{|\nabla \alpha|}

优缺点

  • 优点:质量严格守恒(守恒型)。
  • 缺点:界面重构复杂且计算量大。难以扩展到 3D。曲率计算不准确。

2. Level Set Method#

原理

将界面定义为符号距离函数 (signed distance function) ϕ\phi 的零等值线。

∂ϕ∂t+u⋅∇ϕ=0\frac{\partial \phi}{\partial t} + \mathbf{u} \cdot \nabla \phi = 0
  • ϕ>0\phi > 0:流体 A
  • ϕ<0\phi < 0:流体 B
  • ϕ=0\phi = 0:界面

重初始化 (Re-initialization)#

在平流 (advection) 过程中,ϕ\phi 会失去符号距离函数的性质 (∣∇ϕ∣=1|\nabla\phi| = 1)。 为了恢复这一性质,需要求解重初始化方程:

∂ϕ∂τ+sign(ϕ0)(∣∇ϕ∣−1)=0\frac{\partial \phi}{\partial \tau} + \text{sign}(\phi_0)(|\nabla\phi| - 1) = 0

其中 τ\tau 是虚拟时间 (pseudo-time)。

曲率与表面张力

Level Set 的一大优点是几何量的计算非常自然:

κ=−∇⋅(∇ϕ∣∇ϕ∣)\kappa = -\nabla \cdot \left(\frac{\nabla\phi}{|\nabla\phi|}\right)

表面张力通过 CSF (Continuum Surface Force) 模型转化为体积力:

fs=σκδ(ϕ)∇ϕ\mathbf{f}_s = \sigma \kappa \delta(\phi) \nabla\phi

优缺点

  • 优点:曲率/法线计算容易。能自然处理拓扑结构变化 (topology change)。
  • 缺点:质量不守恒。在重初始化过程中,界面位置可能会移动。

CLSVOF:两种方法的结合#

结合了 VOF 的质量守恒和 Level Set 的几何优点的 Coupled Level Set and VOF (CLSVOF) 方法被广泛应用。

3. Diffuse Interface Method (扩散界面)#

哲学的转变

前两种方法将界面视为尖锐 (sharp) 的,而扩散界面法则认为界面本质上具有有限的厚度。

在这种方法中,不需要单独的界面追踪方程,体积分数被包含在守恒律系统的一部分中。

5-equation Model (Allaire et al., 2002; Kapila et al., 2001)#

这是应用最广泛的简化模型 (reduced model):

∂(α1ρ1)∂t+∇⋅(α1ρ1u)=0\frac{\partial (\alpha_1 \rho_1)}{\partial t} + \nabla \cdot (\alpha_1 \rho_1 \mathbf{u}) = 0 ∂(α2ρ2)∂t+∇⋅(α2ρ2u)=0\frac{\partial (\alpha_2 \rho_2)}{\partial t} + \nabla \cdot (\alpha_2 \rho_2 \mathbf{u}) = 0 ∂(ρu)∂t+∇⋅(ρu⊗u+pI)=0\frac{\partial (\rho \mathbf{u})}{\partial t} + \nabla \cdot (\rho \mathbf{u} \otimes \mathbf{u} + p\mathbf{I}) = 0 ∂E∂t+∇⋅((E+p)u)=0\frac{\partial E}{\partial t} + \nabla \cdot ((E + p)\mathbf{u}) = 0 ∂α1∂t+u⋅∇α1=0\frac{\partial \alpha_1}{\partial t} + \mathbf{u} \cdot \nabla \alpha_1 = 0

最后一行才是分叉。α1\alpha_1 的输运是非守恒型 (non-conservative)。界面压力不晃,靠的是这一行。

为什么需要非守恒型?

如果以守恒型求解 α1\alpha_1:

∂α1∂t+∇⋅(α1u)=α1∇⋅u\frac{\partial \alpha_1}{\partial t} + \nabla \cdot (\alpha_1 \mathbf{u}) = \alpha_1 \nabla \cdot \mathbf{u}

右端的 α1∇⋅u\alpha_1 \nabla \cdot \mathbf{u} 在离散散度里不是 0,压力就会晃。

把非守恒输运 ∂α/∂t+u⋅∇α=0\partial\alpha/\partial t + \mathbf{u}\cdot\nabla\alpha = 0 展开,得到 ∂α/∂t+∇⋅(αu)−α∇⋅u=0\partial\alpha/\partial t + \nabla\cdot(\alpha\mathbf{u}) - \alpha\nabla\cdot\mathbf{u} = 0。最后一项挪到右边,就是上面的式子。接触面上压力和速度均匀,∇⋅u\nabla\cdot\mathbf{u} 应当是 0。离散散度给不出这个 0,右端就留下来。界面单元 α=0.5\alpha=0.5,把残余散度记成 δ\delta,右端就是 0.5δ0.5\delta。α\alpha 挪了这么多,混合密度就变了,状态方程回不到原来的压力。振荡的种子是这一项。

非守恒形式不制造这个右端。α\alpha 跟着 u\mathbf{u} 走,单元面上的通量差不直接增减 α\alpha。五方程最后一行写成非守恒,原因在这里。质量由上面两行 ∂(αkρk)/∂t+∇⋅(αkρku)=0\partial(\alpha_k\rho_k)/\partial t + \nabla\cdot(\alpha_k\rho_k\mathbf{u})=0 单独守住。α\alpha 不写成守恒型,各相质量仍然有人负责。

重初始化的数字也已经在公式里。∣∇ϕ∣=1|\nabla\phi|=1 一旦破了,sign(ϕ0)(∣∇ϕ∣−1)\mathrm{sign}(\phi_0)(|\nabla\phi|-1) 就用虚拟时间 τ\tau 去推 ϕ\phi。∣∇ϕ∣|\nabla\phi| 大于 1,这一项削 ϕ\phi;小于 1,就往反方向推。停下来的地方只有 ∣∇ϕ∣=1|\nabla\phi|=1。这个过程里零点 ϕ=0\phi=0 哪怕滑过一个单元,质量就漏了。VOF 的 α\alpha 积分没有这种滑动。反过来,n=∇α/∣∇α∣\mathbf{n}=\nabla\alpha/|\nabla\alpha| 取出的法向,只在 α\alpha 介于 0 和 1 的格子里才有斜率。曲率会骑上那些格子的噪声。κ=−∇⋅(∇ϕ/∣∇ϕ∣)\kappa=-\nabla\cdot(\nabla\phi/|\nabla\phi|) 在 ϕ\phi 是距离函数时,把同一条法向给得很光。所以 CLSVOF 把两者接上。质量用 α\alpha,曲率用 ϕ\phi。

7-equation Model (Baer-Nunziato type)#

每一相可以各自带着压力和速度。这条路 Baer–Nunziato 七方程已经写开了。

∂αkρk∂t+∇⋅(αkρkuk)=0,k=1,2\frac{\partial \alpha_k \rho_k}{\partial t} + \nabla \cdot (\alpha_k \rho_k \mathbf{u}_k) = 0, \quad k = 1, 2

通过松弛 (relaxation) 过程收敛到压力/速度平衡。 在数学上最完整,但计算成本高。

比较摘要

技术质量守恒界面清晰度拓扑变化实现复杂度压缩性适用度
VOF (PLIC)O高困难高中
Level SetX高自然中中
CLSVOFO高自然极高中
5-eq DiffuseO中自然低极好
7-eq DiffuseO中自然高极好

把α按守恒型来更新,接触面上的压力会晃

可压缩问题里,表上留下的是底下两行。五方程用 ∂(αkρk)/∂t+∇⋅(αkρku)=0\partial(\alpha_k \rho_k)/\partial t + \nabla\cdot(\alpha_k \rho_k \mathbf{u})=0 守住质量,只把 α\alpha 的输运留成非守恒。离散散度若不能把 α∇⋅u\alpha\nabla\cdot\mathbf{u} 收成 0,α=0.5\alpha=0.5 的界面单元会推动混合密度,压力跟着晃。

要不要每步把抹开的带子拉回来,是另一个决定。那一步写在用反扩散把界面重新立起来里。

如果对您有帮助,请分享。