CMG软件的地质力学(Geomechanics)模块,是揭示地下地层看不见的运动的核心工具 —— 它能将注采过程中地层的应力变化、岩层变形、孔隙演化等微观过程转化为可量化、可视化的结果,为油藏开发方案优化、地质灾害预防提供关键支撑。本讲义从模型选择、网格配置、参数设置到结果分析,全方位覆盖实操细节,同时用通俗语言拆解专业概念,让不同基础的读者都能掌握。 

        刚接触 CMG 地质力学功能的小伙伴,不用怕复杂!这份指南用最通俗的话把每个核心环节拆明白 —— 为啥要用每步怎么操作,再到新手常踩的坑,帮你稳扎稳打入门,避免走弯路。

 一、先搞懂:地质力学到底能解决啥问题?

       简单说,地下地层看不见摸不着,但注水采油时,它会偷偷变形”—— 可能被压得孔隙变小(影响出油),也可能应力太大裂了(导致出砂)。地质力学功能就是帮你算清楚这些看不见的变化:比如某口井采油 100 天后,井眼周围地层会收缩多少?会不会因为应力太大开裂出砂?这些结果能直接指导你调整开发方案(比如要不要控压采油、要不要下套管)。

       核心逻辑:它不是单打独斗,要和 CMG 的流体模拟器(算油、水、气怎么流动)配合,要么流体算完压力传给力学,要么两者互相反馈,具体看你要的精度。 

二、核心本构模型:两种计算套路,别选错!

        地质力学功能就靠两个核心模型干活,相当于两套不同的计算器,适配不同场景,新手第一步要先搞懂什么时候用哪个

(一)塑性与非线性弹性变形模型(通用款,90% 场景用它)

        这是万能模型,能模拟地层从轻轻变形能回弹变形太大开裂的全过程,就像观察一块橡皮泥:捏一下回弹(弹性)、捏重了留痕迹(塑性)、再使劲捏裂(失效),它都能算。

  • 两大计算模式,按需选:

1.       弹塑性模式(算开裂、出砂必用)

既能算弹性变形(比如注水时地层轻微膨胀,停注后回弹),也能算塑性变形(比如采油时地层收缩,再也弹不回去),甚至能算开裂失效

o   关键设置 1:选屈服准则”—— 就是定义地层到多大应力会开始变形失效。常用两种:

o   Mohr-Coulomb (莫尔-库伦)准则:适合砂层、灰岩这类常见岩石,要填内聚力(相当于岩石粘合力,越大越不容易裂)和内摩擦角(相当于岩石颗粒间的摩擦力,越大越抗剪);

o   Drucker-Prager (德鲁克-普拉格)准则:适合页岩、泥岩这类软岩,参数和上面类似,但更贴合软岩的受力特点。

o   关键设置 2:加防护功能”——

o   应变硬化(关键字*HARDEN):让地层变形越多越结实(比如反复注水的地层,会慢慢变硬);

o   帽模型(关键字*GCAPMODEL):防止地层被无限压缩(比如高压采油时,不会把地层压成纸片)。

o   特殊能力:能模拟注采循环”—— 注水时地层加载(应力升高、积累变形),采油时卸载(应力下降、弹性变形回弹),还能算剪切扩容(变形时体积变大)。

2.       非线性弹性模式(只算变形,不算失效,算得快)

       只能算地层没开裂前的弹性变形,速度比弹塑性快,但没法预测出砂、开裂。又分两种细分类型,别搞混:

