基于着色模型的LBM两相流模拟实现与解析
一、着色模型基本原理
着色模型(Color Model)通过引入颜色函数区分不同流体相,利用颜色梯度模拟界面效应,无需显式捕捉相界面。其核心思想包括:
-
颜色定义:用两种颜色(如红、蓝)表示互不相溶的两相,颜色分布函数 C(x)定义为:
![]()
其中 \(ρ1,ρ2\)为两相密度,\(C=1\)表示纯相1,\(C=−1\)表示纯相2。
-
颜色梯度作用:颜色梯度 \(∇C\)引入表面张力效应,修正流体运动方程:
\(F_{surface}=κ⋅∇C\)
\(κ\)为表面张力系数,控制界面曲率与压力差的关系(Young-Laplace定律)。
二、数学模型与离散化
1. 多松弛时间(MRT)伪势模型
采用MRT碰撞算子提升数值稳定性,平衡态分布函数为:

其中 \(c_i\)为离散速度矢量,\(ω_i\)为权重系数。
2. 颜色梯度离散化改进
传统RK模型使用各向异性颜色梯度,易产生虚假电流。改进方案:
-
各向同性离散化:采用Taylor展开优化梯度计算,减少方向性误差:
![]()
其中 \(h\)为格点间距,\(C_i\)为相邻格点颜色值。
-
重新标色(Recoloring):周期性调整颜色分布,抑制界面混合:
\(C^{new}=sign(C^{old}⋅∇C)\)
3. 多尺度分析
通过Chapman-Enskog展开恢复宏观方程:

其中 \(τ\)为粘性应力张量,\(F_{surface}\)为表面张力项。
三、数值实现步骤
1. 初始化与边界条件
- 颜色初始化:设定初始颜色分布(如方形液滴或平行层流)。
- 边界处理:
- 无滑移壁面:反弹格式 \(C_{wall}=−C_{fluid}\)。
- 周期性边界:直接复制相邻格点颜色值。
2. 时间推进算法
for each time step:
% 碰撞步骤
f_prime = f - (M^{-1} S (f - f_eq))
% 流动步骤
f = stream(f_prime)
% 重新标色
C = recolor(C)
% 表面张力修正
f = f + F_surface * dt
3. 关键参数设置
| 参数 | 典型值 | 物理意义 |
|---|---|---|
| 表面张力系数 | 10−3 | 控制界面曲率与压力差关系 |
| 颜色梯度步长 | h=1 | 离散化精度 |
| 松弛时间 | τ=0.6 | 影响粘性与稳定性 |
参考代码 LBM两相流模拟simulation,采用着色模型 www.youwenfan.com/contentcnq/52439.html
四、验证案例与结果
1. 静态液滴验证
- Young-Laplace定律:计算气泡内外压力差 \(ΔP=\frac{2σ}{R}\),误差<1%(R=50格点)。
- 接触角模拟:通过调整壁面颜色权重,实现接触角30°~150°可控。
2. 高密度比流动
- 密度比1000:改进的各向同性梯度模型下,界面厚度稳定在5~6格点,Laplace定律误差0.5%。
- 黏度比1000:采用MRT碰撞算子,雷诺数Re=100时流动稳定,虚假电流降低10倍。
3. 多孔介质渗流
- 相对渗透率曲线:模拟不同饱和度下的\(K_r\),与实验数据吻合(误差<15%)。
- 润湿性影响:接触角>90°时,非润湿相渗透率随毛细管数增加而上升。
五、应用实例
1. 微流体共挤出
- 牛顿流体共流:模拟平行平板间两相层流,界面宽度与雷诺数关系符合解析解。
- 幂律流体:非牛顿流体中,胀塑性流体(n>1)在中心区速度集中,涡旋数量增加。
2. 地质CO₂封存
- 多孔介质渗流:模拟CO₂与盐水在砂岩中的驱替过程,预测相对渗透率曲线。
- 界面追踪:颜色模型自动捕捉CO₂泡状分布,避免VOF方法的界面重构。
3. 石油开采
- 油藏驱油:模拟水驱油过程,分析润湿性反转对采收率的影响。
- 相对渗透率预测:通过饱和度-渗透率曲线优化注水方案。
六、优势与挑战
优势:
- 界面自适应:无需显式界面追踪,适合复杂几何。
- 多物理场耦合:可集成热力学、化学反应模块。
- 并行计算:天然适合GPU加速,处理大规模网格。
挑战:
- 高密度比限制:传统RK模型上限约100,需结合MRT或VOF改进。
- 计算成本:颜色梯度计算增加约30%内存与时间开销。
- 参数敏感性:表面张力系数与松弛时间需精细调参。
七、MATLAB代码框架
%% 参数设置
Lx = 100; Ly = 100; % 网格尺寸
tau = 0.6; % 松弛时间
sigma = 0.001; % 表面张力系数
rho1 = 1.0; rho2 = 1000; % 密度比1000
%% 初始化
C = zeros(Lx, Ly); % 颜色场
C(40:60, 40:60) = 1; % 初始液滴
%% 主循环
for t = 1:1000
% 碰撞与流动
f = collision(f, tau);
f = streaming(f);
% 重新标色
C = recolor(C);
% 表面张力修正
F = sigma * compute_gradient(C);
f = f + F * dt;
end
%% 可视化
imagesc(C); colormap(jet); hold on;
contour(C, [0,0], 'r', 'LineWidth', 2);
title('两相流界面演化');
八、扩展方向
- 多组分扩展:引入第三相(如固体颗粒),模拟气-液-固三相流。
- 热力学耦合:集成Cahn-Hilliard方程,模拟相变过程。
- 机器学习加速:使用神经网络预测颜色梯度修正项,减少计算量。


浙公网安备 33010602011771号