comsol水力压裂裂缝扩展模型 流固耦合损伤和热流固耦合损伤 在这个模型里面考虑了温度场、应力场、压力场和损伤场采用的是Comsol内置的接口建模 整个模型呈正方形内部开一个圆孔 在圆孔内壁施加高压低温流体模型外边界在这个模型里面考虑了温度场、应力场、压力场和损伤场采用的是Comsol内置的接口搞水力压裂数值模拟的兄弟应该都懂裂缝扩展模型最头疼的就是多场耦合。最近用Comsol折腾了个热流固损伤全耦合的压裂模型正方形岩板中间挖个圆孔当压裂井直接把温度场、应力场、渗流场、损伤场四个场揉在一起算。说几个关键点几何建模先偷个懒直接上正方形域中心圆孔的结构。用Comsol的几何序列搞定% 几何生成脚本 model.component(comp1).geom.create(geom1, 2); geom model.component(comp1).geom(geom1); geom.feature().create(sq, Square); geom.feature(sq).set(size, 10); % 10m边长 geom.feature().create(cir, Circle); geom.feature(cir).set(r, 0.2); % 井筒半径0.2m geom.feature().create(dif, Difference); geom.feature(dif).selection(input).set({sq}); geom.feature(dif).selection(input2).set({cir}); geom.runAll;这里注意布尔运算的顺序先建大正方形再挖孔。网格划分建议在井周加密用边界层网格处理梯度突变。多物理场耦合操作核心是用固体力学接口达西定律非等温流动。损伤场用自定义PDE模式实现% 损伤演化方程设置 physics model.physics.create(dmg, WeakFormPDE, geom1); physics.field(dimensionless).component({D}); physics.feature(wfeq1).set(weak, Dt*test(D) 0.1*(D^3 - D) (ux vy)*test(D));这个非线性项设计是关键D^3 - D控制相变阈值(uxvy)耦合应变能。注意损伤变量D的取值范围要做限制防止计算发散。comsol水力压裂裂缝扩展模型 流固耦合损伤和热流固耦合损伤 在这个模型里面考虑了温度场、应力场、压力场和损伤场采用的是Comsol内置的接口建模 整个模型呈正方形内部开一个圆孔 在圆孔内壁施加高压低温流体模型外边界在这个模型里面考虑了温度场、应力场、压力场和损伤场采用的是Comsol内置的接口热流固边界条件井壁边界最刺激% 注液边界条件 bnd model.physics(ht).feature.create(bnd1, BoundaryHeatSource, 1); bnd.selection.set([3]); % 选择井壁边界 bnd.set(Q0, 20[MPa]); % 注液压力 bnd.set(T0, 283[K]); % 低温流体这里同时加载了压力边界和温度边界。注意渗透压力梯度会引起热对流效应建议打开非等温流动中的强制对流选项。求解器黑科技耦合迭代容易崩试试分步耦合% 求解器配置 study model.study.create(std1); study.create(param, Parametric); study.create(time, Transient); solver study.feature.create(timeStep, TimeStep); solver.set(tlist, range(0,1,60)); solver.set(maxrefine, 5); % 允许自动时间步细分先用参数化扫描找稳定初值再切到瞬态求解。看到损伤场出现红色条纹D0.7的区域说明裂缝开始扩展此时适当缩小时间步防止发散。跑完看损伤云图裂缝会沿着最大主应力方向呈不规则分叉温度场在裂缝尖端出现低温异常区——这是流体急速渗流导致的焦耳-汤姆逊效应。搞压裂模拟的可以重点观察损伤变量超过0.8的区域这基本对应实际支撑剂的运移路径。最后提醒损伤模型中的能量释放率参数需要和岩石断裂韧性匹配别直接用默认值否则裂缝要么纹丝不动要么直接碎成渣。建议先做单轴压缩标定试验把损伤阈值调准了再跑全模型。