o   亚弹性(关键字*NLINEAR+ 做功判断):泊松比不变,但体积模量、剪切模量会随应力变化;用做功多少(dW判断状态 ——dW 正就是加载,负就是卸载,零就是不加载不卸载;

o   超弹性(关键字*NLINEAR+ 剪应力判断):泊松比和杨氏模量都随应力变化;用当前剪应力和参考剪应力对比判断 —— 当前大就是加载,小就是卸载。

  • 支持的网格类型(计算的舞台):
  1. 2D/3D 笛卡尔网格、角点网格、轴对称径向网格(以井眼为中心的圆环)都能用;
  2. 3D 径向网格会自动转成角点网格,而且每个网格块的角度不能超过 160 度(不然体积会趋近于零,算不了);
  3. 还能选平面应变(伪 3D模式:比如模拟薄地层时,只算 y-z x-z 平面的变形,忽略垂直平面方向的应变,省计算量。
  • 关键规则(别搞反正负!):

        压应力算正(比如地层被上覆岩层压着的力),拉应力算负(比如地层被拉着的力);剪应力方向和坐标方向一致时算正(比如 x 方向的剪应力,方向沿 x 轴就是正)。

 (二)单井边界卸载模型(单井专用,只算井周问题)

       这是单井专属计算器,只能用在以井眼为中心的径向网格里(比如模拟一口油井的井周情况),专门解决砂粒被采到井眼后,井周应力释放的问题 —— 比如裸眼井采油时,砂粒被带到井里,井眼周围地层的压力会下降,可能导致射孔附近开裂,这个模型就能算。

  • 启用条件(缺一不可):

1.       必须先启用上面的塑性与非线性弹性变形模型(相当于基础计算器);

2.       加两个专属关键字:

      • *UNLOADSTR:开启边界卸载功能(告诉软件要算井周应力释放);
      • *WRADIUS:填井眼半径(比如 0.1 米,告诉软件从这个半径开始卸载)。
  • 新手必记的限制

1.       破坏网格不删除:就算井周网格单元开裂、没强度了,也不会从模型里去掉,还会留在里面参与计算;

2.       不算砂粒移除影响:只算应力释放,但不算砂粒被带走后地层孔隙的变化,所以失效单元旁边的计算结果可能有点偏差,需要结合实际数据修正。

 

三、网格设置:搭建计算舞台,这些坑别踩!

     同油藏模拟网格一样,地质力学网格就是把地下分成一个个小方块 /小圆环,计算每个小块的受力变形。有两种网格模式,还有很多禁用规则,新手很容易在这里出错,一定要记牢。

(一)两种网格模式(选一种就行)

  1. 共用网格(简单,但限制多,适合新手练手)
    • 启用条件:不用加*GEOGRID关键字,地质力学网格会和油藏流体模拟的网格完全重叠”—— 比如流体网格是 50×30×10 的方块,地质力学网格也一样,单元边角都对齐。
    • 特点:模拟时网格能移动(比如地层收缩时,网格会跟着变小),但网格之间的一一对应关系不变;
    • 致命限制(绝对不能碰!):
      • 不能用静态局部加密网格(禁用 “油藏描述里的*REFINE关键字);
      • 不能用动态网格(关键字*DYNAGRID,模拟中不能改网格大小);
      • 不能用含断层的网格(断层处受力复杂);
      • 不能用相邻块角点对不上的网格:比如某些角点网格(映射软件生成的)、变厚度 / 变深度的*VARI网格(笛卡尔网格里的不规则块)。
  1. 独立网格(灵活,限制少,适合复杂场景)
    • 启用条件:必须加*GEOGRID关键字,再配合*GDII 方向网格数)、*GDJJ方向)、*GDKK 方向)定义网格参数;
    • 特点:和流体网格不重叠,靠映射算法传递数据(比如流体网格的压力,会对应到独立网格的对应位置),对流体网格的限制少(比如流体网格局部加密也能用);
    • 唯一限制:模拟中也不能改网格(不能用*DYNAGRID)。

(二)新手必避的网格

  1. *VARI网格(变厚度 / 变深度):

油藏流体模拟网格用不了,会报错 —— 未启用*GEOM3D3D 模式)时,初始化直接报致命错误;启用*GEOM3D时,要先通过 Builder 工具检查(不然算到一半会崩);

解决办法:加关键字*CONVERT-TO-CORNER-POINT,把*VARI网格自动转成角点网格(转换后每个角点的位置是原来的平均值,网格体积、传导率会有小变化,但总孔隙体积基本不变)。

  1. 径向网格的套管处理(单井模拟必看,别搞反!)

径向网格分 2D 3D,默认的套管 / 裸眼设置完全相反,新手很容易搞混:

2D 径向网格(nj=1,没有角度方向的划分):

井眼边界在最内层网格(I=1)的下表面;用关键字*PRESCBC控制约束 —— 默认是套管井(锁死 I=1 的径向位移,井眼不能动);想算裸眼井,必须取消默认(比如*PRESCBC 1 1 1 1 XX 方向不填数值,就是允许移动),这时井眼流体压力会提供径向支撑(比如快速采油时,井眼压力下降,地层会向井眼收缩)。

