Skip to content
cfd-lab:~/zh/posts/compressible-multiphase-…● online

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

NOTE #001DAY WED CFD기법DATE 2026.03.04UPDATED 2026.10.19READ 3 min read#CFD#Multiphase#Compressible-Flow#Introduction

可压缩多相流CFD入门:为什么难,为什么重要

守恒量做算术平均,回不到原来的压力。这个误差会变成下一步的速度。

什么是可压缩多相流?

水箱里混进少量气泡,压力波就会变慢。水和空气、燃料液滴和高温气体、水下爆炸里的气泡,两相共存就是多相流。再加上可压缩性,各相的状态方程(EOS)就分开了。冲击波在界面上反射、透射、折射。

只按单相声速去定时间步,界面上会先出问题。把探针滑块推到气体分数 α=0.5,青色的 Wood 曲线会降到单相声速的大约百分之一。

다상 혼합물의 음속은 단상보다 훨씬 작다 — α ≈ 0.5에서 Wood 음속은 ~20 m/s까지 떨어진다. 압축성 다상 해석이 어려운 핵심 이유.

α 为 0 或 1 时,Wood 曲线和琥珀色的 frozen 直线重合。只有中间,Wood 才落到谷底。这个谷底把声学时间尺度拉长大约一百倍。

与单相可压缩流的区别

单相 Euler 方程很短。

∂U∂t+∂F∂x=0\frac{\partial \mathbf{U}}{\partial t} + \frac{\partial \mathbf{F}}{\partial x} = 0

守恒变量是 U=[ρ,ρu,E]T\mathbf{U} = [\rho, \rho u, E]^T。理想气体 p=(γ−1)ρep = (\gamma - 1)\rho e 一条就能闭合。

多相流里,界面两侧的 EOS 不同。气体取 γ=1.4\gamma = 1.4。液体用 stiffened gas。

p=(γ−1)ρe−γp∞p = (\gamma - 1)\rho e - \gamma p_\infty

γ 为 1.4 时,(γ−1) 是 0.4。内能 ρe 里只有 40% 变成压力。液体公式在同一项上再减去 γ p_∞。界面单元如果只继承一个中间的 γ,相减那一项的系数会一起晃。密度和能量看起来正常,恢复出来的压力也不是两侧的算术平均。

数值上的麻烦出在界面附近两种 EOS 混合的时候。直接平均守恒变量,会留下非物理的压力振荡。压力看起来平,残差却不肯掉下去,单相压力残差里也常见。这里的原因不是湍流常数,而是 EOS 被混在一起。

用图上的数字再读一次马赫数。α=0.5 时混合物声速是单相的百分之一。液体里马赫 0.01 的速度,按混合物来量就是马赫 1。流速没变,声速小了一百倍。用单相声速做 CFL,时间步会保守一百倍。用混合物声速做 CFL,只有界面单元的时间步突然变稀。

为什么难:三大核心难题

1. 界面处的压力振荡#

1994 年 Abgrall 指出之后,压住这个振荡就成了多相数值方法的起点。

"可压缩多相流数值方法的历史,就是与压力振荡斗争的历史。"

普通的守恒型有限体积法在界面上让 γ 取中间值,从而写出 spurious oscillation。

气体单元和液体单元可以有相同的压力,ρ 和 e 却因为 EOS 不同而不相等。把平均后的 U=[ρ,ρu,E]T\mathbf{U} = [\rho, \rho u, E]^T 代回任意一侧,p=(γ−1)ρep = (\gamma - 1)\rho e 和 p=(γ−1)ρe−γp∞p = (\gamma - 1)\rho e - \gamma p_\infty 都恢复不出原来的压力。恢复误差进入下一步的速度,速度再推动密度。振荡不会在一个时间步里结束。

2. 状态方程的多样性#

只有理想气体,水对不上。水要用 Tait EOS 或 stiffened gas EOS,高压要用 Jones-Wilkins-Lee (JWL) EOS,反应流还要把化学和 EOS 绑在一起。每种 EOS 都要推广 Riemann solver,实现会变长。

3. 界面追踪 vs 界面捕捉#

处理界面大致有两条路。

方法实现优点缺点
Sharp interfaceGhost Fluid, Front Tracking界面清晰相变难处理
Diffuse interface5 方程、6 方程模型自然处理相变界面涂抹

Sharp 把界面留成一条线。Ghost Fluid 把对面的状态外推进 Riemann 问题。Diffuse 的五方程、六方程模型输运体积分数 α,把界面铺在几个单元上。有相变时,铺开的一侧更好处理。冲击正撞界面时,清晰的一侧更不容易把压力跳跃抹平。只要 γ 仍被混合,两边都会留下振荡。

为什么重要

真正用得上的场合,是界面和冲击落在同一个单元里。

  • 水下爆炸(UNDEX): 舰艇生存性评估
  • 超音速燃烧: 冲压发动机内部燃料喷射/混合
  • 医疗领域: 冲击波碎石(lithotripsy)中的气泡行为
  • 航天推进: 低温推进剂的晃动(sloshing)

选了守恒平均,界面压力就会裂开

守恒平均写起来短。一个通量,和单相一样。这个选择在界面上立刻对不齐。γ 和 p_∞ 逐单元不同,只平均 U,恢复压力就接不上邻居。尖峰看起来像冲击波,其实不是物理波。

如果界面是真的间断,下一步要决定精度放在哪里。非结构网格上的可压缩间断伽辽金展示了单相可压缩流动怎样把跳跃放在单元面上。进入多相之前,先把单相 Riemann 问题如何恢复压力对齐,会省事很多。

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