CO2气体注入地层封存技术:涉及Comsol模拟、两相流、温度变化、地层力学及地层分层的研究
comsol 二氧化碳气体CO2注入地层封存两相流包含温度变化地层力学地层分层地下800米的砂岩层正在经历一场静默的革命。工程师们通过直径15厘米的井筒将超临界状态的CO₂注入到充满盐水的岩层孔隙中。鼠标在COMSOL Multiphysics界面滑动我盯着屏幕上正在生成的非结构化网格——这个看似简单的几何体藏着多物理场耦合的魔鬼细节。两相流模块的冰与火之歌当30℃的液态CO₂遇到70℃的地层盐水界面张力引发的相态变化堪比科幻场景。在COMSOL中设置Brinkman方程时特别要注意相对渗透率曲线的突变点% 相对渗透率函数 function krw waterRelPerm(Sw) krw Sw^3; //三次方关系体现非达西流特征 end function krg gasRelPerm(Sg) krg 0.5*Sg^2; //气体相对渗透率更平缓 end这段看似简单的代码藏着工程经验——三次方关系能更好拟合砂岩的润湿性特征。记得在多孔介质传热接口勾选非等温流动否则温度场的变化会让你的质量守恒方程见鬼去。温度场的蝴蝶效应注入过程产生的焦耳-汤姆逊效应会让局部温度骤降15℃。有个菜鸟曾忘记设置热膨胀系数随温度变化的函数结果算出来的地层应力场比实际值高了200%。正确的姿势应该是material.thermExpansion 1e-5*(1 0.002*(T[degC]-50)); //温度在50℃基准值上下浮动时膨胀系数变化±20%注意单位换算这个坑——COMSOL默认用开尔文温标但现场数据往往是摄氏度。有次用错单位导致计算出的热应力直接让模型地层裂开画面堪比《2012》里的地壳运动。comsol 二氧化碳气体CO2注入地层封存两相流包含温度变化地层力学地层分层地层分层的俄罗斯套娃遇到夹层状砂岩-页岩交替的地质结构千万别用连续介质假设硬刚。我习惯用层压板建模法每个薄层单独定义属性Layer[] strata new Layer[15]; for(int i0; istrata.length; i){ strata[i].permeability 50 Math.pow(-1,i)*20*Math.random(); strata[i].thermalConductivity 2.5 i*0.1; }这种离散化处理能捕捉到各向异性渗透率但要注意层间接触面的位移协调。有次没设置好界面约束算出来的CO₂羽流竟然在页岩层玩起了贪吃蛇式的绕流甲方看了直呼不科学。力学模块的暗黑料理把Terzaghi有效应力原理和Drucker-Prager准则组合使用时记得孔隙压力场的更新频率要和固体力学模块保持同步。有段代码让我记忆犹新solver.staggered_max_iterations 5 #最大交错迭代次数 solver.residual_tolerance 1e-4 #比默认值严苛一个量级这个设置能避免出现力学场已收敛但流体场还在抽搐的尴尬情况。曾经有个模型因为迭代次数不够算出来的注入压力曲线像心电图一样震荡被评审专家戏称为压力场的心跳。当最后一个边界条件设置完成点击计算按钮的瞬间屏幕上的CO₂羽流开始在地层中优雅地舒展。望着实时更新的Von Mises应力云图突然意识到——这些跳动的数值背后是正在被重塑的地下王国。而我们的工作就是在虚拟世界里预演一场持续千年的地质嬗变。