阳光石油网|石油技术交流|石油人论坛

 找回密码
 欢迎注册
查看: 1144|回复: 2

如何加快数模计算与如何解决数模计算的收敛性问题

[复制链接]
  • TA的每日心情
    开心
    2015-2-27 14:15
  • 签到天数: 137 天

    [LV.7]常住居民III

    发表于 2010-7-27 14:07:14 | 显示全部楼层 |阅读模式

    马上注册,下载丰富资料,享用更多功能,让你轻松玩转阳光石油论坛。

    您需要 登录 才可以下载或查看,没有账号?欢迎注册

    x
    虽然大家可能都看过,感觉很经典,希望没看过的能够一睹为快。
    一:数模计算的收敛性: 在了解收敛性之前,应该首先了解几个基本概念:

    1。报告步: 一个数模作业包括多个报告步,报告步是用户设置要求多长时间输出运行报告,比如可以每个月,每季度或每年输出运行报告,运行报告包括产量报告和动态场(重启)报告。在ECLIPSE软件中,报告步是通过DATES和TSTEP关键字来设置的。

    2。时间步: 一个报告步包括多个时间步,时间步是软件自动设置(VIP需要用户设置)即通过多个时间步的计算来达到下一个报告步,以ECLIPSE为例,假如报告步为一个月,在缺省条件下,ECLISPE第一个时间步取一天,然后以三倍增加,即第二个时间步取三天,然后取九天,下一个时间步是17天来达到30天的报告步,然后会以每30天的时间步来计算。时间步可以通过TUNING关键字来修改。

    3。非线形迭代:一个时间步包括多次非线形迭代。在缺省情况下,ECLIPSE如果通过12次的非线形迭代没有收敛,ECLIPSE将对时间步减小10倍。比如下一个时间步应该是30天,如果通过12次的迭代计算不能达到收敛,ECLIPSE将把时间步缩短为3天。下一个时间步将以1.25倍增长,即3.75天,4.68天,。。。。如果在计算过程中经常发生时间步的截断,计算将很慢。

    4。线形迭代: 一个非线形迭代包括多次线形迭代。线形迭代是解矩阵。在ECLIPSE输出报告PRT文件中可以找到时间步,迭代次数的信息,
    ?? STEP 10 TIME= 100.00 DAYS ( +10.0 DAYS REPT 5 ITS) (1-FEB-2008)
    ?? “STEP 10” : 说明这是第10个时间步。
    ?? “TIME= 100.00 DAYS”: 说明现在模拟到第100天。
    ?? “+10.0 DAYS”: 说明这个时间步是10天。
    ?? “REPT" : 说明为什么选10天做为时间步,REPT是指由于到了下一个报告步。
    ?? “5 ITS": 说明此10天时间步需要5次非线形迭代。
    ?? ”(1-FEB-2008)“: 现在的模拟时间。

    ?? 模拟计算的时间取决于时间步的大小,如果模型没有发生时间步的截断而且能保持长的时间步,那表明该模型没有收敛性问题,反之如果经常发生时间步截断,那模型计算将很慢,收敛性差。时间步的大小主要取决于非线形迭代次数。如果模型只用一次非线形迭代计算就可以收敛,那表明模型很容易收敛,如果需要2到3次,模型较易收敛,如果需要4到9次,那模型不易收敛,大于10次的化模型可能有问题,如果大于12次,时间步将截断。在PRT文件中如果看到以下信息:
    ?? PROBLEM: AT TIME 200 DAYS ((1-FEB-2009):?? NON-LINEAR EQUATION CONVERGENCE FAILURE ITERATION LIMIT REACHED - TIME STEP CHOPPED FROM 10
    ?? STEP 20 TIME= 200.00 DAYS ( +1.0 DAYS CHOP 5 ITS) (1-FEB-2009)
    ?? 那表明时间步发生了截断。 (注: 另外如果你见到如下信息:
    ?? WARNING AT TIME 0.0 DAYS (1-MAR-2004):?? LINEAR EQUATIONS NOT FULLY CONVERGED - RUN MAY GO FASTER IF YOU INCREASE LITMX (=25 - TUNING KEYWORD) 你可以不必管。这只是线形方程不收敛)
    ?? 除了REPT,CHOP外,在RPT文件中还常见以下信息来表明为什么选择现在的时间步:
    ?? INIT: 表明是初始时间步
    ?? TRNC: 为满足时间截断误差
    ?? MINS: 最小时间步
    ?? MAXS: 最大时间步
    ?? HALF: 接近报告步时的时间步取半
    ?? DIFF: 时间步截断CHOP之后的增长
    ?? (在ECLIPSE技术手册的第125页还会找到更多)
    ?? 如果模型中有很多CHOP,DIFF,MINS,那模型有严重的收敛性问题。

    二:如何解决数模计算的收敛性问题:

    ?? 模型不收敛的原因很多,网格参数,属性参数,流体PVT参数,岩石相渗曲线,毛管压力曲线,相渗曲线端点标定,初始化,井轨迹,垂直管流表都会造成模型不收敛,下面分别介绍各部分如何造成不收敛及如何解决。

    1。网格部分:
    ?? 网格正交性差和网格尺寸相差太大是导致不收敛的主要原因之一。正交性差会给矩阵求解带来困难,而网格尺寸相差大会导致孔隙体积相差很大,大孔隙体积流到小孔隙体积常会造成不收敛。
    ?? 解决办法:
    ?? 网格正交性差通常是在建角点网格时为描述断层或裂缝的走向而造成的。在此情况下,最好能使边界与主断层或裂缝走向平行,这样一方面网格可以很好地描述断层或裂缝,另一方面正交性也很好。
    ? 在平面上最好让网格大小能够较均匀,在没有井的地方网格可以很大,但最好能够从大到小均匀过渡。纵向上有的层厚,有的薄,最好把厚层能再细分。在检查模型时应该每层每层都在三维显示中检查。径向局部网格加密时里面最小的网格不要太小。
    在ECLIPSE里用MINPV关键字可以把小于设定孔隙体积的网格设为死网格,这样通常会有用。

    2。属性参数:
    ?? 不合理的插值计算会导致属性分布很差,如果是从地质模型粗化为数模模型,通常问题不大,只是有时候数模人员自己插值时会有问题。
    ?? 解决办法:
    ?? 有可能尽量用地质模型的数据,自己插值时可以加一些控制点使属性合理分布。X,Y方向的渗透率最好相等或级差不大。在井连通网格的Z方向渗透率不要设为0,如果想控制垂向流动,可给一个很小的值。

    3。流体PVT参数
    ?? 流体PVT参数会有两种可能的问题,一是数据不合理导致了负总压缩系数,二是压力或气油比范围给的不够导致模型对PVT参数进行了外插。
    ?? 解决办法:
    ?? 检查PRT文件中的WARNING信息,如果在油藏压力范围内有负总压缩系数的警告,应该修改PVT参数,否则的化会有收敛性问题。如果负总压缩系数是在油藏压力范围之外,可以忽略该警告。此部分的修改主要可以小规模修改油和气的FVF和RS。关于ECLIPSE如何计算负总压缩系数,参照ECLIPSE技术手册第936页。

    ?? 在ECLIPSE中加EXTRAPMS关键字可以要求输出如果发生PVT插值后的警告信息。在提供PVT表时,压力应该覆盖所有范围,包括注水后的压力上升。RS值也应该考虑到气在油中的重新溶解。

    4。岩石相渗曲线和毛管压力曲线。
    ?? ECLIPSE不会对输入模型的相渗曲线和毛管压力曲线进行光滑,将会应用每一个输入饱和度和相渗值,所以要保证输入的参数是合理的。通常的问题有:
    ?? (1): 饱和度和相对渗透率的数据位数过多。
    ?? (2): 饱和度值太接近,导致相渗曲线的倾角变化很大。
    ?? (3): 饱和度有很小变化但相对渗透率发生了很大变化。
    ?? 解决办法:
    ?? (1):饱和度和相对渗透率最多给两位小数就够了。
    ?? (2):检查相渗曲线的导数??梢杂τ臆CLIPSE中的SCAL模块),导数要光滑。
    ?? (3):将临界饱和度和束缚饱和度设为不同的值。

    5。端点标定:
    ? 在应用端点标定时,有时标定完后的相渗曲线倾角很大,标定后的毛管了很大。
    ?? 解决办法:
    ?? 在三维显示中检查标定完的PCW,可以给PCW一个最大值来控制毛管压力。
    ?? 输出每个网格标定后的相渗曲线进行检查。

    6。初始化:
    ?? 初始化最容易发生的问题是在初始时模型不稳定,流体在初始条件下就会发生流动,这也会导致模型不收敛。造成模型初始不稳定的主要有:
    ?? (1) 手工赋网格饱和度和压力值。
    ?? (2)拟合初始含水饱和度。
    ?? 解决办法:
    ?? (1)尽量不要直接为网格赋压力和饱和度值,尽量由模型通过油水界面及参考压力来进行初始化计算。
    ?? (2)要想拟合地质提供的初始含水饱和度分布,应该进行毛管压力的端点标定,这样毛管压力会稳住每个网格的水,在初始条件下不会流动。
    ?? (3)可以通过让模型在没有任何井的情况下计算十年来检查初始条件下模型是否稳定,如果10年的计算模型压力和饱和度度没有变化,说明模型初始是稳定的。

    7。井轨迹:
    ?? 在进行井处理时井可能以之字型在网格中窜过,有可能发生井的实际窜过方向与模型关键字定义的方向不符,这也会导致不收敛。
    ?? 解决办法:
    ?? (1) 在三维显示中检查井轨迹。
    ?? (2) 如果井已经关掉,在模拟时不要给零产量,要用关键字把井关掉。
    ?? (3) 检查井射孔,井不要射在孤立的网格上。

    8。垂直管流曲线:
    ?? 有了垂直管流曲线很容易导致模型不收敛,这有两种可能:
    ?? (1)曲线有交叉。
    ?? (2)曲线发生了外插。
    ?? 解决办法:
    ?? (1) 用前处理软件(ECLIPSE中的VFPi)检查曲线。
    ?? (2)在ECLIPSE中加EXTRAPMS关键字可以要求输出如果发生VFP插值后的警告信息。
    ?? (3)曲线应该覆盖所有井口压力,含水,油气比及产量。
    ?? (4)在ECLIPSE用WVFPEXP。

    9。其他解决办法:
    ??如果模型数据没有问题,可以调整模拟器的收敛计算参数,对于ECLIPSE,可以做以下调整:
    ??(1)调整TUNING中的最大时间步。如果模型每计算到30天就会截断时间步,可以将最大时间步调整为20天,这样计算会快很多。
    ??(2)调整TUNING中的最大线形迭代次数到70次。
    ??(3)降低TUNING中的线形收敛误差标准
    ??(4)对于组分模型用FREEZEPC和DPCDT.
  • TA的每日心情
    开心
    2015-2-27 14:15
  • 签到天数: 137 天

    [LV.7]常住居民III

     楼主| 发表于 2010-7-27 14:07:44 | 显示全部楼层
    以上来源: 月光数模博克:http://resim.tianyablog.com
  • TA的每日心情
    开心
    2024-5-10 14:28
  • 签到天数: 2525 天

    [LV.Master]伴坛终老

    发表于 2013-1-21 14:02:24 | 显示全部楼层
    学习一下
    您需要登录后才可以回帖 登录 | 欢迎注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|阳光石油网 ( 鲁ICP备2021003870号-1 )

    GMT+8, 2025-1-21 06:29 , Processed in 0.045631 second(s), 18 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表