提供基于comsol中相场方法模拟多孔介质两相驱替(水气、油水等等)的算例(也可以定做水平集驱替的算例),可在此基础上学会利用comsol软件进行两相流驱替的模拟,拓展研究,具体参考算例附后。 附赠基于相场方法模拟驱替时的毛管数计算方法和饱和度计算方法

打开COMSOL界面时总会被满屏的物理场选项搞得头大?别慌,今天咱们直接上手用相场法搞个两相驱替模拟。先来点有意思的——想象把咖啡渍从桌布里挤出来的过程,这就是典型的水气驱替场景。

打开模型向导创建2D模型,物理场选"流体流动→多相流→相场",时间依赖研究必须勾选。网格建议用超细化三角形,重点区域加边界层——就像给咖啡渍边缘加特写镜头(见图1)。记得在材料属性里把两相黏度比调成3:1,表面张力系数设0.072N/m,这参数能让界面变形更明显。

提供基于comsol中相场方法模拟多孔介质两相驱替(水气、油水等等)的算例(也可以定做水平集驱替的算例),可在此基础上学会利用comsol软件进行两相流驱替的模拟,拓展研究,具体参考算例附后。 附赠基于相场方法模拟驱替时的毛管数计算方法和饱和度计算方法

核心代码藏在相场参数设置里:

phi = 2*(c-0.5);  // 相场变量转换
F = 0.1*phi^3 - 0.1*phi;  // 双井势函数
epsilon = 0.05;  // 界面厚度参数

这里的epsilon控制界面模糊程度,设太小会算到地老天荒。边界条件要搞点花样——入口用速度入口,出口压力出口,多孔介质区加达西源项,操作起来像这样:

u = 0.1[mm/s]*((t<10[s]) + 0.3*(t>=10[s]));  // 分阶段注入速度

跑完模拟该算毛管数了,这可是驱替效率的关键指标。在派生值里新建积分算子:

Ca = (viscosity_water*velocity)/(surface_tension);  // 无量纲数计算

饱和度统计更简单——在相场变量c大于0.5的区域面积占比就是水相饱和度。进阶玩家可以修改方程里的迁移率函数:

lambda = c^2*(1-c)^2;  // 试试改成c^3看界面怎么变

遇到过数值震荡?把时间步长改自适应BDF方法,稳定性立马提升。最后说个骚操作——把多孔介质参数改成随机分布,模拟真实岩心的非均质性,效果比教科书案例带感多了。

(后记:需要水平集法案例的私信,记得备注孔隙结构参数)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