深部咸水层封存二氧化碳的COMSOL模拟:实现环境友好的碳捕集与封存技术
打开COMSOL Multiphysics时,我总习惯先冲杯咖啡——毕竟要让数值模型在咸水层里老老实实追踪CO₂的运动轨迹,可不是点两下鼠标就能搞定的活。今天要折腾的是深层咸水层封存场景,重点在于捕捉多相流与矿物反应的耦合效应。最后奉劝各位:模拟咸水层封存时,千万别小看盐度的动态变化。不过要注意,矿化封存的贡献通常需要几十年才能显现,短期监测重点还是在超临界CO₂的运移范围。当各向异性比超过5时,
comsol 模拟深部咸水层封存二氧化碳

打开COMSOL Multiphysics时,我总习惯先冲杯咖啡——毕竟要让数值模型在咸水层里老老实实追踪CO₂的运动轨迹,可不是点两下鼠标就能搞定的活。今天要折腾的是深层咸水层封存场景,重点在于捕捉多相流与矿物反应的耦合效应。

先从几何建模说起。地下2000米的咸水层通常呈现层状结构,用COMSOL的CAD模块拉个轴对称模型最省事。这里有个骚操作:在"几何"节点下用参数化曲线定义地层倾角,比手动拖拽精准得多:
% 地层倾斜角定义
theta = 10; % 地层倾角(度)
curve1 = model.geom.create('curve1', 'ParametricCurve');
curve1.set('parmin', '0');
curve1.set('parmax', '1000');
curve2.set('x', 's*cos(theta*pi/180)');
curve3.set('y', 's*sin(theta*pi/180)');
这种参数化处理能让后续调整地层角度时,整个几何结构自动适应变化,避免重建模型的麻烦。

物理场设置才是重头戏。在"多物理场"里勾选达西流、溶质运移和热力学模块后,重点配置两处:
- 在流体属性中将密度设为CO₂饱和度的函数:rho = rhowater(1 - Sco2) + rhoco2Sco2
- 矿物反应动力学里需要处理方解石沉淀速率,用Arrhenius方程描述温度影响:
k = A*exp(-Ea/(R*T))* (1 - Omega/Keq)
这里常有人掉坑——忘记设置活度系数校正,特别是在高盐度条件下。建议在"化学物质传输"节点下勾选Debye-Hückel修正,实测这能让矿化反应速率的计算结果靠谱20%以上。

comsol 模拟深部咸水层封存二氧化碳

求解器配置藏着魔鬼细节。当CO₂注入引发压力激波时,常规的时间步长策略容易发散。我的暴力美学是:
steps = [0:1e-3:0.1, 0.1:1e-2:1, 1:0.5:50]; % 阶梯式时间步
solver.autoStep = 'off';
solver.tlist = steps;
前1秒用毫秒级步长捕捉瞬态变化,后续逐步放宽,既保证稳定性又节省算力。记得在存储设置里勾选"保留所有时间步",否则后处理做动画时会想砸键盘。
后处理阶段有个隐藏技巧:在"派生值"里创建空间积分变量,实时监控封存效率。比如定义封存占比:
eta = (intop1(rho_co2*S_co2) + intop1(C_mineral))/(m_injected)
当这个值超过85%时,基本可以判定封存方案可行。不过要注意,矿化封存的贡献通常需要几十年才能显现,短期监测重点还是在超临界CO₂的运移范围。
折腾完模型别急着收工,记得做网格敏感性分析。地下储层的渗透率各向异性系数(kz/kr)对结果影响巨大,用参数扫描功能跑几组对比:
study = model.study.create('param');
study.set('param', {'aniso_ratio'}, 'range', [0.1, 1, 10]);
当各向异性比超过5时,CO₂更容易沿着高渗带横向扩展——这意味着封存井的间距至少要大于这个扩散范围,否则可能发生泄漏。
最后奉劝各位:模拟咸水层封存时,千万别小看盐度的动态变化。盐度梯度引发的自然对流会显著影响CO₂溶解速率,这货在常规油藏模拟里可遇不到。建议在初始条件里设置盐度梯度场,毕竟真实地层中的盐度分布从来都不是均匀的。
更多推荐
所有评论(0)