3D 圆柱网格(nj>1,有角度方向的划分):

最内层网格(I=1)没有角度分辨率,地质力学网格从 I=2 开始,所以井眼边界对应 I=2;用关键字*PRESCBC3D控制约束 —— 默认是裸眼井(不锁 I=2 的径向位移,井眼能动);想算套管井,必须手动锁(比如*PRESCBC3D 2 2 1 Jmax 1 Kmax X 0X 方向填 0,就是固定不动);而且输入参数时,I=1 的数据会被忽略,井眼相关参数要填在 I=2

 

四、关键字:启用功能的钥匙,必选的别漏!

CMG 所有功能都靠关键字触发,相当于给软件发指令。地质力学的关键字分必选(少一个都跑不了)和可选(按需求加),新手先记牢必选的,再慢慢学可选的。

(一)必选关键字(核心指令,记死!)

关键字

作用(通俗解释)

注意事项

*GEOMECH

地质力学功能的总开关,没它一切都白搭

所有地质力学模拟都必须加,放在关键字最前面

*ELASTMOD

定义杨氏模量(岩石硬软程度,越大越硬)

超弹性模型不用加(它的杨氏模量随应力变)

*POISSRATIO

定义泊松比(横向变形 / 纵向变形,0.2-0.4 常见)

超弹性模型不用加(同理)

*STRESS/*STRESS3D

定义初始应力场(2D 用前者,3D 用后者)

要填对数值(比如垂向应力 = 岩层密度 × 深度 ×9.8

*GEOM3D

开启 3D 模拟(算 3D 场景必须加)

2D 模拟不用加

*GEOGRID+*GDI/*GDJ/*GDK

定义独立网格(用独立网格必须加)

宿主网格不用加这组关键字

 (二)常用可选关键字(按需求加,别贪多)

  • 屈服准则:*MOHRCOULMohr-Coulomb 准则)、*DRUCKERDrucker-Prager 准则),弹塑性模式必加;
  • 多岩性:*GEOROCK+*GEOTYPE(开启多岩性,比如砂岩和泥岩分开算),没加这两个就是默认全地层一种岩性;加了之后,*ELASTMOD*COHESION等参数要按岩性分别填;
  • 边界条件:*PRESCBC/*PRESCBC3D(约束位移,比如锁死外边界)、*DLOADBC/*DLOADBC3D(施加荷载,比如上覆岩层压力);
  • 输出控制:*OUTSRF *GRID(输出网格级结果,比如应力、应变)、*PRINTGEO(输出.geo日志文件,存输入数据和计算过程);
  • 后处理:*GEOPOSTPRO(用旧的流体模拟结果批量算力学,不用重复跑流体,省时间)。

 

五、耦合方式:和流体模拟配合,选对精度和速度

地质力学不能单独算,要和流体模拟(算油、水、气怎么流动)配合,有两种配合方式,精度和速度不一样,新手按需求选:

(一)单向耦合(快,精度一般,常规油藏用)

  • 逻辑:流体模拟先算压力、温度,然后把这些数据传给地质力学模块,地质力学算完变形后,不把结果反馈给流体(相当于流体说啥,力学就信啥);
  • 优点:计算快,适合地层变形小的常规油藏(比如普通砂岩油藏);
  • 启用:不用额外关键字,默认就是单向耦合。

(二)双向耦合(准,慢,易变形油藏用)

  • 逻辑:流体传压力给力学,力学算完变形后,把孔隙变化”“传导率变化反馈给流体,流体再根据这些变化重新算流动 —— 来回循环,更贴合实际;
  • 优点:精度高,适合页岩、稠油、煤层气等易变形油藏(比如页岩气压裂后,裂缝变形会影响产气);
  • 启用:必须加关键字*GCOUPLING,还能加*NITERGEO设置耦合频率(比如每 10 个流体时间步耦合一次,平衡精度和速度)。

 (三)后处理计算(新手省时间神器)

如果想测试不同地质力学参数的影响(比如试不同杨氏模量对变形的影响),不用每次都跑一遍流体模拟 —— 加关键字*GEOPOSTPRO,让软件读取之前流体模拟的结果文件(比如.out)或重启文件(比如.rst),提取每个时间步的压力、温度,批量算地质力学结果;

  • 注意:后处理只支持单向耦合,而且过程中不跑流体计算,完全依赖旧数据。

 

六、结果查看:读懂地层反馈,别瞎看

模拟跑完后,要会看结果才有用。所有结果都用 CMG “Results” 图形工具查看,文件输出也有讲究:

(一)核心结果看什么?(新手先看这 3 类)

  1. 力学参数(判断地层稳不稳)
    • 应力:看最大主应力”“最小主应力”“应力差(最大最小)”—— 应力差太大,说明地层容易裂;
    • 应变:看弹性应变(能回弹的)、塑性应变(永久的)—— 塑性应变太大,说明地层变形不可逆;
    • 位移:看径向位移”“垂向位移”——
      比如采油时井眼周围径向位移负(向井眼收缩),垂向位移负(地层下沉),都是正常的,但太大就有风险。
  2. 孔隙度(判断耦合质量好不好)

有三种孔隙度,别搞混:

    • 真实孔隙度(关键字*VPOROSGEO):当前孔隙体积 ÷ 当前总体积(地层变形会影响);
    • 地质校正孔隙度(关键字*PORDIFF):当前孔隙体积 ÷ 初始总体积(用初始体积当参考);
    • 孔隙度差值(关键字*PORDIFF):地质校正孔隙度流体模拟用的孔隙度 —— 差值越小,说明力学和流体模拟配合得越好(一般小于 5% 算合格);
    • 注意:地质力学里的孔隙体积都是有效孔隙体积(能装流体的空间),不是流体实际占据的体积
  1. 网格变形(直观看地层怎么动)

加关键字*WSRF *GRIDDEFORM,在 Results 里能看网格随时间变形的动画”—— 比如采油时网格向井眼收缩,注水时向外膨胀,直观判断变形是否合理。

 (二)输出文件怎么看?

  • .geo文件:地质力学专属日志,存输入的关键字、网格构建过程、方程求解情况(比如有没有算错),要加*PRINTGEO才会生成;
  • .out文件:流体模拟的文本文件,没有地质力学结果(别在这儿找应力、应变);
  • SR23文件:二进制结果文件,存*OUTSRF输出的所有参数,必须用 Results 打开。

 

七、新手必记的 5 避坑指南

  1. 3D 模拟别贪多网格*GEOM3D开启后,存储占用会很大(应力应变方程要在网格块边角求解,每个块的方程数量是流体的 3-5 倍),新手先从少网格(比如 I=20J=10K=5)练手;
  2. 报错先查必选关键字:如果提示 “Missing mandatory keyword”(缺必选关键字),先检查*GEOMECH*ELASTMOD*STRESS/*STRESS3D这几个有没有漏,有没有输错;
  3. 网格无限扩张?加边界约束:如果模拟中网格往外面无限扩张,肯定是外边界没锁 —— *PRESCBC2D)或*PRESCBC3D3D)把外边界的位移固定(比如*PRESCBC 50 50 1 10 X 0,锁死 I=50 X 方向位移);
  4. 径向网格套管别搞反2D 默认套管井,3D 默认裸眼井,算之前一定要确认关键字*PRESCBC/*PRESCBC3D的设置,别把裸眼井套管井算,结果会完全错;
  5. 多岩性别漏关键字:想算多种岩性,必须同时加*GEOROCK*GEOTYPE,少一个都默认单岩性,而且每种岩性的参数要单独填,别填混。

 

八、新手实操流程(按这个步骤,准没错)

  1. 新建项目:CMG Launcher 里选 “New Project”,勾上 “Geomechanics” 模块;
  2. 建网格:用 Builder 画简单的 2D 径向网格(练手),或导入流体网格(注意*VARI网格要转换);
  3. 加必选关键字:先加*GEOMECH,再填*ELASTMOD*POISSRATIO*STRESS
  4. 选模型:练手选塑性模式 + Mohr-Coulomb 准则,加*MOHRCOUL*COHESION*FRICANGLE
  5. 设边界:加*PRESCBC锁死外边界,按需求设套管 / 裸眼;
  6. 跑模拟:选 “Run”,看 Job Status 变成 “Completed”(没报错);
  7. 看结果:用 Results 看应力、位移、孔隙度,判断是否合理。

按这个流程练 1-2 个简单模型,再慢慢加复杂功能(比如 3D、双向耦合、多岩性),很快就能上手!如果某一步报错,先查.geo文件的日志,大部分问题都是关键字漏填或网格不兼容~

发表评论