85
油藏数值模拟基础 刘月田 主编 石油大学(北京)石油天然气工程学院

油藏数值模拟基础

Embed Size (px)

DESCRIPTION

油藏数值模拟基础

Citation preview

Page 1: 油藏数值模拟基础

油藏数值模拟基础

刘 月 田 主编

石油大学(北京)石油天然气工程学院

目 录

Page 2: 油藏数值模拟基础

第一章 绪论…………………………………………………………… 1111§1.1 油藏数值模拟的概念和作用………………… 1§1.2 油藏数值模拟研究的主要内容………………… 2§1.3 课程的特点、目的和要求………………… 2第二章 油藏渗流的基本数学模型…………………………………… 3333§2.1 数学模型的分类………………… 3§2.2 建立数学模型的步骤………………… 3§2.3 单相流的数学模型………………… 4§2.4 两相流的数学模型………………… 6§2.5 渗流数学方程的通式………………… 8§2.6 多组分模型………………… 9§2.7 黑油模型………………… 11§2.8 定解条件………………… 13第三章 有限差分与差分方程………………………………… 15151515§3.1 离散化概念………………… 15§3.2 有限差分方法………………… 15§3.3 差分方程的建立………………… 17§3.4 差分格式的稳定性分析………………… 21§3.5 边界条件的处理方法………………… 22§3.6 差分方程组的线性化………………… 23第四章 线性代数方程组的数值解法…………………………………25252525§4.1 三对角方程组的直接解法——追赶法………………… 25§4.2 GAUSS 消元法和直接分解法………………… 26§4.3 交替方向隐式方法(ADIP) ………………… 32§4.4 简单迭代法和 Seidel 迭代法………………… 33§4.5 松驰迭代法(Successive Over Relaxation) ………………… 34§4.6 交替方向隐式迭代方法(ADIIP) ………………… 36§4.7 *强隐式方法………………… 38§4.8 迭代法和直接法的总结比较………………… 44第五章 单相渗流数值模拟方法………………………………………

Page 3: 油藏数值模拟基础

45454545§5.1 径向渗流问题的数值模拟方法………………… 45§5.2 平面渗流问题的数值模拟方法………………… 51第六章 两相渗流数值模拟方法………………………………………

56565656§6.1 两相流完整的数学模型………………… 56§6.2 二维两相渗流差分方程的建立………………… 56§6.3 两相渗流差分方程的 IMPES 分离解法………………… 58§6.4 半隐式(联立)解法………………… 61§6.5 IMPIMS(分离)解法………………… 63§6.6 边界条件的统一化处理………………… 64§6.7 两相渗流数模程序编制………………… 65第七章 现代油藏数值模拟技术及发展趋势…………………………68686868§7.1 油藏数值模拟技术发展简介………………… 68§7.2 现代油藏数模技术与大型数值模拟软件………………… 68§7.3 油藏数值模拟技术发展趋势………………… 68第八章 油藏数值模拟应用……………………………………………

69696969§8.1 问题分析及模型与软件的选择………………… 69§8.2 油藏几何参数处理与网格系统的建立………………… 69§8.3 地质参数的处理………………… 69§8.4 流体资料的处理………………… 71§8.5 油藏初始资料的处理………………… 72§8.6 生产动态资料………………… 72§8.7 数值模拟输出数据………………… 73§8.8 历史拟合与动态预测………………… 73第九章 实用模拟软件及油藏模拟实例………………………………74747474

Page 4: 油藏数值模拟基础

第一章 绪 论

§1.11.11.11.1 油藏数值模拟的概念和作用

一、油藏数值模拟在油气田开发中的作用

油气藏存在和运动形式及其开发过程都十分复杂,包括油藏构造、岩石物性、孔隙结构 、

非渗透夹层等静态地层描述的复杂性,包括流体形态、性质及其与岩石的相互作用,还包括

油田生产过程中油气产量、压力、温度和饱和度变化的复杂性,尤其是热力驱油、化学驱油

等“三次采油”过程的复杂性。

油气田开发的目的,就是排除各种复杂因素影响,克服各种困难,将地下岩石中的油气

流体开采到地面,并不断降低成本,提高最终采收率。经历过自喷、机械采油、注水开发、

化学及热力采油等阶段,油气田采收率不断提高。

油气田开发进程离不开科学技术。利用现代科技手段不断深入研究油气田、认识油气田 ,

是提高油气田开发效益的必经之路,研究油气田开发的方法有以下几类:

1.直接法

如钻井、取芯、试采、试井、井组开发试验、先导开发区试验、工业化开发区试验等。

其优点是:①直接、直观——看得见,摸得着;②准确——本身即客观存在,不存在人为误

差。其缺点是:①成本高,周期长;②对油藏变化的不可逆性;③只能在井点或油藏局部进

行。

2.模拟法

⎪⎩

⎪⎨

⎩⎨⎧数值模拟

解析方法数学

物理

(1)物理模拟。如渗透率测试、相渗测试、毛管力测试、流体性质试验以及三采驱油

机理试验等。其作用是:①发现微观运动规律,②验证理论和数值研究结果;其缺点是:①

很难进行复杂或整体油藏研究,②成本较高,周期较长。

(2)解析方法。通过数学方程组的解析解来研究其所描述的物理过程变化规律的方法。

优点是:①简便,②物理变化规律明显。缺点是:只能研究理想的、较简单的问题,很难直

接解决实际油气藏开发问题。

(3)数值模拟。根据油气藏地质及开发实际情况,建立物理数学模型并利用计算机求

得数值解来研究其运动变化规律。

其实质就是利用数学、地质、物理、计算机等理论方法技术对实际油藏的复制。

油藏数值模拟技术出现于 50 年代,到 90 年代就已发展成熟。现在处于另一个发展周期 。

油藏数值模拟功能包括两大部分:①复杂渗流力学研究,②实际油气藏开发过程整体模

拟研究,且可重复、周期短、费用低。

油藏数值模拟已经普遍应用于各种油气藏开发过程,成为油气田开发不可或缺的方法和

工具,被称作“现代油藏工程”。跟其它油藏研究方法相比,有着不可替代的优势。

油藏数值模拟的局限性主要在于:①模拟误差,②结果不唯一。误差主要来自两方面,

一是模型本身有误差,二是油气藏资料不全或不准。结果不唯一问题跟研究者的水平直接相

关。

Page 5: 油藏数值模拟基础

二、从学科方向和课程设置看

科学研究主要靠三大手段:实验、理论、数值(模拟、实验、仿真),随着计算机技术

和计算科学的发展,数值研究的地位越来越重要,油藏数值模拟的功能和作用也随之不断增

强,被誉为“现代油藏工程”。

本课程是本专业同学在大学期间学习用计算机手段解决油气田开发问题的唯一的一门

课程,也是所有课程中综合性最强的课程之一。

本课程虽没有被列入必修课,但每个同学都应该修此课程。一个石油工程专业的大学生

不懂得油藏数值模拟,在今后的工作和学习中就缺少三大支柱研究手段之一,且是非常重要

的一个,这将是一个很大的缺憾。

§1.2 油藏数值模拟研究的主要内容

⎪⎪⎪

⎪⎪⎪

⎩⎨⎧

计算软件编制

线性方程组求解

线性化

离散化数值模型建立

数学模型建立

理论方法

⎪⎪⎪

⎪⎪⎪

§1.3 课程的特点、目的和要求

一、特点

(1)综合性强,需要宽厚的基础理论和专业知识,同时以方法为主线、应用为目的,

理论、方法和应用统一形成完整的有机体系。

(2)需较多的先修课程,故一般在最后学习本课程。数学类:微分方程、线性代数,

专业类:石油地质、油藏物理、渗流力学、油藏工程和采油工程等;计算机类:计算机原理 、

程序语言等。

二、目的

(1)为了进一步利用数值手段研究复杂油气田开发问题打下基础——理论方法。

(2)为从事实际工作做准备——数模应用

三、课程要求

(1)了解掌握油藏数模的基本原理和方法

(2)能够编制简单的渗流计算程序

(3)掌握实际油藏数模及软件应用的方法步骤

(4)平时作业约 10 题,两个大作业:调试两相流程序和用现有软件进行实例模拟计算

Page 6: 油藏数值模拟基础

第二章 油藏渗流的基本数学模型

⎪⎩

⎪⎨

油藏内各种力的作用

质、各向异性)性质油藏介质(形状、非均

换流体相态组合及物质交

油藏数学模型考虑因素

⎩⎨⎧定解条件

微分方程(组)数学模型的组成及要求

§2.1 数学模型的分类

一、按流体相态数目分类

单相、两相、三相流模型

二、按油藏介质空间分类

1.零维模型:油藏压力、饱和度等量不随任何空间变量变化,如油藏工程中物质平衡法 ;

2.一维模型:平行流(x)、径向对称流(r);

3.二维模型:水平面内流动 x-y,垂直面内流动 x-z,柱状对称流动 r-z;4.三维模型:实际油藏流动(x-y-z 或 r-θ-z)。

三、按模型使用功能分类

1.气藏模型:描述天然气藏及其运动(开发)过程的数学模型;

2.黑油模型:油气水三相三组分,气油间可发生溶解和分离,气水和油水间无交换;

3.多组分模型:多组分三相模型,各相间有交换,如凝析气藏模型、聚合物驱模型;

4.其它:热采模型(考虑温度变化、热能传递),

聚合物驱(流体粘度发生变换),

多重介质模型(裂缝和孔隙),

各向异性模型(渗流介质的复杂性、张量渗透率);

总之,并没有严格统一的分类标准,约定俗成而已。

§2.2 建立数学模型的步骤

一、确定所要求解的问题(未知量 P、S)

二、问题满足的(隐含)条件:往往可以简化问题

三、基本方程和物理原理

四、定解条件

运动方程(达西定律)

(非线性二项式)

状态方程(流体)

(孔隙)

辅助方程(流动、参量、)

化学、物理)

质量守恒方程

能量守恒方程

渗流偏微

分方程组

Page 7: 油藏数值模拟基础

五、量纲: 如达西定律 PKV ∇=µ

六、适用范围

七、适定性

§2.3.3.3.3 单相流的数学模型

推导单相流体三维渗流方程(数学模型),可压和微可压,恒等温。未知量(只有一个)

P,运动方程和连续性方程、状态方程、无能量方程。

一、单相可压流体三维渗流

连续性方程

(1))()()()( ρφρρρt

Vz

Vy

Vx zyx ∂

∂=

∂∂

−∂∂

−∂∂

运动方程(达西定律)

(2)

⎪⎪⎪

⎪⎪⎪

∂∂

−∂∂

−=

∂∂

−∂∂

−=

∂∂

−∂∂

−=

)(

)(

)(

zDg

zpkV

yDg

ypkV

xDg

xpkV

z

y

x

ρµ

ρµ

ρµ

两方程联立,得

(3) )()]([

)]([)]([

ρφρµ

ρ

ρµ

ρρµ

ρ

tzDg

zpk

z

yDg

ypk

yxDg

xpk

x

∂∂

=∂∂

−∂∂

∂∂

+

∂∂

−∂∂

∂∂

+∂∂

−∂∂

∂∂

——渗流控制方程,D 为深度,垂直向下增加;g 重力加速度。

当 Z 垂直向下, Z 垂直向上, ;同时有1=∂∂zD 1−=

∂∂zD 0=

∂∂

=∂∂

yD

xD

用 Hamilton 算子形式并考虑注入项写成:

(4))()]([ ρφρµρ

tqDgpk

∂∂

=+∇−∇⋅∇

q 注入项,注入为正,采出时为负,流体质量/(岩石体积*单位时间)。

引入体积系数:R

SC

SC

R

VVB

ρρ

==

则得 (5))()]([Bt

qDgpBk

∂∂

=+∇ρ−∇µ

⋅∇

——体积注入项,流体体积////(单位岩石体积·单位时间)。sc

vqqρ

=

二、单相微可压流体三维渗流

对于微可压流体有状态方程(恒温)

Page 8: 油藏数值模拟基础

压缩系数(常数): (6)TPPV

VC

∂∂

=∂∂

−=ρ

ρ00

11

(4)式右端变形(不考虑岩石压缩性)

(7)tPC

tp

ptt ∂∂

=∂∂⋅

∂∂

=∂∂

=∂∂

φρρ

φρ

φρφ )(

又因为:

xxPk

xPk

xxPk

x ∂∂

∂∂

+∂∂

∂∂

=∂∂

∂∂ ρ

µµρ

µρ )()(

xP

PxPk

xPk

x ∂∂

∂∂

∂∂

+∂∂

∂∂

µµρ )(

2)()(xPCk

xPk

x ∂∂

+∂∂

∂∂

=µµ

ρ

舍去小量 C 后得到: (8))()(xPk

xxPk

x o ∂∂

∂∂

=∂∂

∂∂

µρ

µρ

同理可得: )()(yPk

yyPk

y o ∂∂

∂∂

=∂∂

∂∂

µρ

µρ

)()(zPk

zzPk

z o ∂∂

∂∂

=∂∂

∂∂

µρ

µρ

(8’))()()( 2 DkgDgkgDgkoo ∇⋅∇=∇⋅∇=∇⋅∇

µρ

µρ

ρρµρ

代回(3)和(4)式,并采用直角坐标形式得:

(9) 

tPC

zDg

zpk

z

yDg

ypk

yxDg

xpk

x

oo

oooo

∂∂

=∂∂

−∂∂

∂∂

+

∂∂

−∂∂

∂∂

+∂∂

−∂∂

∂∂

φρµ

ρ

ρµ

ρρµ

ρ

)]([

)]([)]([

对于各向异性介质情况,取渗透率主轴方向坐标系:

(10)

 tPC

zDg

zpk

z

yDg

ypk

yxDg

xpk

x

Oz

Oy

Ox

∂∂

=∂∂

−∂∂

∂∂

+

∂∂

−∂∂

∂∂

+∂∂

−∂∂

∂∂

φρµ

ρ

ρµ

ρρµ

ρ

)]([

)]([)]([

各向异性渗流一般形式的数学模型另外叙述。

(9)式写成算子形式: (11)tPCqDgp

Bk

V ∂∂

=+∇−∇⋅∇ φρµ

)]([ 0

——模型控制方程,单相、微可压,各向同性介质,恒等温,单一未知量 p 。

假设为均质地层, 为常数(μ随 P微小变化可忽略),则由(9),并考虑到µ/k0)( 2 =∇=∇⋅∇ DgDg oo ρρ

得 (12)tP

kCkqP v ∂∂

=+∇φµ

µ /2

——均质各向同性地层单相微可压流体恒等温渗流模型方程。

(9)式在柱坐标系(r,θ,z)中表示为:

Page 9: 油藏数值模拟基础

(13)tp

kCkq

zpp

rrpr

rr v ∂∂

=+∂∂

+∂∂

+∂∂

∂∂ φµ

µθ

/1)(12

2

2

2

2

平面轴对称径向流动方程:

(14)tp

kC

rpr

rr ∂∂

=∂∂

∂∂ φµ)(1

§2.4.4.4.4 两相流的数学模型

两相流体互不交换,各向同性介质,皆可压。求压力和饱和度分布。

一、一维油、水两相可压流体渗流模型

连续性方程:

如上图所示。在渗流场(油藏)内取一微元体积,长为Δx ,左端面积 A(x) ,右端面

积 A(x+Δx),平均面积为 。左端油水流入速度设为 和 ,右端油水流出速度A )(xVO )(xVw分别为 和 。油水密度为 和 ,相渗为 和 ,再取一),( txxVO ∆+ ),( txxVw ∆+ Oρ wρ rok rwk任意微元Δt。

下面以油相为例建立连续性方程。在Δt时间内流入流出单元体的油质量差为:

tAVtAVtxxOOtxOO ∆⋅−∆⋅

∆+ ),(),(ρρ

(1)ttxxAVtxAV OOOO ∆∆+−= )],(),([ ρρ

考虑注入项: (*)tAxqO ∆∆

Δt 时间内,微元体内油的质量增量为:

(2)xAtsxAtts oooo ∆⋅⋅−∆⋅⋅∆+ )()( φρφρ

据守恒原理得(1)+(*)=(2),两端同除以 ΔxΔt,得:

At

tsttsx

txAVtxxAVAq ooooOOOOo ∆

−∆+=

∆−∆+

−)()(),(),( φρφρρρ

取极限 得:0,0 →∆→∆ tx

(3)tsA

xVAAq oooo

o ∂∂

=∂

∂−

)()( φρρ

同理得水相连续方程:

(4)tsA

xVAAq wwww

w ∂∂

=∂

∂ )()( φρρ

达西公式:

A(x)),(,),(,txVtxV

wxw

oxo

ρρ

AA

A(x+Δx)

Δx kro,krw

),(,),(,txxVtxxV

wxw

oxo

∆+∆+

ρρ

Page 10: 油藏数值模拟基础

(5)

⎪⎪⎩

⎪⎪⎨

∂∂

−∂∂•

−=

∂∂

−∂∂•

−=

)(

)(

xDg

xPkkV

XDg

xPkkV

ow

w

rww

oo

o

roo

ρµ

ρµ

将(3)、( 4)代入(5),得:

)()]([ ooooo

o

roo st

AAqxDg

xPkkA

xφρρ

µρ

∂∂

=+∂∂

−∂∂•

∂∂

(6))()]([ wwowwow

w

rww st

AAqxDg

xPkkA

xφρρ

µρ

∂∂

=+∂∂

−∂∂•

∂∂

——油水两相可压缩流体在一维可压介质中的恒温渗流控制方程。

同上节步骤,(6)用体积系数表示为:

(7)

)()]([

)()]([

w

wwvwo

w

ww

rw

o

oovo

o

oo

ro

Bs

tAAq

xDg

xP

BkAk

x

Bs

tAAq

xDg

xP

BkAk

ρµ

φρ

µ

∂∂

=+∂∂

−∂∂•

∂∂

∂∂

=+∂∂

−∂∂•

∂∂

(6)中两个方程四个未知数,需两个辅助方程:

(8)1=+ wo SS(9)wocow PPP −=

二、二维气水两相可压缩渗流数学模型

连续性方程:

如上图所示。在渗流场内取体积

微元,长 ,宽 ,变高 ,x∆ y∆ ),( yxH

均高 。流动由前到后,由左到右,H即顺 x、y轴正向流动。取时间微元 。t∆以气相为例建立连续方程。

时间内气相在 x 方向两个面纯流入的质量为:t∆(1)txyyVHxtyVH gyggyg ∆∆∆+−∆∆ )()( ρρ

y 方向两个面纯流入的质量为:

(2)tyxxVHtyxVH gxggxg ∆∆∆+−∆∆ )()( ρρ

考虑注入质量为: (*)tyxHqg ∆∆∆时间内,由于密度、饱和度等增加,微元体气相质量增加量为:t∆

(3)yxHtSyxHttS gggg ∆∆−∆∆•∆+ )()( φρφρ由质量守恒原理得(1)+(2)+(*)=(3),两边同除以ΔxΔyΔt,然后取极限Δx->0,Δy->0 和Δt

->0,得:

(4)ts

HyVH

xVH

Hq gggyggxgg ∂

∂=

∂−

∂−

)()()( φρρρ

——气相连续性方程。同理可得水相连续方程:

,VVVVgygygygy(y)(y)(y)(y)gρ,VVVVwywywywy(y(y(y(y)wρ

,VVVVgxgxgxgx(x)(x)(x)(x)gρ

,VVVVwxwxwxwx(x)(x)(x)(x)wρ

VVVVgygygygy(y+(y+(y+(y+Δy)y)y)y)VVVVgygygygy(y+(y+(y+(y+Δy)y)y)y)

VVVVgxgxgxgx(x+(x+(x+(x+Δx)x)x)x)

VVVVwwwwxxxx(x+(x+(x+(x+Δx)x)x)x)

H(x,y)H(x,y)H(x,y)H(x,y)

y

xxxx

Page 11: 油藏数值模拟基础

(5)tsH

yVH

xVHHq wwwywwxw

w ∂∂

=∂

∂−

∂∂

−)()()( φρρρ

写成哈密顿算子形式:

(4’)ts

HVH gggg ∂

∂=⋅∇−

)()(

φρρ�

(5’)tsHVH ww

ww ∂∂

=⋅∇−)(

)(φρ

ρ�

考虑重力作用的达西定律:

(6))( DgPkk

V ggg

rgg ∇−∇

•−= ρ

µ

(7))( DgPkkV www

rww ∇−∇

•−= ρ

µ

将(6)、( 7)分别代入(4’)和(5’),得

(8)

⎪⎪⎩

⎪⎪⎨

∂∂

=+∇−∇⋅∇

∂∂

=+∇−∇⋅∇

)()]([

)()]([

wwwvwwww

rw

gggvgggg

rg

st

HHqDgPBHkk

st

HHqDgPBHkk

φρρµ

φρρµ

体积系数 B 代替密度 ,( 8)式变为:ρ

(9)

⎪⎪⎩

⎪⎪⎨

∂∂

=+∇−∇⋅∇

∂∂

=+∇−∇⋅∇

)()]([

)()]([

w

wwvww

ww

rw

g

ggvgg

gg

rg

Bs

tHHqDgP

BHkk

Bs

tHHqDgP

BHkk

φρ

µ

φρ

µ

(8)或(9)式中两个方程四个未知量,求解时需辅助方程:

(10)1=+ wo SS(11)wgcgw PPP −=

注:对于油、水两相渗流,以完全相同的步骤和原理便可得到其模型方程:只要把 (8)—(11)式中的下标 g改为 o即可。

§2.5 渗流数学方程的通式

分析对比前面几种渗流流动的控制方程,可以看出,不管是油、气、水,还是一、二、

三维,都可用统一形式表示。设几何因子: ,采用下标符

⎪⎩

⎪⎨

⎧=

1    三维 

  二维

   一维

),()(

),,( yxHxA

zyxα

号 l表示流体的相:l=o,g,w分别表示油气水。

连续性方程为:

(1)tsV ll

ll ∂∂

=∇−)(

)(φρ

ααρ�

Page 12: 油藏数值模拟基础

达西定律为: (2))( DgPkkV lll

rll ∇−∇−= ρ

µ

(1)和(2)式联立,考虑注入项得:

(3)tsqDgPkk ll

lll

rll

∂∂

=+∇−∇⋅∇)(

)]([φρ

ααρµ

αρ

——可压(流体)渗流通式:

用体积系数代替密度项, 代入(3)式:llscl B/ρρ =

(4))()]([l

llvll

ll

rll

Bs

tqDgP

Bkk φ

ααρµ

α∂∂

=+∇−∇⋅∇

为单位体积岩石中单位时间注入的流体在地面条件下的体积。lscllv qq ρ/=� 建立渗流模型及数模的目的,是研究油藏内(各种流体)油、气、水等组分(物质成分 )

的分布及其变化情况。

� 到此为止,渗流方程都是以流体的相(液、气、固)为对象建立起来的,相是物质运动

变化时的形态,可互溶的物质同为一相。

§2.6.6.6.6 多组分模型

在前面所研究的情况下,每一种物质(油、气、水)只存在于某一种相态中(或以单一

相态形式存在运动),每一种流体相中只包含一种物质。因此需研究某一种物质(组分)在

油藏中的分布,只需观察研究它所在的相的运动分布即可,{流体的运动跟相态(体积)直

接相关,从相态出发建立渗流模型,比从组分(质量)出发更简单方便。}但是,实际油藏内的碳氢化合物是由多种化学成分组成的。每一种组分都可能以多种相

态存在和运动,并在不同相间发生质量交换;同时,每一相内都可能含有多种组分,且各组

分的比例可能发生变化。此时,无法通过直接研究相的运动来反映组分的分布变化过程,必

须由相的研究转为组分研究,由建立相物质平衡方程转为以组分为对象建立物质平衡方程。

问题:组分在油藏内的分布?

一、组分渗流控制方程

假设有油、气、水三相,N 种组分。任选一种组分 i,它在油、气、水中的质量分量分

别为: 和 。下面考察其运动分布模型。igio CC 、 iwC

连续性方程:

依前面同样方法,取体积微元,则油、气、水三相流速分别为:

TLVVV wgO /,, 3    量纲���

各相质量流速(由流动传递质量的速度)

; 量纲M/TwwggOO VVV���

ρρρ ,,组分 i的质量流速为:

(1)wwoiwggigOoioim VCVCVCV����

ρρρ ++=⎥⎥⎥

⎢⎢⎢

ρ+ρ+ρ

ρ+ρ+ρ

ρ+ρ+ρ

=

wzwoiwgzgigozoio

wywoiwgygigoyoio

wxwoiwgxgigoxoio

VCVCVCVCVCVC

VCVCVC

Page 13: 油藏数值模拟基础

组分 i的质量注入速度为: ,量纲M/T (2)iq组分 i在孔隙体积微元中的质量为:

(3))( wwiwggigooio SCSCSC ρρρφ ++

与§2.6 中步骤完全相同,只需用(1)和(3)分别代替 ,即得:llll SV φρρ 和�

(4))]([

)]([

wwoiwggigOoio

iwwoiwggigOoio

SCSCSCt

qVCVCVC

ρρρφα

αρρρα

++∂∂

=

+++⋅∇−���

——连续性方程。

达西定律:

(5)

⎪⎪⎪⎪

⎪⎪⎪⎪

∇−∇−=

∇−∇−=

∇−∇−=

)(

)(

)(

DgPkkV

DgPkk

V

DgPkkV

www

rww

ggg

rgg

ooo

roo

ρµ

ρµ

ρµ

(5)代入(4),得:

(6)

)]([

)](

)()([

wwiwggigooio

iwww

rwwiw

ggg

rggigoo

o

rooio

SCSCSCt

qDgPkkC

DgPkkC

DgPkkC

ρρρφα

αρµρα

ρµ

ραρ

µρα

++∂∂

=

+∇−∇+

∇−∇+∇−∇⋅∇

将密度项换成体积系数 B,得

(7)

)]///([

)](

)()([

wwwsciwgggscigOooscio

lsclvwwww

rwwsciw

gggg

rggscigoo

oo

rooscio

BSCBSCBSC

qDgPB

kkC

DgPB

kkCDgP

BkkC

ρρρφα

ραρµ

ρα

ρµ

ραρ

µρα

++∂∂

=

+∇−∇+

∇−∇+∇−∇⋅∇

二、辅助方程及模型方程组

(6)式方程共有 N个,但未知数(参变量)有 3N+15 个:

rwrgrowgowgowgOwgOiwigio kkkSSSPPPCCC ,.,,,,,,;,,,,,,,, µµµρρρ故需另外 2N+15 个辅助方程。

2个: (8)

⎪⎩

⎪⎨

+=+==−

==−

==−

cowcgowgowgocgwwg

wgocwowo

wgocgoog

PPsssfsssfPPPsssfPPPsssfPPP

),,(),,(*),,(

),,(

21

2

1

1 个: (9)1=++ WgO SSS

Page 14: 油藏数值模拟基础

3 个: (10)∑∑∑===

===n

iiw

n

iig

n

iio CCC

111

111    ,  ,

3 个: (11)

⎪⎩

⎪⎨

=

==

),(

),(),(

iwoww

igogg

ioooo

CPCPCP

ρρ

ρρρρ

3 个:

⎪⎩

⎪⎨

=

==

),(

),(),(

iwoww

igogg

ioooo

CPCPCP

µµ

µµµµ

3 个:

⎪⎩

⎪⎨

=

=

=

),,(),,(),,(

wgoworw

wgorgrg

wgororo

ssskkssskkssskk

2N 个:

⎪⎩

⎪⎨

⋅==

=

=

iowigoigwiwig

iwiowoiowiwio

ioigogsigoioig

kkkCCCCPPTkCCCCPPTkCC

/

),,,,(/),,,,(/

§2.7 黑油模型

一、概念

“黑油”指的是非挥发性原油,是相对于油质较轻的挥发性油而言的,其油质较重,

色泽较深,故称之为黑油。黑油模型是针对黑油油藏的特点(作了一些假设后)建立的渗

流数学模型,由此建立的数值模型和计算机软件也称为黑油模型。其特点为:

(1)油藏烃类只含油、气两个组分,油组分是在地面标准状况下经差异分离后残存的

液体,气组分是指全部分离出来的烃类气体,在油藏中以自由气和溶解气形式存在。

(2)油藏中最多只有油、气、水三相。

(3)水相与油相、水相与气相间无组分(物质)交换,油相与气相间存在气组分交换。

因为气组分随着压力的升降,既可从油相分离到气相中,也可从气相溶解到油相中,油、水

不互溶,气在水中的微量溶解忽略不计。

另外,还有一些通用的假设,如等温、线性、瞬间溶解和溢出等。

黑油模型是目前油藏模拟中发展最完善、最成熟的模型及软件系统,也是应用最为广泛

的模型。实际上所有常规油田的开发问题,都可以用它来进行模拟。

二、模型方程

黑油模型可看作多组分模型的一种,且较简单的一种。只要将黑油模型的假设条件代入

组分模型就可以得到黑油模型的方程(组)。设质量分数 Cio,Cig,Ciw,i=O,W,G。

1、偏微分方程

油组分方程:

Page 15: 油藏数值模拟基础

(1)

)]([

)](

)()([

wwscOwggscOgooscOo

owww

rwwscOw

ggg

rggscOgoo

o

rooscOo

SCSCSCt

qDgPkkC

DgPkkC

DgPkkC

ρρρφα

αρµρα

ρµρα

ρµρα

++∂∂

=

+∇−∇+

∇−∇+∇−∇⋅∇

2、质量分数

油相: 0,, ==+

==+

= wooo

Gscso

GO

GGo

oo

osc

GO

OOo G

BR

WWWC

BWWWC

ρρ

ρρ

气相: (2)0,1,0 === WgGgOg CCC水相: 1,0,0 === WwGwOw CCC

(2)式中油相分数推导:

OOOSCOG

OSCOSCOGSCSOOSCG

BVWWVWRVW

ρρρ

=+== ,

相除即得(2)式中 。ioC将(2)式代入(1)式得油组分偏微分方程:

(3)O

ooscooo

oo

rlosc

Bs

tqDgP

Bkk )(

)]([φρ

∂∂

α=α+∇ρ−∇µ

αρ⋅∇

同理可得气相和水相方程。将(3)式及气、水相方程中密度项改用体积系数 B表示。

⎪⎪⎪⎪

⎪⎪⎪⎪

∂∂

=+∇−∇⋅∇

+∂∂

=+∇−∇+∇−∇⋅∇

∂∂

=+∇−∇⋅∇

w

wwvww

ww

rw

o

Oso

g

gGVoo

oo

rosogg

gg

rg

O

oovoo

oo

ro

Bs

tqDgP

Bkk

BSR

BS

tqDgP

BkkRDgP

Bkk

Bs

tqDgP

Bkk

)()]([

)]([)]()([

)()]([

φααρ

µα

φααρµ

αρ

µα

φααρ

µα

……………………………… (4)

注:方程(4)中用 B的好处是,右端未知量无量纲,方程整体量纲为 1/T 。

(4)式是黑油模型控制方程,由于已经消掉 3N(9 个)质量分数,方程中未知是和参

变是已由 3N+15(24)个降为 15个,还需要另外 12 个辅助方程。

; l=o,w,g

⎪⎪⎪

⎪⎪⎪

⎧ =∑

      3个

      3个   

      3个

      2个

   1个

rl

l

l

c

l

k

PS

µ

ρ

1

§2.8 定解条件

实际问题完整的数学模型包括方程组和定解条件。前者描述流体运动规律,后者说明实

Page 16: 油藏数值模拟基础

际问题存在发生的条件。定解条件包括空间边界条件和时间边界初始条件,前者说明流场(油

藏)边界的(位置形状等)特征及物理变是所受约束条件;后者说明流动从何时开始及物理

量所处的状态。

定解条件即是约束条件,流动中的任一个限制、约束条件都构成一个边界,没有约束条

件的边界是没有意义的,等于不存在。

一、(空间)边界条件

1. 外边界:定压、定流量、混合

定压:P , 已知函数),,(11zyxf=Γ

定流量:V ),,('22

zyxf=Γ

因 ),,('2 zyxf

KnP

nPkVn

µµ

=∂∂

⇒∂∂

=

记作: , 已知函数。 封闭边界:),,(22zyxf

nP

=∂∂

Γ 02=

∂∂

ΓnP

混合条件: ,已知函数),,()(3

zyxfcPnP

=+∂∂

Γ

2. 井边界:油气藏有两类边界条件。

一类是外边界即油气藏构造边界,另一类是油气井边界(尽管井筒尺度很小,但确是整

个油气藏运动变化的动力源泉,因此是非常重要但又较难处理的边界。

(1)给出井底压力:P(r ,t)=w )(1 tϕ定压井 : P(r ,t)= 常数w

注:在求解析解时,定井压与变井压难度相差很大,后者可能无法解出;但在数模处理时没

什么不同,实际生产跟数模更相近些,且不可能做到严格定压。

(2)给出井产量:( ) )(,

2 trtrPr

wr ϕ=∂

定产井: 常数。 若关井: 0。=)(2 tϕ =)(2 tϕ二、初始条件

某一时刻(t=0)油藏内的压力和饱和度分布

;),,(),,,( 10 zyxPtzyxP t ==

。),,(),,,( 10 zyxStzyxS t ==

Page 17: 油藏数值模拟基础

第三章 有限差分与差分方程

§3.1 离散化概念

油藏数值模拟方法的最重要特征就是离散化。数学物理问题只有经过离散化才能利用计

算机求解。

一、概念:离散化就是将连续的整体(物理量)处理成若干不连续单元的集合。

数学模型的离散化定义为:

(1) 将求解区域网格化,并按一定顺序编号;

(2) 用未知量(物理量)在各网格上的局部平均值代替未知量在求解区域上的连续函数

分布,用表示各网格未知量关系的线性代数方程代替微分方程和边条件,从而把数

学模型变为数值模型。

(3) 确立数值模型的求解方法步骤。

二、离散化的一般要求

(1) 收敛:数值模型与数学模型同解;

(2) 精度:模型都有误差,但必须能控制在一定范围;

(3) 简单:模型构造简单,程序方便易用;

§3.2 有限差分方法

一、差分网格系统

一维空间网格如图 3.2.1,步长为 ,x∆第 i个网格点表示为 ,相应的ii xix ∆⋅=未知量记作: )( ii xPP =

带时间变量的网格如图 3.2.1, 为时间t∆

步长,第 n时间步表示为 。相应变tntn ∆⋅=量为 。)( n

n tPP =二维空间网格如图 3.2.2。网格节点

位置用(i,j)表示。二维不稳定问题中的

网格变量表示为:

, 。),,(, njinji tyxPP = ),,(, nji

nji tyxSS =

块中心与点中心网格:

点中心网格就是用网格节点作为未知量

求解的位置点;如图 3.2.2。

块中心网格就是用网格块中心作为未知

量求解的位置点。如图 3.2.3。

i-1i-1i-1i-1 iiii iiii+1+1+1+1

xxxxiiii xxxx

j+1

j-1

jyj Pij

图 3.2.2

y

0000 1111 2222 i-1i-1i-1i-1 iiii i+1i+1i+1i+1 xxxx

t

Δtnnnn

n+1n+1n+1n+1

n-1n-1n-1n-1

图 3.2.1

Page 18: 油藏数值模拟基础

二、差商

1. 一阶差商

如图 3.2.4, 将 P(x)在 x 点微商i ixxP∂∂

表示为离散点上 P (i=1,…,n)的线性函数。i

首先把 展开成 x 点泰勒)( 11 ++ = ii xPP i

级数:

(1)

⋅⋅⋅+∆

+

∆+∆+=+

)x(P!3)x(

)x(P!2)x()x(xPPP

i'''

3

i''

2

i'

i1i

⋅⋅⋅−∆

−∆

−∆−

=⇒ + )(!3)()(

!2)( '''

2''1'

iiii

i xPxxPxxPPxP

(2)xPPxP

xP ii

ixx i ∆−

==∂∂

⇒ +=

1' )(

这就是函数 P 在 点的一阶向前差商。截断误差为O( ),跟网格步长有关。ix x∆称为向前差分。iii PPP −=∆ +1

若从 来展开泰勒级数:)( 11 −− = ii xPP

(3)⋅⋅⋅+∆

−∆

+∆−=− )(!3)()(

!2)()( '''

3''

2'

1 iiiii xPxxPxxxPPP

)()( 1' xOxPPxP ii

i ∆+∆−

=⇒ −

(4)xPP

xP ii

xi ∆−

=∂∂

⇒ −1

这是函数 P在 点的一阶向后差商。截断误差O( ), 为向后差分。ix x∆ 1iii PPP −−=∆

(1)-(3)得中心商差: (5)x2ΔPP

xP 1i1i

x i

−+ −=

∂∂

其中 为中心差分。1i1ii PPP −+ −=∆对于时间变量 t ,同样有:

——向前差商tPP

tP nn

tn ∆−

=∂∂ +1

——向后差商tPP

tP nn

tn ∆−

=∂∂ −1

——中心差商tPP

tP nn

tn ∆−

=∂∂ −+

2

11

时间空间差商标识: , P在(i,n)点对 x的向前差商;xPP

xP i

nin

tx ni ∆−

=∂∂ +1

),(

, P在(i,n)点对 t的向前差商。tPP

tP i

ni

n

tx ni ∆−

=∂∂ +1

),(

yjjjj----1111

PPPPijijijij

yjjjj+1+1+1+1

yjjjj

xxxxiiii----1111 xxxxiiii xxxxiiii+1+1+1+1xxxx

y

图 3.2.3

i-1 ii+1

Pi-1 Pi Pi+1xxxx

图 3.2.4

Page 19: 油藏数值模拟基础

2.二阶差商: 的离散形式

ixxP2

2

∂∂

(1)+(3)得:

...)x(P!4)x(2)x("PxP2PP i

)4(4

i2

i1i1i +∆

+∆+=+ −+

=> , 截断误差为二阶小量(Δx)2。])x[()x(

PP2P)x("P 2

21ii1i

i ∆+∆

+−= −+ O

=> 211

2

2

)(2x

PPPxP iii

xi∆

+−=

∂∂ −+

这就是 P对 x在 xi点的二阶差商。

二维情况表示形式:

在 (xi,yj)点上有: 2,1,,1

),(2

2

)(2x

PPPxP jijiji

yx ji∆

+−=

∂∂ −+

三维空间并时间变量:

在 (xi,yj,zk,tn)点上有: 2,,1,,,,1

),,,(2

2

)(2x

PPPxP n

kjinkji

nkji

nkji ∆

+−=

∂∂ −+

§3.3 差分方程的建立

上节介绍了差分和差商的概念及其构造方法,本节以单相微可压缩流体渗流方程为例,

说明差分方程的建立方法。

一、一维等距网格的差分格式

等距网格:同一空间变量 x、y、z或时间变量 t的各网格步长都相等。

一维渗流方程: (1)CkE

tP

xPE

φµ=

∂∂

=∂∂ ,2

2

——抛物型偏微分方程。

1.显式差分格式

将 在(i,n)点的二阶差商和 在(i,n) 点的一阶向前差商代入方程(1),得此方2

2

xP

∂∂

tP∂∂

程在任一点(i,n)处的差分方程:

(2)tPP

xPPPE

ni

ni

ni

ni

ni

∆−

=∆

+− +−+

1

211

)(2

整理,得:

(3)2

n1i

n1i

ni

1ni

x/tE),PP(P)21(P

∆∆=δ

+δ+δ−= −++   

这是一个线性代数方程。每一个未知节点都对应这样一个方程。方程中各物理量的关系

如图所示。假设第 n时间步的值已知,则方程中只有一个未知量 Pin+1 ,可以直接计算得到。

(i-1.n) (i,n) (i+1,n)

图 3.3.1

(i,n+1)

Page 20: 油藏数值模拟基础

因此称作显式差分方程。在 n=0 即 t=0 的初值给定后,便可利用显式差分方程逐点逐层对

整个问题进行计算。R=O( )。2)( xt ∆+∆2.隐式差分格式

将任意网格点(i,n+1)处 的二阶差商和 的一阶向后差商代入(1)式,得其在2

2

xP

∂∂

tP∂∂

(i,n+1)处的隐式差分方程:

(4)tPP

xPPPE

ni

ni

ni

ni

ni

∆−

=∆

+− ++−

+++

1

2

11

111

)(2

整理,得:

(5)2

ni

1n1i

1n1i

1ni

x/tE

,P)PP(P)21(

∆∆=δ

=+δ−δ+ ++

+−

+

 

 

各物理量关系如图 3.3.2,未知量须联立求解,故为隐式差分格式。R=O( )。2)( xt ∆+∆矩阵形式线性方程组:

将(5)写成一般形式( 记 ai=1+2 , bi=ci=- , di=Pin):δ δ

ciPi-1+aiPi+biPi+1=di (6)

假设未知量网格数为 4,则逐点写出(6)式,得:

a1P1+b1P2 =d1+c1P0

c2P1+a2P2+b2P3 =d2

c3P2+a3P3+b3P4 =d3

(7)

c4P3+a4P4 =d4+b4P5

很容易将(7)式写成矩阵形式:

⎥⎥⎥⎥

⎢⎢⎢⎢

44

333

222

11

acbac

bacba

⎥⎥⎥⎥

⎢⎢⎢⎢

+

+

=

⎥⎥⎥⎥

⎢⎢⎢⎢

544

3

2

011

4

3

2

1 c

PbdddPd

PPPP

或记作:

dPA =

, ,

⎥⎥⎥⎥

⎢⎢⎢⎢

=

44

333

222

11

acbac

bacba

A⎥⎥⎥⎥

⎢⎢⎢⎢

=

4

3

2

1

PPPP

P⎥⎥⎥⎥

⎢⎢⎢⎢

=

4

3

2

1

dddd

d

为三对角系数矩阵,一维渗流差分方程共性。A3. 其它差分格式举例

以上的显式和稳式格式是最基本格式,另还有各种为了特殊用途设计的差分格式。

Crank--Nicolson是一个较典型的格式。它的构造思想是将显式和隐式格式相加取平均,以

期将时间向前和向后差分引起的误差抵消或尽量减少。(2)+(4)得:

(i,n)

(i-1,n+1) (i,n+1) (i+1,n+1)

图 3.3.2

Page 21: 油藏数值模拟基础

(9)t

PP)x(

PP2P2E

)x(PP2P

2E n

i1n

i2

n1i

ni

n1i

2

1n1i

1ni

1n1i

∆−

=∆

+−+

∆+− +

−++−

+++

整理后得:

(10)n

1in

in

1i1n

1i1n

i1n

1i P2

P)1(P2

P2

P)1(P2 −+

++

+++

δ−−δ+

δ−=

δ++δ−

δ

其中 ,隐式差分格式,三对角系数矩阵。R=O 比显式(3)2)/( xtE ∆∆=δ ( )[ ],)( 22 xt ∆+∆和稳式(5)都小。各节点位置关系如图 3.3.3 所示。

二、二维规则网格的差分格式

规则网格即等距网格。

二维单相微可压流体渗流方程:

(11)c

KE,tP

E1

yP

xP

2

2

2

2

φµ=

∂∂

=∂∂

+∂∂

这是一个二维抛物型方程。

1.显式差分格式

方程(11)在任意网格(i,j,n)处的差分方程(时间向前差分):

(12)tPP

EyPPP

xPPP n

jinji

nji

nji

nji

nji

nji

nji

−=

+−+

+− +−+−+ ,

1,

21,,1,

2,1,,1 1

)(2

)(2

令 ,并整理(12)式得:ytE

xtE

∆∆

=∆∆

= βα ,

( )( )n

1j,inj,i

n1j,i

nj,1i

nj,i

nj,1i

nj,i

1nj,i

PP2P

PP2PPP

−+

−++

+−β+

+−α+=

各量位置如图 3.3.4 所示,每个方程只含一个未知量,

可直接求解,显式格式。R=O ( )[ ]22 )( yxt ∆+∆+∆2.隐式格式

将 P(x,y,t)在任意点(xi,yj,tn)上对 x和 y的二阶差商及对 t的向后差商代入(11),得

到(11)式在任一点(i,j,n)上的差分方程:

(14)tPP

EyPPP

xPPP n

jinji

nji

nji

nji

nji

nji

nji

−=

+−+

+− ++−

+++

+−

+++ ,

1,

2

11,

1,

11,

2

1,1

1,

1,1 1

)(2

)(2

记: 并整理(14)得:22 )(,

)( ytE

xtE

∆∆

=∆∆

= βα

)15(P

PPP)122(PPnj,i

1n1j.i

1nj.1i

1nj.i

1nj.1i

1n1j.i

=

β−α−+β+α+α−β− ++

++

+++

+−

——五个未知量,联立求解,隐式格式,

各节点关系如图 3.3.5所示。

将(15)写成一般形式:

(16)nij

njiij

njiij

njiij

njiij

njiij fPdPbPePaPc =++++ +

++

+++

−+−

11.

1.1

1.

1.1

11.

假设有一求解区域,未知量网格如

图 3.3.6所示。块中心网格,自然排序。

(i-1,n+1) (i,n+1) (i+1,n+1)

(i-1,n) (i,n) (i+1,n)

图 3.3.3

(17) (18) (19) (20)

(13) (14) (15) (16)

(9) (10) (11) (12)

(5) (6) (7) (8)

(1) (2) (3) (4)

图 3.3.6

n+1n+1n+1n+1

nnnnn

jiP ,1−

1,+njiP

njiP 1, +

njiP ,1−

njiP ,

njiP ,1+

图 3.3.4

nj,iP

11,

++

njiP

1,+njiP

1,1+

−njiP

njiP ,1−

11,

+−

njiP图 3.3.5

Page 22: 油藏数值模拟基础

对于每个网格,分别写出方程(16):

(1): =1

)5(111

)2(111

)1(11+++ ++ nnn PdPbPe           n

11f

(2): =1)(1

1)3(21

1)2(21

1)1(21

++++ +++ nnnn PdPbPePa 62       n21f

(3): 1)(11

1)(1

1)(1

1)(1

++++ +++ nnnn PdPbPePa 7433323          

=n31f

⋮ ⋮⋮⋮⋮⋮⋮⋮ ⋮⋮⋮⋮⋮⋮

(6): =1)(

1)(2

1)(2

1)(2

1)2(22

+++++ +++ nnnnn PdPbPePaPc 1022726252         +     n22f

⋮ ⋮⋮⋮⋮⋮⋮⋮(20):

·································································································································································

——————————(17)

写成矩阵形式:

(18)

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

+

+

+

+

n5,4

n1,3

n1,2

n1,1

1n)20(

1n)3(

1n)2(

1n)1(

f

fff

P

PPP

⋮⋮⋮⋮⋮⋮

⋮⋮⋮⋮⋮⋮

即 (18’)FPA =⋅其中系数矩阵 为五对角矩阵,半带宽为 W=4,带宽为 2W+1=9,与(16)式中 5个未知量相A符。这也是二维单相渗流隐式线性代数方程组的共同特点:五对角,自然排序时半带宽

W= ,M 和 N 分别是 y和 x方向的网格数。{ }N,Mmin3.Crank-Nicolson格式

与一维情况相似,显式(13)+隐式(15)则得:

n1j.i

nj.1i

nj.1i

n1j.i

nj.i

1n1j.i

1nj.1i

1nj.1i

1n1j.i

1nj.i

PPPPP)1(2

PPPPP)1(2

++−−

++

++

+−

+−

+

β+α+α+β+β−α−=

β−α−α−β−+β+α

其中含五个未知量,联立求解,隐式格式。其截断误差为

。各节点关系如图 3.3.7。])y()x()t[(R 222 ∆+∆+∆=O

WWWW

11,

++

njiP

1,1+

+n

jiP1,1+

−n

jiP1

,+njiP

11,

+−

njiP n

jiP 1, +

njiP ,1+

njiP ,n

jiP 1, −

njiP ,1−

n+1

n

图 3.3.7

Page 23: 油藏数值模拟基础

§3.4 差分格式的稳定性分析

一、差分格式的稳定性概念

当用差分方程进行求解计算时,舍入误差在逐层传播过程中不随时间增长而增大,则称

该差分方程具有稳定性。

二、Fourier 分析方法(Ven Neumann 法)

1. 设误差为 ,精确解为 P,则真实解 P*=P+ε ε2. 将真实解代入差分方程,得到误差方程

3. 将误差写作简谐波形式: 根据 Fourier 原理jikxnnj eA=ε

4. 把误差 Fourier 形式代入误差方程,求得增长因子|A|满足的关系式

5. 稳定性判别:|A|>1 不稳定, 时稳定。1 |A| ≤三、例子

1. 一维单相渗流隐式差分方程

(1)nj

njj

nnj

nj PPPPP

xtE

−=+−∆∆ +

−+++

+1

1111

12 2( ))(

其真实解:P*=P+ 代入上式得:ε

(2)nj

nj

nj

nj

njj

nnj

nj

nj

nj PPPPP

xtE εεεεε −−+=++−−+

∆∆ +++

−−++++

++

+111

111111

11

12 2( ))(

(1)( 2)两式相减,得误差方程:

(3)nj

nj

nj

nj

njx

tEεεεεε −=+−

∆∆ ++

−++

+11

111

12 2( ))(

将 , 等代入(3)得:jikxnnj eA=ε 111

1+++

+ = jikxnnj eAε

12(2 −=+−∆∆ ∆−∆ AAeAAextE xikxik ))(

整理,得: 1A2

xksin)x(

tAE4 22 −=

∆∆

∆−

=> 恒成立。1A

2xksin

)x(tE41

1A2

2

≤⇒∆

∆∆

+= ,

原差分格式恒稳定(无条件稳定)。——一般隐式格式特点,求解复杂,稳定性强。

2.显式差分方程

误差方程: )nj

nj

nj

nj

nj x

tE112

1 2()( −+

+ ε+ε−ε∆∆

+ε=ε

将 代入上式,得:jikxnnj eA=ε

2sin

)(41 2

2

xkxtEA ∆

∆∆

−=

若要 ,则须1|| ≤A 12

sin)(

411 22 ≤

∆∆∆

−≤−xk

xtE

Page 24: 油藏数值模拟基础

=> 或21

)( 2 ≤∆∆xtE

kC

xt

2)( 2φµ

≤∆∆

上述差分格式条件稳定。——一般显示格式的特点,求解简单,稳定性较差。

§3.5 边界条件的处理方法

一、外边界(一维情况为例)

1. 第一类边条件:给定压力值: )(10tfP x =

=

(1)点中心网格,如图 3.5.1,直接令 P1=f1。简单方便,没有误差。

(2)块中心网格, 如图 3.5.2,最简单方法是令 P1 =f1,误差O(Δx)。另有减少误差的方

法,但较繁琐。总之, 块中心网格不适于直接处理第一类边条件。

2. 第二类边条件: )(20

tfxP

x

=∂∂

=

(1)点中心网格,如图 3.5.3。

方法一:在边界处直接采用向前差商:

)(212 tf

xPP

=∆−

误差 R=O(Δx),精度较低。

方法二:采用镜象法,采用虚拟网格点 P0和 x=0 点的中心差分

)t(fx2PP

202 =

∆−

误差 R=O[(Δx)2], 精度较高。

(2)块中心网格,如图 3.5.4。

镜象法:在 x=0 点用中心差分

, R=O[(Δx)2])t(fxPP

201 =

∆−

二、内边界(井边界)

由于井筒边界的尺度相对于油藏尺度往往小几个量阶,如果将井筒直接作为油藏边界,

按照井筒尺度划分油藏网格,则网格数量会大得惊人(10Km2 油藏网格则数十亿计),根本无

法计算,也没有必要。为了适应计算机速度的限制,实现正常模拟运算,油藏网格一般都在

几十米以上,因此只能把井当作其所在网格中的源(汇)项处理,而不作为油藏边界。井的流

量和井底流压根据其所在网格平均压力确定,其几何形状和尺度对网格系统没有影响。计算

时利用另一套与数值模型相对独立的径向流理论或经验公式(称作井的计算公式)。

1. 定产条件(给定井产量 q):在井所在网格点的渗流差分方程中加入产量项 q,直接构造

线性方程组,进行计算,可求得网格压力 Pi,j。若要求井底流压 Pwf,则需用到下面方法 。

2. 定压条件(给定井底流压 Pwf):需建 q与 Pi,j 、Pwf的关系式。

P1=f1 P2 P3 P4 x

图 3.5.1 点中心网格

P1=f1 P2 P3 x

图 3.5.2 块中心网格

P0 P1 P2 P3 P4 P5 x

图 3.5.3 点中心网格边界处理

P0 P1 P2 P3 P4 x

图 3.5.4 块中心网格边界处理

Page 25: 油藏数值模拟基础

处理方法:将网格内油井生产近似看成拟稳定流动,符合平面径向流公式:

SrrPPKhq

w

e

wfji

ji +

−⎟⎟⎠

⎞⎜⎜⎝

⎛=

ln2 ,

,µπ

式中 Pi,j——网格压力,Pwf——井底流压;rw——井筒半径,re——等值供给半径。

关于 re有各种计算公式(设 x 、y 方向网格步长分别为 和 ):x∆ y∆

(1)各向同性地层: , 长方形网格;( ) ( )2214.0 yxre ∆+∆=̇

, 正方形网格。xre ∆= 28.0̇

(3)各向异性地层:

( ) ( )

41

41

21

221

221

28.0

⎟⎟⎠

⎞⎜⎜⎝

⎛+⎟⎟

⎞⎜⎜⎝

⎥⎥⎥

⎢⎢⎢

⎡∆⎟

⎟⎠

⎞⎜⎜⎝

⎛+∆⎟⎟

⎞⎜⎜⎝

=

y

x

x

y

y

x

x

y

e

KK

KK

yKKx

KK

r

在长期的油藏数值模拟的研究和应用中,发展了多种各有特点或镇对各种特殊问题的边

界处理方法,特别是井的处理方法,有的方法是很有效的,但这些已经超出了本书范围。

§3.6 差分方程的线性化

前面的数学方程都是线性的,因此经过离散后可直接得到线性代数方程组,再用计算机

进行求解。但在实际问题中碰到的数学偏微分方程大都是非线性的,这时就要对离散化后的

数学方程即差分方程再进行线性化处理,下面举简单例子说明:

例:一维非线性波动方程: ( ) ( ) ( )ttxu

xtxutxu

∂∂

=∂

∂ ,,,

隐式差分方程(xi点):tuu

xuuu

ni

ni

ni

ni

i ∆−

=∆− +++

+111

1

整理得:ni

1n1i

i1ni

i uux

tuu

xtu

1 =∆∆

−⎟⎠⎞

⎜⎝⎛

∆∆

+ ++

+

这就是差分方程组。但由于方程系数中的 ui是未知量,所以方程系数矩阵也是不确定

的(未知),所以无法求解。这就是方程的非线性化造成的困难(问题)。

按问题物理意义,系数中 ui应取 ,但这样会使方程中出现 和 类的1+n

iu1

11 +

++ n

ini uu 11 ++ n

ini uu

项,不再是未知量 线性方程组,系数矩阵未知, 因而无法求解。1+n

iu为此,取 ui=ui

n ,代入原差分方程组,得:

——线性化差分方程ni

ni

nin

i

ni uu

xtuu

xtu

=∆∆

−⎟⎟⎠

⎞⎜⎜⎝

⎛∆∆

+ ++

+ 11

11

若第 n时间步值已知,则上述方程组为第 n+1 步未知量的线性方程组,其系数矩阵由

第 n步值求得,于是可用计算机求解。但是,非线性项带来不利影响:

(1)“令 ui=uin”的截断误差 R=O( )t∆

(2)每一时间步须重新计算系数矩阵

Page 26: 油藏数值模拟基础

因此,非线性项会使精度降低,计算量大大增加。非线性项的处理(差分方程线性化)

是油藏数模研究中一项非常重要的内容。

Page 27: 油藏数值模拟基础

第四章 线性代数方程组的数值解法

由前面内容知,经过离散化和线性化,渗流数学模型转化为渗流数值模型,即(差分方

程组成的)线性代数方程组。这类线性方程组的阶数(等于未知量网格数)一般都很高 ,

只能借助于计算机才能求解。用计算机对大型线性代数方程组进行求解是工程实践中普

遍存在的问题。所以研究学习线性代数方程组的数值解法十分必要。本章仅介绍常用的

简单而有效的求解方法。

方程组的数值解法分两类:直接法与迭代法。

§4.1 三对角方程组的直接解法-追赶法

一维流动问题形成的线性代数方程组,其系数矩阵是三对角矩阵。一般的三对角系数矩

阵方程组形式为:

(1)

⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢

⋅⋅⋅

=

⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢

⋅⋅⋅

⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢

⋅⋅⋅⋅⋅⋅

⋅⋅⋅

−−−−−

n

n

n

n

nn

nnn

dd

dd

xx

xx

acbac

bacba

1

2

1

1

2

1

111

222

11

记作: (1’)DXA���

=其中 -系数矩阵, 未知量, 已知项。A

�X�

D�

为解此方程,先把 分解成两个特定形式的两对角矩阵的乘积 :A�

L�U�

= (2)

⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢

⋅⋅⋅⋅⋅⋅

−−−

nn

nnn

bcbac

bacbac

ba

111

333

222

11

⎥⎥⎥⎥⎥⎥⎥⎥⎥

⋅⋅⋅⋅

⎢⎢⎢⎢⎢⎢⎢⎢⎢

−−

nn

nn

lclc

lclc

l

11

33

22

1

⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢

⋅⋅⋅⋅

11

11

1

1

3

2

1

nu

uu

u

= • (2’)A�

L�

U�

对比分析容易得到 L、U 各元素与 A的各元素的关系:

(3)

⎪⎩

⎪⎨

⋅⋅⋅=−=⋅⋅⋅==

=

− −−

niucalniu

al

iiii

lb

i ii

,,3,2,,,3,2,

1

1

11

11

Page 28: 油藏数值模拟基础

由(1)和(2)得: (4)DXUL����

=

令: (5)YXU���

=

则得: (6)DYL���

=求解方法:

① 利用(3)式求 ;UL��

② 利用(6)求出 [ ]nn yyyyyY ,,,, 1321 −⋅⋅=�

(7)

⎪⎪⎩

⎪⎪⎨

⋅⋅⋅=−

=

=

− nilycdy

ldy

i

iiii ,,3,2,1

1

11

③ 再利用(5)求出 [ ] :,,, 21T

nxxxX ⋅⋅⋅=�

(8)⎩⎨⎧

⋅⋅⋅−−=−==

+ 1,,2,1,1 nnixuyxyx

iiii

nn

§4.2 GAUSS 消元法和直接分解法

一、 GAUSS 消元法

设有 n阶线性代数方程组:

(1)

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−

−−−−−−

n

n

n

n

nnnnnnn

nnnnnnn

nn

nn

nn

dd

ddd

xx

xxx

aaaaaaaaaa

aaaaaaaaaaaaaaa

1

3

2

1

1

3

2

1

,1,3,2,1,

,11,13,12,11,1

,31,3333231

,21,2232221

,11,1131211

........................

.................................................................................................

⋮⋮

或: (1’)DDDDXXXXAAAA =•

方法原理:

1. 首先将AAAA逐列消元化为三对角矩阵 U ,对 D 进行同样的行操作得到新的已知项 Y 。

当消去AAAA中第 k列中主对角线元素以下的各元素时,AAAA 中新的元素 的计算公式为:)(kija

, (2))1(

)1()1()1()(

−−− −= k

kk

kikk

kjkij

kij a

aaaa nkkinkkj

,...,2,1,...,1,++=

+=

新的 D 中元素值为:

, i=k+1,k+2,…,n (3))1(

)1()1()1()(

−−− −= k

kk

kikk

kki

ki a

addd

Page 29: 油藏数值模拟基础

最后得: YYYYDDDDU,U,U,U,AAAA 1)1)1)1)(n(n(n(n1)1)1)1)(n(n(n(n == −−

从而得到新的同解方程组:

(4’)YYYYUXUXUXUX =

(4)

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−

n

n

n

n

nn

nnnn

nn

nn

nn

yy

yyy

xx

xxx

uuu

uuuuuuuuuuuu

1

3

2

1

1

3

2

1

,

,11,1

,31,333

,21,22322

,11,1131211

...............

⋮⋮

2. 回代求出 :X

nnnn uyx /=

, i=n-1,n-2,…,1 (5)ii

n

ikikkii uuxyx /)(

1∑

+=

−=

二、直接分解法

1. 方法原理:

(1)根据矩阵 分解定理,将系数矩阵 直接分解为 一个下三角矩阵 和一个上L U A L

三角矩阵 的乘积,即由 直接求出 和 : =U A L U A L U

(2)由 记 (6)DXULDXA =⇒= YXU =

则有 (7)DYL =

先由(7)式求出 ,再由(6)式求得 。Y X

2. 和 的计算公式L U

(1)若取 和 的形式分别为:L U

, (8)

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

=

−−−

1...1...

.........1

11

1,3,2,1,

3,12,11,1

3231

21

nnnnn

nnn

lllllll

lll

L

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

=

−−−

nn

nnnn

nn

nn

uuu

uuuuuuu

U

,

,11,1

,21,222

,11,11211

...

......

........................

则由 对比各元素间关系可得:ULA =

, i=1,2,…,n (9)

niijuulal

niijulau

ii

i

kkijkjiji

i

kkjikijij

,...,2,1,

,...1,,

1

1

1

1

++=⎟⎠

⎞⎜⎝

⎛−=

+=−=

∑−

=

=

(2)若取 和 的形式分别为:L U

Page 30: 油藏数值模拟基础

, (10)

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

=

−−−−−

nnnnnnn

nnnnn

lllllllll

lllll

l

L

1,3,2,1,

1,13,12,11,1

333231

2221

11

...

............

⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢

=

11

.........

............

.....................1......1

,1

,21,223

,11,11312

nn

nn

nn

u

uuuuuuu

U

则由 可得:ULA =

, i=1,2,…,n (11)

niijlulau

niijulal

ii

j

kkiikijij

i

kkijkjiji

,...,2,1,

,...1,,

1

1

1

1

++=⎟⎟⎠

⎞⎜⎜⎝

⎛−=

+=−=

∑−

=

=

� 注:可以看出消元法和 LU 分解法的主要思路,都是先将原有方程组 ,化成DXA =

上三角系数矩阵方程组 ,再回代求解。消元过程相当于求解YXU = DYL =

的过程,只不过没有直接求出 。——根本上一致。L三、二维渗流线性方程组及其解法

二维单相渗流形成的线性方程组的系数矩阵 是一个五对角矩阵,若 x 、y方向网格A

数分别为 M 和 N,按自然网格排序后, 的半带宽为 ,带宽为 2W+1,如A { }NMW ,min=

下式:

(1)

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

nn f

fff

P

PPP

⋮⋮⋮⋮⋮⋮

⋮⋮⋮⋮⋮⋮

3

2

1

3

2

1

或记作: FPA =由于是条带矩阵,消元法和直接分解法的计算量可减少。

1. 消元法

消元公式:

( )

⎪⎪⎭

⎪⎪⎬

−=

−=

−−−

−−−

)1(

)1()1()1()(

)1(

)1()1()1(

kkk

kikk

kki

ki

kkk

kikk

ijkij

kij

aaddd

aaaaa

WkkjWkki +=++= ,...,,...,1 ;

WWWW

Page 31: 油藏数值模拟基础

回代公式: , i=n-1,n-2,…,1。ii

Wi

ikikkji uuxyx ⎟⎟⎠

⎞⎜⎜⎝

⎛−= ∑

+

+= 1

2. 直接 分解法:L U

设 对角线为 1,则:L

⎪⎪⎩

⎪⎪⎨

+++=−=

++=−=

∑−

=

=

Wiiijuulal

Wiiijulau

ii

i

mkkijkjiji

i

mkkjikijij

,...,2,1,/)(

,...,1,,

1

1

其中: { }WjWim −−= ,max

例题:如图二维单相微可压流体渗流, 第一类边条件。,2=∆=∆ yx ,2=∆τ ;tckkµ

τ =

求压力 P新的分布值。

解:渗流方程:

τφµ

∂∂

=∂∂

=∂∂

+∂∂ p

tp

kc

yp

xp

2

2

2

2

隐式差分方程:

τ∆−

=∆

+−+

+− +++

++−

++

++−

nji

njIi

nji

nji

nji

nji

nji

nji PP

yPPP

xPPP ,

1.

2

11,

1,

11,

2

1,1

1,

1,1

)(2

)(2

将已知条件Δx=Δy=2, Δτ=2代入上式,得:

nji

nji

nji

nji

nji

nji PPPPPP ,

1,1

11,

1,

11,

1,1 26 −=++−+ +

+++

++−

+−

将求解区域内网格编号:(P11, P12, P21, P22, P31, P32)->( P(1), P(2),…, P(6))

列出各网格差分方程:

(1)点: -6P(1) +P(2) +P(3) = 322 2112)1( −=−−− PPPn

(2)点: P(1) -6P(2) +P(4) = 272 2513)2( −=−−− PPP n

(3)点: P(1) -6P(3) +P(4) +P(5) = 192 31)3( −=−−    PP n

(4)点: P(2) +P(3) -6P(4) +P(6) = 142 34)4( −=−−    PP n

(5)点: P(3) -6P(5) + P(6) = 202 5241)5( −=−−−  PPP n

(6)点: P(4) +P(5) -6P(6) = 132 5444)6( −=−−−  PPP n

5 4 310 6 5 4 210 7 6 5 4

8 7 6

t=n时压力分布

5 4 3

10 P(2) P(4) P(6) 2

10 P(1) P(3) P(5) 4

8 7 6

t=n+1时压力分布

Page 32: 油藏数值模拟基础

即: FPA

PPPPPP

���=⋅⇒

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−−

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−

−−

132014192732

611000160100106110011601001061000116

)6(

)5(

)4(

)3(

)2(

)1(

——系数矩阵 五对角距阵,半带宽 W=2A(一)消元法

将系数矩阵和右端项组成增广矩阵,进行消元运算,回代后得:

[P(1), P(2), P(3), P(4), P(5), P(6)]=[3.8461,4.9890,5.0875,6.0882,6.5890,7.4466]

(二)直接分解法

1. 先求 和 : 中的行和 中的列交替依次求解L U U L

第一行Uauauau �

⎪⎭

⎪⎬

====−==

11

6

1313

1212

1111

⎪⎭

⎪⎬⎫

−==

−==

1667.0

1667.0/

11

3131

112121

ual

ual第一列L

⎪⎭

⎪⎬

===×+=−=

−=×+−=−=

11667.0101667.0

8333.511667.06

2424

13212323

12212222

auulauulau

第二行U

( )

⎪⎭

⎪⎬⎫

−==

−=−=

1714.0

0286.0/

22

4242

2212313232

ual

uulal第二列L

⎪⎭

⎪⎬

===−=

−=−−=

10286.1

8286.5

3535

24323434

233213313333

auuluu

ululau第三行U

( ) ( ) ( )

( ) ⎪⎭

⎪⎬

−=−==

−=−×+=−=

1716.08286.51/

1765.08286.5/1617.01714.01

335353

33

23424343

ual

uulal

第三列L

⎪⎭

⎪⎬

==×+=−=

−=×++−=−−=

4646

35434545

344324424444

1765.011765.006471.50286.101765.1714.06

auulau

ululau第四行U

( ) ( ) ( )

( ) ⎪⎭

⎪⎬

−=−==

−=−×+=−=

1771.06471.51

0313.06471.5/0286.11716.00

44

6464

44

34535454

ual

uulal

第四列L

Page 33: 油藏数值模拟基础

⎭⎬⎫

=+=−=−=×+×+−=−−=

0313.10313.018229.51765.00313.011716.06

56545656

455435535555

ulauululau

第五行U

( ) ( )( ) ⎭⎬

⎫−=−×+=−= 1771.08229.5

1765.01771.01155

45646565 u

ulal 第五列L

}6403.50313.11771.001771.6566546646666 −=×++−=−−= ululau 第六行U至此 和 各元素计算完毕。U L

2. 求解方程 L :FY��

=⋅

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−−

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−−−

−−−−

132014192732

0

0.11771.01771.00000.10313.01716.000

0.11765.001714.00.10286.01667.0

0.11667.00.1

6

5

4

3

2

1

yyyyyy

321 −=⇒ y3344.321667.027 12 −=+−= yy

y3=-19+0.1667y1+0.0286y2=-25.2592

y4=-14+0.1714y2+0.1765y3=-24.0003

y5=-20+0.1716y3+0.0313y4=-25.0857

y6=-13+0.1771y4+0.1771y5=-21.6932

3. 求解 YPU��

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−

−−

−−

6932.210857.250003.242592.253344.3232

6903.5000000313.18229.50000

0.11765.06471.500000.10286.18226.500000.11667.08332.500000.10.16

)6(

)5(

)4(

)3(

)2(

)1(

PPPPPP

P(6)⇒

=3.8461

P(5)=(-25.0857-1.0313 P(6))/(-5.8229) =4.9893

P(4)=(-24.0003-0.1765 P(5)- P(6))/(-5.6471)=5.0870

p(3)=(-25.2592-1.0286 P(4)- P(5))/(-5.8286)=6.0874

P(2)=(-32.3344-0.1667 P(3)- P(4))/(-5.8333)=6.5891

P(1)=(-32- P(2)- P(3))/(-6) =7.4416

[P(1),P(2),P(3),P(4),P(5),P(6)]=[3.8461,4.9893,5.0870,6.0874,6.5891,7.4416]⇒

Page 34: 油藏数值模拟基础

(三)比较两种方法结果:

两个结果基本相同,微小的差别是由舍去误差(只保留 4位小数)引起的,LU分解舍

去误差可能稍大。因做 运算不符合“悬殊不相加,等量不相减,两极不作乘,大小∑ kjikul不作除”的原则。但在能保证计算机运算位数(精度)的情况下,LU法有较大的优势和用途,

它是许多更高级更先进方法的基础。

§4.3 交替方向隐式方法(ADIP)

Alternating Direction Implicit Procedure是针对二维和三维问题提出的。

以二维问题为例,其隐式差分格式虽具有稳定性强特点,但直接求解时要解一个五

对角系数矩阵方程组,过程复杂,计算量大。

一、构造

ADIP 方法的思想是:将计算过程的每一个时间步分为两个相等的部分,前半步只对

x方向差商进行逐行隐式求解,后半步对 y 方向差商进行逐列隐式求解,从而把求解二维的

五对角系数矩阵方程组的问题化为若干个求解一维的三对角矩阵方程组的问题,达到简化计

算的目的。

二维渗流差分方程:

, E= (1)tEPu

yPPP

xPPP n

jinji

nji

nji

nji

nji

nji

nji

−=

+−+

+− +++

++−

++

++− ,

1,

2

11,

1,

11,

2

1,1

1,

1,1

)(2

)(2

CKφµ

前半个时间步,从 n 到 n+ :21

(2)2/tEPP

)y(PP2P

)x(PP2P n

j,i21n

j,i2

n1j,i

nj,i

n1j,i

2

21n

j,1i21n

j,i21n

j,1i

−=

+−+

+−+

+−

+

+

++

把(2)式进行整理,得:

(3)j,i21n

j,1ij,i21n

j,ij,i21n

j,1ij,i gPdPcPb =+++

+

++

其中: ( )( )

,1x

tE2c,x/tEdb 2j,i2

j,ij,i ⎟⎟⎠

⎞⎜⎜⎝

⎛+

∆∆

−=∆∆==

( )( ) n

j,in

1j,inj,i

n1j,i2j,i P2PP2P

ytEg −+−

∆∆

−= +−

(3)式对任一个固定的 j 值,取不同的 i值可得一个独立的三对角矩阵方程组,容易

求解,解之可得 ,接着再求 j+1 行的 。如此逐行扫描,就可得整个网格区域上21n

j,iP+

21n

1j,iP+

+

的 值。21n

P+

后半个时间步,从 n+ 到 n+1。21

(4)tEPP

yPPP

xPPP

n

jinji

nji

nji

nji

n

ji

n

ji

n

ji

−=

+−+

+−+++

+++

+

+

++

−21

,1

,2

11,

1,

11,

2

21

,121

,21

,1

)(2

)(2

Page 35: 油藏数值模拟基础

把(4)式进行整理,得:

(5)jinjiji

njiji

njiji hPfPePa ,

11,,

1,,

11,, =++ +

+++

(5)式中

( )( )

,12,/ 2,2

,, ⎟⎟⎠

⎞⎜⎜⎝

⎛+

∆∆

−=∆∆==xtEeytEfa jijiji

( )21

,21

,121

,21

,12, 22++

+

++

− −⎟⎟⎠

⎞⎜⎜⎝

⎛+−

∆∆

−=n

ji

n

ji

n

ji

n

jiji PPPPytEh

对每一列网格(5)式都组成一个独立的三对角方程组,容易求解得 ,逐列扫描,1

,+njiP

便可求得整个网格区域上的 P n+1值。

经过以上两个交替扫描求解过程,便由 tn 时间解得到了 tn+1时间步的求解。同理依次

可求得 tn+2,tn+3,…等所有时刻解。

截断误差: ( ) ( )[ ]22 xtOR ∆+∆=

二、特点:

1. 优点:若二维区域的横向和纵向网格数分别是 I和 J,I>J。则自然排序法时用高斯

消元解五对角方程组的工作量和为存贮量:

W IJ3 , S IJ2=̇ =̇用交替方向隐式方法时(三对角工作量按 S IJ计算)=̇

W IJ2 , S IJ=̇ =̇2. 缺点:对较大的时间步长和各向异性传导系数常发生振荡,而很难收敛,只能解决较

简单的问题,该方法已不再常用。

3. 意义:是构造一切交替方向法的基础。

§4.4 简单迭代法和 Seidel 迭代法

迭代法的概念,迭代法的主要问题——提高敛速

迭代法的构成——迭代格式和计算步骤

设有 n 阶代数方程组:

(1)

⎪⎪⎩

⎪⎪⎨

=++⋅⋅⋅+++⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

=++⋅⋅⋅+++=++⋅⋅⋅+++

−−

−−

−−

nnnnnnnnnn

nnnn

nnnn

bPaPaPaPaPa

bPaPaPaPaPabPaPaPaPaPa

,11,332211

2,211,2323222121

1,111,1313212111

化成迭代格式:

Page 36: 油藏数值模拟基础

(2)

[

⎪⎪⎪⎪⎪⎪

⎪⎪⎪⎪⎪⎪

+⋅⋅⋅+++−=

⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

+⋅⋅⋅+++⋅⋅⋅+−=

⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅

++⋅⋅⋅++−=

++⋅⋅⋅++−=

−−

++−−

−−

−−

)]([1

)]([1

)]([1

)](1

11,332211

,11,11,11

,211,2323121222

2

,111,1313212111

1

nnnnnnnnn

n

nniiiiiiiiiii

i

nnnn

nnnn

PaPaPaPaba

P

PaPaPaPaba

P

PaPaPaPaba

P

PaPaPaPaba

P

给定初值 代入(2)式左端,便可得 ,)0()0(

3)0(

2)0(

1 ,,,, nPPPP ⋅⋅⋅ )1()1(3

)1(2

)1(1 ,,,, nPPPP ⋅⋅⋅

即第一次迭代值,再把 P(1i),i=1,2,3,…,n 代入 ,求得 P(2i) ,设已求得 P(ki),代入求 P(k+1i) ,

直到满足精度要求。[(2)式中上标(k)和(k+1) ]。

写成矩阵形式:

(3)( ) ( ) ][1 1

1 1

)1(⎟⎟⎠

⎞⎜⎜⎝

⎛+−= ∑ ∑

= +=

+i

j

n

ij

kiij

kjiji

ii

ki PaPab

aP

——简代迭代法的通式。

若将(3)式稍作改变,即在每一步迭代中,后面的点在计算时不再用前面的点的上一

步值(旧值),而用其刚刚求出的本步值(新值)。则(3)式变为:

(4)( ) ( ) ][1 1

1 1

1)1(⎟⎟⎠

⎞⎜⎜⎝

⎛+−= ∑ ∑

= +=

++i

j

n

ij

kjij

kjiji

ii

ki PaPab

aP

——Seidel 迭代法的通式。

如果网格(未知量)排序是按着行号和列号依次上升的顺序,则在计算节点(i,j) 时 ,

其邻点(i-1,j) 和(i,j-1)都已有了新值。

两种方法比较,可以猜想到 Seidel 法较简单迭代法收敛要快.[ 即迭代值收敛ik

i PP →+ )1(

到某个定值。]

§4.5 松驰迭代法(Successive Over Relaxation)

主要思想是在 Seidel 方法的基础上进一步提高敛速:用 Seidel 通式§5.4 中(4)式

的中间计算结果 ,代入原方程组§5.4 中(1)式,得:)()()1(

1)1(

1 ,...,,,..., kn

ki

ki

k PPPP +−

+

× × × × × ×

× × × × × ×

∨ ∨ ∨ · × ×

∨ ∨ ∨ ∨ ∨ ∨

∨ ∨ ∨ ∨ ∨ ∨

Page 37: 油藏数值模拟基础

称为余项0)( )(1

1

)1()( ≠+−=γ ∑∑=

=

+n

ij

kjij

i

j

kjiji

ki PaPab

在 Seidel 通式两侧同时加上)(k

iP

(1)

ii

kik

i

n

ij

kjij

i

j

kjiji

ii

ki

ki

aP

PaPaba

PP

)()(

)(1

1

)1()()1( )]([1

γ+=

+−+= ∑∑=

=

++

   

由(1)式可看出 Seidel 法实质是:用余项 来修正第 k次迭代的近似值 ,得到)(k

iγ)(k

iP更逼近于真解的 。由此得到启示:能否在余项 上乘以一个系数 ,用 来修

)1( +kiP

)(kiγ ϖ )(k

iϖγ

正 ,使得到的 逼近真解的程度进一步提高,从而加快迭代敛速。 称为松驰因)(k

iP)1( +k

iP ϖ子。

(2))([ )(1

1

)1()()1( ∑∑=

=

++ +−ϖ

+=n

ij

kjij

i

j

kjiji

ii

ki

ki PaPab

aPP

——松驰法迭代公式。

在余项上乘一个松驰因子来加快迭代收敛速度的方法,就叫做松驰法。

能使(2)式收敛的 范围是 0< <2,1< <2 时叫超松驰或过量松驰,0< <1 时叫ϖ ϖ ϖ ϖ低松驰或欠量松驰。 有一个最优值 *,当 = * 时迭代收敛最快。松驰法的关键是尽ϖ ϖ ϖ ϖ量找到并合理使用 *,而实际上 *总满足 1< * <2,故松驰法一般又叫做超松驰法。ϖ ϖ ϖ

下面介绍松驰法具体的迭代计算公式。

一、逐点松驰法

点松驰法(Point SOR)就是对网格的每个单元逐一应用松驰法,迭代中可以不用方程组

形式,而直接利用每一网格的差分方程。

例 二维问题差分方程[对于(i,j)点]:

(3)ijjiijjiijjiijjiijjiij fPdPbPePaPc =++++ ++−− 1,,1,,11,

计算各点按照 i和 j从小到大的顺序,按照(2)式规则,差分方程(3)写成 Seidel

迭代形式:

ijkjiij

kjiij

kjiij

kjiijij fPdPbPcPaP ++++= ++

+−

+−

)(1,

)(,1

)1(1,

)1(,1

*

作为过渡压力值,取余项 ,则点松驰法的迭代公式为:*ijP

)(*)( kijij

kij PP −=γ

(4))( )(*)()1( kijij

kij

kij PPPP −+=+ ϖ

按(4)式逐点计算各网格值,并进行多次迭代,直到任一点(i,j)都满足精度要求:

ε≤−+

+

)1(

)()1(

),(max k

ij

kij

kij

ji PPP

整个迭代过程可由合理选择 而获得较快的敛速。ϖ二、逐线松驰法(LSOR)

同时计算一条线(一行或一列)上的网格的未知量值,并对其同时进行松驰。

仍以二维问题及其差分方程(3)式说明,设从下而上按行进行线松驰计算(如图所示),

当要计算第 i行的第 k+1 次迭代值时,各网格值关系如图所示。

× × × × × × × ×

Page 38: 油藏数值模拟基础

(5)ijk

ijk

ijk

ijk

ijk

ij fPdPbPePaPcjijijijiji=++++

++−−

++++1,,1,,11,

1111

将未知量移到右端可得:

(6)jik

ijk

ijijk

ijk

ijk

ij FPdPcfPbPePajijijijiji ,

11111,1,,1,,1=−−=++

+−+−

++++

这是一个三对角矩阵系数方程组。相当于把一个二维问题化为多个一维问题进行逐次求

解,简化求解过程。

由(6)式,同一行网格未知量联立求解出: , i=1,2,…,M ;再进行松驰得 k+1 步值。*ijP

(7))( )(*)()1( kijij

kij

kij PPPP −+=+ ϖ

由(7)式逐步计算,满足精度要求后即可。

线松驰也可按列进行。线松驰比点松驰快一倍收敛。

三、最优松驰因子的选择:

1.试算法

2.经验+试算

首先根据经验定出 的最小存在区间[ a, b],再用试算法求出 。optϖ ϖ ϖ optϖ3.过程控制方法

在方程求解过程中,根据 的性质和迭代过程反映的信息,将 找出来。初始值optϖ optϖ逐步修改。

注意: 的估算不能占用过多计算时间。optϖ� 注:逐行松驰迭代法,虽然在大的结构上属迭代类方法,但在每一步每一行中用的是三

对角方程直接解法,这也是所有大型方程组高效解法的共同特点。

§4.6 交替方向隐式迭代方法(ADIIP)

× × × × × × × ×

· · · · · · · ·

√ √ √ √ √ √ √ √

√ √ √ √ √ √ √ √

1.0 2.0optϖ由试算次数选择 (定余量)ϖ

试算

次数

1.0 2.0optϖ ϖ

由最大点余量来选择 (定迭代次数)ϖ

最大

余量

Page 39: 油藏数值模拟基础

将交替方向隐式方法与超松驰迭代法相结合,也就是把 ADIP 用于松驰迭代法的一个迭

代步中,便可以得到 ADIIP。不同的是,ADIIP 不是用两次扫描完成一个时间步的计算,而

是在一个时间步长内进行若干次迭代计算,每一次迭代中都包含两个方向的交替扫描过程。

该方法无条件稳定、易于求解、占用内存少、计算速度快。

一、方法结构

以二维渗流问题为例,对于任一时间步长中的第 k+1 次迭代,构造如下差分格式:

从 k到 k+1/2 即前半步迭代,逐行进行 x向(水平方向)扫描:

(1)( ) ( )( ) )(

22

)(,

2/1,

)(,

)2/1(,

2

)(1,

)(,

)(1,

2

)2/1(,1

)2/1(,

)2/1(,1

kji

kjik

nji

kji

kji

kji

kji

kji

kji

kji

PPH

PPy

PPPx

PPP

−=

−−

+−+

+−

+

+−+

+−

+++

τ

其中 为第 k次迭代的加速因子。令 , (1)式经整理得:kHct ,

φµτ = 2

22

)()(,)(yxx

∆∆

=∆∆

= βτ

α

(2))(

,)(1,

)(,

2)(

)21(

,1

)21(

,2)

21(

,1

))(2(

))(2(

1,nji

kji

kjik

k

k

ji

k

jik

k

ji

PPPHxPPPHxP

ji αβββ

α

−−∆−+−=

+∆++−

+

+

+

++

从 k+1/2 到 k+1 后半步迭代,逐列进行 y向(垂直方向)扫描求解:

(3)( ) ( )( ) )(

22

)21(

,1

,

)(,

)1(,

2

)1(1,

)1(,

)1(1,

2

)2/1(,1

)2/1(,

)2/1(,1

++

++−

+++

+−

+++

−=

τ∆

−−

+−+

+−

k

jikjik

nji

kji

kji

kji

kji

kji

kji

kji

PPH

PPy

PPPx

PPP

令 ,( 3)式经整理,得2

22

)()(,)(xyy

∆∆

=∆∆

= ητ

ζ

(4))(

,

)21(

,1

)21(

,2)

21(

)1(1,

)1(,

2)1(1,

))(2(

))(2(

,1nji

k

ji

k

jik

k

kji

kjik

kji

PPPHyP

PPHyP

ji ξηηη

ξ

−−∆−+−=

+∆++−

+

+

++

++

++−

二、求解步骤

(1)将整个时间分为若干(N)时间步;

(2)在每一个时间步长( )内,进行迭代求解,直到迭代值 满足精度1+→ nn tt 1+kp

要求,则 ;11 ++ = kn pp

(3)在每一个迭代步( )内,先用(2)式逐行求解所有网格点值 ,1+→ kk)

21( +k

p

再用(4)式逐列求解所有网格点值 。)1( +kp

三、加速因子的选择

只有不同的迭代步(k)使用不同的加速因子 Hk,才能保证以上方法有较高的敛速。也就

是需要一个加速因子序列来进行迭代: ,m 为序列中加速因子个数,且有mHHH ,,, 21 ⋯(常数),即等比数列。γ=+ kk HH /1

问题:如何确定 m 和 ?方法如下:mHHH ⋯,, 21

Page 40: 油藏数值模拟基础

(1)令 , 方向网格数,并取yxKT

xyKT yyxx ∆

∆=

∆∆

= , yxNN yx 、表示和

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

⋅+

⋅+

= 2

2

2

2

42

,4

2minyyx

y

xyxO NTT

TNTT

TxH ππ

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

++=

yx

y

yx

xm TT

TTT

TH2

,2

max

(2)试算。用 根据计算结果进行调整。先调 , 越大],10,5[10 ∈mHH ,并取作 1H 1H越稳定但收敛越慢, 越小,收敛越快,但越容易振荡(稳定性越差);后调m,增加 m数1H有利于收敛,反之易发散,所以就在保证收敛的前提下由大到小调节 m。一般三、四次即可

满意。

(3) ,k=2,…,m1

1

1

11

−− ⎟

⎠⎞⎜

⎝⎛=⋅=

mmk

k HHHH γγ ,

�注:只要将逐线松弛法沿 x、y方向(网格行和列)交替进行迭代,便可得到交替方向隐

式迭代方法的另一形式。

§4.74.74.74.7 强隐式方法

一、方法的基本思路

忽略重力,弱可压缩单相流体在非均质地层中的渗流方程式:

tpk

∂∂

=⎥⎦

⎤⎢⎣

⎡∇⋅∇

)(φραµρα

二维情况下,维数因子 。展开上式,得:),( yxz∆=α

(4-1-0)tpz

ypz

yxpz

x yx ∂∂

∆=∂∂

∆∂∂

+∂∂

∆∂∂

βλλ )()(

其中 综合压缩系数−=== ffy

yx

x cckk

,,, φρβµρ

λµρ

λ

该方程在矩形网格系统中的隐式五点差分格式为:

(4-1-1)jinjiji

njiji

njiji

njiji

njiji gpepdpcpbpa ,

11,,

1,1,

1,,

1,1,

11,, =++++ +

+++

++−

+−

矩阵形式: GpA =

设网格数为 4×3(如图 4-1-1),则上式可写为:

Page 41: 油藏数值模拟基础

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

43

33

23

13

42

32

22

12

41

31

21

11

43

33

23

13

42

32

22

12

41

31

21

11

434343

33333333

23232323

131313

42424242

3232323232

2222222222

12121212

414141

31313131

21212121

111111

gggggggggggg

pppppppppppp

cbadcba

dcbadca

ecbaedcba

edcbaedca

ecbedcb

edcbedc

介绍思想:为了仿照用消去法求解,需要将 A分解成 U和 L的乘积,但直接由 A得到的 U和 L,其非零元素将增加,计算时将浪费内存和时间。为此,将矩阵 A稍加

变化成 A′,使 A′进行分解后的乘子矩阵 L′和 U′具有这样的性质:每行中最多有

三个非零元素,L′+U′每行最多仍只有五个元素,且其位置与 A中相同。用 A′= L′U′近似代替 A′进行求解,便可以大幅度减少内存和工作量。这就是基本思路。

二、任一下三对角矩阵(L′)和任一上三对角矩阵(U′)的各元素与其乘积 A′的关系

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

′′′′′′

′′′′′

′′′′′′

′′′′′

′′′′

′′′

=′

434343

333333

232323

1313

424242

323232

222222

1212

4141

3131

2121

11

cbacba

cbaca

cbacba

cbaca

cbcb

cbc

L

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

′′

′′

′′′′

′′′

′′′′

′′

=′

11

11

11

11

11

11

33

23

13

42

3232

2222

1212

41

3131

2121

1111

dd

de

eded

ede

eded

ed

U

Page 42: 油藏数值模拟基础

(注:U′对角线各元素为 1)

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢

′′′′′′′′

′′′′′′′′′

′′′′′′′′′′′′

′′′′′′′′′′′′

′′′′′′′′′

′′′′′′′′

=′′=′

434343

3333333333

2323232323

13131313

4242424242

32323232323232

22222222222222

1212211212

41414141

3131313131

2121212121

111111

EDBFEDCB

FEDCBFECB

HGEDBHGFEDCB

HGFEDCBHFECB

HGEDHGFED

HGFEDHFE

ULA

经比较可知:

⋯⋯111111

111111

1111

ecHdcF

cE

′′=′′′=′

′=′

综合,得:

(4-1-2)

⎪⎪⎪⎪⎪

⎪⎪⎪⎪⎪

′′=′

′′=′

′′=′

′+′′+′′=′

′=′

′⋅′=′

′=′

−−

ijijij

jiijij

ijijij

ijjiijjiijij

ijij

jiijij

ijij

ecHebGdcF

cdbeaEbD

daCaB

,1

,11,

1,

(2)式表明,只要给定 ,就可求得 。 即 。反求(2)式,得:UL ′′和 A′ AUL ′⇒′′

(4-1-3)

⎪⎪⎪

⎪⎪⎪

′′=′

′′=′

′′−′′−′=′

′=′

′=′

−−

ijijij

ijijij

jiijjiijijij

ijij

ijij

cHecFd

dDeBEcDbBa

/

/,11,

(3)式证明,只要给定任一形式如 的矩阵中的元素 ,则可以求得A′ ijijijijij HFEDB ′′′′′ 和,,,

中各元素,即 。而作为 的乘积 中的七条对角线上元素不能UL ′′和 ULA ′′⇒′ , UL ′′和 A′

随意给出,须符合如下关系式:

jiijijjiijij eDGdBC ,11, , −− ′′=′′′=′

即 由 中其余五个对角线上元素决定,也就是说七组元素是相关的,只有五ijij GC ′′和 A′

Page 43: 油藏数值模拟基础

组是独立的。

三、矩阵 A的变形与 分解UL ′′

将 A跟 对比,可以看出,只要令:A′

⎪⎪⎪

⎪⎪⎪

=′

=′

=′

=′

=′

jiji

jiji

jiji

jiji

jiji

eHdFcEbDaB

,,

,,

,,

,,

,,

便可得到 :UL ′′和

⎪⎪⎪

⎪⎪⎪

′=′

′=′

′−′−=′

=′

=′

−−

ijijij

ijijij

jiijjiijijij

ijij

ijij

ceecdd

dbeaccbbaa

/

/,11,

再在 A中相应位置加入两条对角线元素:

⎪⎩

⎪⎨⎧

′=′

′=′

jiijij

jijiij

ebGdaC

,1

1,,

则有: uLAA ′′=′⇒至此,变形与分解过程完成。

四、 的修正A′用以上方法得到的 AA ≠′为了说明 的物理意义,换回差分方程形式:A′

(4-1-4)jijijijiji

jijijijijijijijijiji

gpGpCpepdpcpbpa

,1,1,1,1,

1,,,1,,,,1,1,,

=′+′+

++++

+−−+

+++−

跟方程(4-1-1)相比,(4-1-4)多出两项: ,跟原微分方程1,1,1,1, , +−−+ ′′ jijijiji pGpC(4-1-0)不相容。从物理角度看,是增加了(i+1,j-1)和(i-1,j+1) 这两点上压力值的影响,如

图所示。为了尽量消除误差,作如下处理。

由 Taylor 级数:

(4-1-5)⎪⎩

⎪⎨⎧

−+≈

−+≈⇒

⎪⎪⎪⎪⎪

⎪⎪⎪⎪⎪

∆+∂∂

∆+=

∆+∂∂

∆+=

∆+∂∂

∆−=

∆+∂∂

∆−=

+−+−

−+−+

++−

+−+

jijijiji

jijijiji

jiji

jiji

jiji

jiji

pppppppp

xOxpxpp

yOypypp

xOxpxpp

yOypypp

,1,,11,1

,1,,11,1

2,1,

21,,

21,1,1

2,11,1

)(

)(

)(

)(((((iiii,j,j,j,j ))))

((((iiii-1-1-1-1,j,j,j,j+1)+1)+1)+1)

((((iiii-1-1-1-1,j,j,j,j+1)+1)+1)+1)

((((iiii,j,j,j,j+1)+1)+1)+1)

((((iiii+1+1+1+1,j,j,j,j ))))((((iiii-1-1-1-1,j,j,j,j ))))

((((iiii,j,j,j,j-1)-1)-1)-1)

Page 44: 油藏数值模拟基础

(4-1-5)中两式分别乘以 相加,得:jiji GC ,, ′′ 和

)(( ,1,,1,,1,,1,

1,1,1,1,

jijijijijijijiji

jijijiji

pppGpppCpGpC

−+′+−+′≈

′+′

+−−+

+−−+

为了使得修正过程更灵活、更便于控制,上式右端乘以加速迭代参数 ,得:ω

(4-1-6))()( ,1,,1,,1,,1,

1,1,1,1,

jijijijijijijiji

jijijiji

pppGpppCpGpC

−+′+−−′=

′+′

+−−+

+−−+

ωω

(4-1-4)左端减去(4-1-6)右端,整理得:

(4-1-7)

ij

jiji

jijijijiji

jijijijijijiji

jijijijijiji

gpG

pCpGepCdpGCc

pGbpCa

=

′+

′+′−+

′−+′+′++

′−+′−

+−

−++

+

−−

1,1,

1,1,1,,,

,1,,,,,,

,1,,1,,,

)(

)()()()(

ω

ωωω

ωω

由上述过程知,(4-1-7)等价于(4-1-1)式。

此时,系数矩阵 变成(再次变化与“三”中 道理同):A′ AA ′⇒

(4-1-8)

⎪⎪⎪

⎪⎪⎪

−=

′−=′

′+′+=′

′−=′

′−=′

',,

',

,,,

,,,,

,,,

,,,

jijiji

jijiji

jijijiji

jijiji

jijiji

GeH

CdFGCcE

GbDCaB

ω

ω

ωω

ω

ω

(4-1-2)与(4-1-8)联立,求得对应于新的 :ULA ′′′ 和的

(4-1-9)

⎪⎪⎪

⎪⎪⎪

′′′−=′

′′′−=′

′′−′′−′+′′+=′

′+=′

′+=′

−−−

jijijijiji

jijijijiji

jijijijijijijijijiji

jijiji

jijiji

cebeecdadd

dbeaebdaccebbdaa

,,1,,,

,1,,,,

,1,,,,1,1,,,,

,1,,

1,,,

/)(/)(

))1/()1/(

ω

ω

ωω

ω

ω

另外:

⎪⎩

⎪⎨⎧

′+′=′

′+′=′

−−

−−

)1/()1/(

,1,1,,

1,1,,,

jijijiji

jijijiji

eebGddaC

ω

ω

此时, 满足三对角简单结构,且 。UL ′′和 AAUL ≈′=′′

(原矩阵 A中添加项 ,仍是由其原有的五条对角线元素决定。)jiji GC ,, ′′ 和

五、强隐式方法迭代求解过程

1.格式构成

Page 45: 油藏数值模拟基础

由 ,得AA ≈′⎪⎩

⎪⎨⎧

≈′

≈′+

)()(

)1(

kk

k

pApA

GpA

两式相减,得迭代格式:)()()1(

)( kkkApGppA −≈−′

+

记作:)()1( kk

RA ≈′+

δ

⎪⎪

⎪⎪

⎪⎪

⎪⎪

=

=−==′

→−=→∞→+

++

GpA

pAGRA

ppppkkk

kkkk

即有

则有

若有时当

0

0,,)()1(

)()1()1()(

δ

δ

由上式及 ,得:ULA ′′=′)()1( kk

RUL =′′+

δ2.迭代步骤:

令:)1()1( ++

′=kk

UV δ

⎪⎩

⎪⎨⎧

=′

=′++

+

)1()1(

)()1(

kk

kk

VU

RVL

δ

(1)求)1( +k

V

(2)求)1( +k

δ

(3))1()1()1()()1(

,++++

−=+=kkkkk

pAGRpp δ(4)重复(1)~(3)

3.加速收敛方法

(1)方程(1)节点排序:左下到右上→右下到左上,交替方向循环

(2) 选取ω

§4.8.8.8.8 迭代法和直接法的总结比较

⎪⎩

⎪⎨

节省内存—法带状矩阵压缩排列消元

特殊矩阵特殊方法—三对角矩阵追赶法

基本方法—直接分解法消去法、

直接解法

LUGauss

⎪⎪⎪

⎪⎪⎪

−−

−−⎭⎬⎫

−−−

−−

最具竞争力预处理共轭梯度法

应用较广泛适应性较强加速收敛强隐式方法

超松驰迭代法

基本方法迭代法

基本方法简单迭代法

迭代方法,,

SeidelGauss

两类方法的对比:

1.直接法

Page 46: 油藏数值模拟基础

优点:可靠性。不需要任何试运算,一次性直接求出方程的解,计算过程只跟所选的方

法有关,跟所处理的油藏模拟问题(物理问题)无关。无论问题简单还是复杂,甚至对系数矩

阵呈现“病态”的问题,也都可顺利解出。

缺点:存储量大。过程中矩阵非零元素大量生成,随着网格数增多,存储量增大的倍数

越来越大。因而很难求解大型的油藏模拟问题。另外舍入误差也有影响。

2.迭代法

优点:存储量小。同样计算机条件能解决比直接法规模大得多的问题。同时,不受舍入

误差影响。

缺点:不确定性。计算过程强烈依赖于实际油藏问题的性质,复杂问题收敛慢甚至不收

敛。另外,迭代因子的选择与试算也是一个很麻烦的过程。

3.数模发展趋势

由于遇到的实际问题越来越大,越来越复杂,现有大型数模软件越来越趋向于使用迭代

方法。并且随着迭代方法的不断改进和新迭代解法的出现,迭代类解法的可靠性也得到了明

显提高。

现在较常用的方法—预处理共轭梯度方法,另有强隐式方法和线松驰方法。

Page 47: 油藏数值模拟基础

第五章 单相渗流数值模拟方法

前面几章介绍了数值模拟的基本方法,后面两章将介绍这些方法在单相和两相渗流问题

中的应用,同时了解油藏数值模拟模型和软件的基本建立过程。

§5.1.1.1.1 径向渗流问题的数值模拟方法

一、定解问题的数学模型

问题条件:油藏内一口井生产时,油藏内的压力分布

(1)单相;(2)岩石、流体均质;(3)达西定律;

(4)流体微可压;(5)岩石不可压;(6)无重力。

(控制方程) (1)tp

Kc

rpr

rr ∂∂

=⎟⎠⎞

⎜⎝⎛

∂∂

∂∂ φµ1

(2)iprp =)0,( ew rrr ≤≤

t >0 (封闭外边界) (3a)0=∂∂

=rerrp

t >0 (定压外边界) (3b)( ) ee ptrp =,

t >0 定产 (4a),2 qrpKhr

wrr =∂∂

=µπ

t >0 定井底流压 (4b)( ) ,, wfw ptrp =

二、不均匀网格下的差分方程

本段内容需注意以下问题:

(1)二阶差商的构造方法?与前面的均匀网格不同,不能直接用 Taylor 展式。

(2)一维点中心网格和段中心网格区别?

(3)两种网格的差分格式是否一样?

(一)直角坐标均匀网格下的差商

1. 一阶差商

(中心差商)xpp

xp ii

xx i ∆−

=∂∂ −+

= 211

将网格细化 (5)x

pp

xp ii

xx i ∆

−=

∂∂ −+

=21

21

( 实际计算中辅助点值并不知道,故此式只是中间推导过程。)2. 二阶差商

xi-3/2 xi-1/2 xi+1/2 xi+3/2xi+5/2 P(x)P(x)P(x)P(x)

xi-2 xi-1 xi xi+1

xi+2 xi+3

xxxx

Page 48: 油藏数值模拟基础

(6)

211

11

21

21

2

2

2

)(

xppp

xxpp

xpp

xxp

xp

xp

xxp

iii

iiii

ii

xxxx ii

∆+−

=∆

∆−

−∆−

=

∂∂

−∂∂

=∂∂

∂∂

=∂∂

−+

−+

−+

==

(二)直角坐标非均匀网格

点中心网格:

构造特点:

(1)边界是节点

(2)先定节点 ix

(3)辅助点2

1

21

±

±

+= ii

i

xxx

(4)网格步长21

21

−+−=∆

iii xxx

(5)辅助步长 1211

21 , −

−+

+−=∆−=∆ iiiiiixxxxxx

块中心网格:

构造特点:

(1) 边界非节点

(2) 先定辅助点 xi+1/2

(3) 节点位置由 确定。2/)( 2/12/1 −+ += iii xxx

(4) 12/112/12/12/1 ,, −−++−+ −=∆−=∆−=∆ iiiiiiiii xxxxxxxxx

一阶差商

xxxx

xi-3/2 xi-1/2 xi+1/2 xi+3/2xi+5/2 P(x)P(x)P(x)P(x)

xi-2 xi-1 xi xi+1

xi+2 xi+3

△xi △xi+1

△xi-1/2 △xi+1/2

xi-3/2 xi-1/2 xi+1/2 xi+3/2xi+5/2 P(x)P(x)P(x)P(x)

xi-2 xi-1 xi xi+1

xi+2 xi+3

△xi △xi+1

△xi-1/2 △xi+1/2

xxxx

Page 49: 油藏数值模拟基础

(中心差商) (7)i

iixx x

ppxp

i ∆−

=∂∂ −+

=2/12/1

二阶差商:

(8)

2/1

1

2/12/12/1

1

2/1

1

2/1

1

21

21

2

2

)11(−

−++

+

+

+−+

=

∆∆+

∆∆+

∆−

∆∆=

∆∆−

−∆

=∆

∂∂

−∂∂

=∂∂

ii

i

i

i

iiii

i

i

i

ii

i

ii

i

ii

xx

xxp

xp

xxxxp

xxpp

xpp

xyp

xp

xp

i

高阶差商建立规则:(1)微商逐层变差商;(2)函数取当地值

(三)柱坐标系不均匀网格差分方程

)11(

)10()(

)9(1

11

2/1

12/1

2/1

2/1

2/1

2/1

2/1

12/1

2/1

12/1

2/1

12/1

2/12/1

tP

Kc

rrp

rr

rrp

rr

rr

rrp

rr

rrPPr

rPPr

r

rrPr

rPr

rrPr

rr

ii

i

i

i

ii

i

i

i

i

i

ii

i

i

i

i

i

iii

i

iii

i

i

rr

irr

ii

i

∂∂

=

∆∆+

∆∆+

∆−

∆∆=

∆∆−

−∆

−∆

∂∂

−∂∂

=⎟⎠⎞

⎜⎝⎛

∂∂

∂∂

−−

+

+

+

++

−−

+

++

=

−+

φµ

若用块中心网格,由(9)和网格关系得:

(12)i

ii

iii

ii

iii

irr r

rrPPr

rrPPr

rrPr

rr i ∆∆∆

−−

∆∆−

⎟⎠⎞

⎜⎝⎛

∂∂

∂∂ −

−−

+

++

=)+()+(

= 1

12/1

1

12/1 5.05.011

(点中心不存在(12)形式的关系式,其实没必要写出(12)式,由(10)式可直接进行求解。

在(10)式中 )2/12/112/1 , −+++ −=∆−=∆ iiiiii rrrrrr

(由(10)和(11)形成的差分方程当 时,可能不稳定,需要进行坐标变we rrrr ≈<< 或

换,改变二阶微商形式,从而改变二阶差商形式,保证计算格式稳定)

(四)变换坐标下的差分方程

坐标变换: )(, ixwi

xw errerr ==

代入(1)式,得 (13)tP

Kcre

xP

wx

∂∂

=∂∂ φµ22

2

2

将(8)式代入(13),并将右端项取向后差商 ,得

Page 50: 油藏数值模拟基础

(14)tpp

Kcre

xxp

xp

xxxxp n

ini

wx

ii

ni

i

ni

iiii

ni i

∆−

=∆∆

+∆∆

+∆

−∆∆

+

+−

+

−++

++

122

2/1

11

1

2/12/12/1

11 )11( φµ

若取等距网格△x :

(15)tpp

Kcre

xppp n

ini

wxi

i

ni

ni

ni

∆−

=∆

+− +∆

+−

+++

122

11

111 2 φµ

记 ,( 15)式变为:tx

KcreM w

xi

∆∆∆

222 φµ

(16)ni

ni

ni

ni MPPPMP −=++− +

−++

+1

111

1 )2(再令 1,,2,1,,2 −=−=+= niMPdM n

ii ⋯λ

则有: (17)ini

ni

ni dPPP =+− +

+++

−1

111

1 λ(17)式与边条件一起构成线代方程组,解之则得问题解。

三、问题处理

(一)不均匀网格的确定(因为离井点越远,P变化趋缓,网格应越大。)

若对 x 取均匀网格: ,则可得如下图所示 ri的不均匀网格:xixi ∆=

其中x

iixi

wx

wi errererr i ∆+

∆ === /, 1且

xnwnn

xw

xw

xw

w

errx

errxerrxerrx

rrx

=

=

=

=

=

:

:

:

:

:

333

222

11

00

⋮⋮

(二)不同边界条件下的三对角系数矩阵方程

1.外边界定压,内边界定产

由(3b)得:

een PtrPP == ),(代入(17)得:

(18)ennn PdPP −=− −−− 112 λ由(4a)得:

wf

x

PPKhq

xPP

qxPKh

==∆−

=⎟⎠⎞

⎜⎝⎛∂∂

=

001

0

,2

2

πµ

µπ

rw r1 r2 r3re rrrr

0 1 2 3 4 n

Page 51: 油藏数值模拟基础

)19(

,2

01

0

dPP

xKhqd

wf =+−

∆=

记πµ

对于 i=1,2,3,……,n-2 点,代入差分方程(17)式并与(18)、 (19)联立,可得原问题的三

对角系数矩阵方程组为:

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

−−

−=

===

−− enn

wf

Pd

ddd

P

PPP

ni

iii

1

2

1

0

1

2

1

1

1111

11

1

210

⋮⋮⋮⋮⋮⋮⋮λ

λλ

2.外边界封闭、内边界定压

此时边界条件是(3a)和(4b):

,0=∂∂

=rerrp ( ) ,, wfw ptrp =

外边界条件离散化得: 02

11 =∆− −+

xPP nn

即: 11 −+ = nn PP对于边界点 i=n,将上式代入(17)式得:

, 即 (20)nnn

nn

nn dPPP =+− +

+++

−1

111

1 λ nnn

nn dPP =− ++−

1112 λ

对于井点 i=0,此时(19)式中 Pwf已知,d0和 P1未知,所以将(19)式写成:

)21(10 wfPPd −=−对 i=1 点,将(21)式代入(17)式得:

(22)11

21

10 )1( dPPd nn =+−+− ++λ对于 i=2,3,……,n-1 点,代入差分方程(17)式可得三对角系数矩阵方程组为:

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎡−

=

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−

−−−−

=−=

===

−−

n

n

fw

n

n

dd

ddP

PP

PPd

nini

iii

1

2

1

1

2

1

0

211

11111

11

1

210

⋮⋮⋮⋮⋮⋮⋮⋮⋮

λλ

λλ

四、程序编制

Page 52: 油藏数值模拟基础

§5.2 平面渗流问题的数值模拟方法

t=0

输入 Pi,Q(Pwf)

输入 tmax,△t

输入△x,ri,M 及系数矩阵 A

t=t+△t

计算对应边界条

件下的右端项

解 dPA =

打印 t,r,P

t<tmax?

结 束

开始

输入 nCKrr ew ,,,,,, µφλ

YYYY

N

Page 53: 油藏数值模拟基础

一、完整数学模型

条件:(1)单相; (2)流体微可压; (3)达西渗流;

(4)岩不可压;(5)无重力影响; (6)渗透率各向异性及非均质

(1)tPCq

yPK

yxPK

x vyx

∂∂

=+⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

∂∂

+⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

∂∂

φµµ

(2)iPyxP =),,( 0 ),( yx LyLx ≤≤≤≤ 00

外边界条件: )3((),,(),0(),,(),,0( 定压), eyx PtLxPtxPtyLPtyP ====

或:)4()(0

00封闭=⎟

⎟⎠

⎞⎜⎜⎝

∂∂

=⎟⎟⎠

⎞⎜⎜⎝

∂∂

=⎟⎟⎠

⎞⎜⎜⎝

∂∂

=⎟⎟⎠

⎞⎜⎜⎝

∂∂

==== yLyyxLxx yP

yP

xP

xP

内边界条件: 定井产量 (5)vq

或: 定井底流压 (6) )( ijwfij PpJq −=

二、差分方程

左端项:考虑非均质系数,任一网格(i,j)处有:

)7(2/1

,1,

,2/12/1

,,1

,2/1

,2/1,2/1

i

i

jiji

ji

x

i

jiji

ji

x

i

ji

x

ji

x

x

xxPPK

xPPK

xxPK

xPK

xPK

x

−⎟⎟⎠

⎞⎜⎜⎝

⎛−

−⎟⎟⎠

⎞⎜⎜⎝

=

⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

−⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

=⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

∂∂

−+

+

+

−+

µµ

µµ

µ

)8(2/1

1,,

2/1,2/1

,1,

2/1,

j

j

jiji

ji

x

j

jiji

ji

x

y

yyPPK

yPPK

yPK

y ∆

−⎟⎟⎠

⎞⎜⎜⎝

⎛−

−⎟⎟⎠

⎞⎜⎜⎝

=⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

∂∂ −

−+

+

+ µµ

µ(9)jviiiv qyxq ,),( =

右端项:与一维情况类似,采用隐式差分格式:

(10)tPP

CtPc

nji

nji

ji ∆

−=

∂∂ +

,1

,,φφ

(7)、( 8)、( 9)、( 10)代入(1),得:

)11(,1

,,,

2/1

1,,

2/1,2/1

1,

11,

2/1,

2/1

1,1

1,

,2/12/1

1,

1,1

,2/1

tPP

Cqy

yPPK

yPPK

xxPPK

xPPK

nji

nji

jijivj

j

jiji

ji

y

j

nji

nji

ji

y

i

i

nji

nji

ji

x

i

nji

nji

ji

x

−=+

∆−

⎟⎟⎠

⎞⎜⎜⎝

⎛−

∆−

⎟⎟⎠

⎞⎜⎜⎝

+

∆−

⎟⎟⎠

⎞⎜⎜⎝

⎛−

∆−

⎟⎟⎠

⎞⎜⎜⎝

+−

−+

+++

+

+−

+

−+

+++

+

φµµ

µµ

(10)式两端同乘以 ,h—油层厚度,得如下形式:hyxV jiji ∆∆=,

Page 54: 油藏数值模拟基础

(12)

( ) ( )( ) ( )

( )njinji

jipjiv

nji

njijy

nji

njijy

nji

njiix

nji

njiix

PPtCV

Q

PPTPPT

PPTPPT

.1

,,

,

11.

1,2/1,

1.

11,2/1,

1,1

1,2/1,

1.

1,12/1,

−∆

=+

−+−+

−−−

+

+−

+−

++++

+−

+−

++++

合并相同未知量,得:

(13)ijnjiij

njiij

njiij

njiij

njiij fPdPbPePaPc =++++ +

++

+++

−+−

11.

1.1

1.

1.1

11.

其中: , Nx,Ny—x 和 y 方向网格数,共 Nx,Ny个方程。⎟⎟⎠

⎞⎜⎜⎝

⎛∆

+−= nji

jipjivij P

tCV

Qf ,,

,

将(13)形式的差分方程写成矩阵形式求解,逐点展开过程与第三章相同。矩阵形式为:

(14)bPA =⋅其中系数矩阵 AAAA为五对解矩阵,通常为对称矩阵,同时也是稀疏矩阵。

(15)

[ ]( ) ( )[ ]NxNy

TnNxNy

nnn

bbbbb

PPPPP

,,,,

,,,,

3)2()1(

1)(

1)3(

1)2(

1)1(

⋯⋯

⋯⋯

=

= ++++

(13)式是差分方程通式,对于内点其形式不变,在边界及其邻点的形式由具体边条件决定。

三、传导系数及边界条件的处理

(一)传导系数

2/1

2/1,2/1,

2/1

,2/12/1, ,

±

±±

±

±± ∆

∆⎟⎟⎠

⎞⎜⎜⎝

=∆

∆⎟⎟⎠

⎞⎜⎜⎝

=j

iji

y

jyi

jji

x

ix y

hxK

Tx

hyK

Tµµ

为了避免:(1)地质不均匀性;(2)网格不均匀引起的误差,采用平均方法:

算术平均:2

1,,2/1,

±±

+= ixix

ix

TTT

几何平均: 1,,2/1, ±± = ixixix TTT

调和平均: ,1,,

1,,2/1,

2

±

±± +

⋅=

ixix

ixixix TT

TTT

1,,

1,,2/1,

2

±

±± +

⋅=

jyjy

jyjyjy TT

TTT

其中: 11

1,, // ±±

± ∆∆⎟⎟⎠

⎞⎜⎜⎝

⎛=∆∆⎟⎟

⎞⎜⎜⎝

⎛= ij

i

xixij

i

xix xhyKTxhyKT

µµ,

一般用调和平均,其优点:一方为零则为零,一方很大不会很大。

(二)不同边界条件下的线性代数方程组

将不同边界条件代入通式(13)或(14)式,便可得到边界点差分方程。

1.外边界定压、内边界定产

(1)外边界:

iiii-1 iiii iiii+1

Page 55: 油藏数值模拟基础

取点中心网格,边界点压力已知 : 。( ) ( ) ( ) ( ) eyx PNiPiPjNPjP ==== ,1,,,1只求内部节点:(Nx-2)(Ny-2)个未知量。对每个节点利用(14)式并将边。xy NiNj ,1,,1 ==

界点值代入即得:

( )( ) ( ) ( )( ) ( ) ( )( ) ( ) ( ) ( )( ) ( )( ) )6(67)2(27712127887777:7 PaPabPaPaPak −+=++=(左端项皆为未知量,右端项皆已知量)

( )( ) ( ) ( )( ) ( ) ( )( ) ( ) ( )( ) ( ) ( )( ) ( ) ( )131818131414131313131212138813:13 bPaPaPaPaPak =−+++=

未知节点共 12 个:(7),( 8),( 9),( 12),( 13),( 14),( 17),( 18),( 19),( 22),( 23)

和(24)。对应 12 个方程,组成方程组:

。bPA ′=⋅其中 AAAA的形式与(15)式相同。

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )( )TPPPPPPPPPPPPP 242322191817141312987 ,,,,,,,,,,,=

(第二项与该网格具体位置有关)。( ) ( ) dkdkk Pabb ∑−='�

(2)内边界:

井点 ;( ) ⎟⎟⎠

⎞⎜⎜⎝

⎛∆

+−= nk

pkvkk P

tCV

Qb

非井点 。( )nk

pkk P

tCV

b∆

−=

2.外边界封闭、内边界定井底流压

(1) 外边界:采用块中心网格,虚拟网格。封闭条件是:

Ny

26 27 28 29 30

21 22 23 24 25

16 17 18 19 20

11 12 13 14 15

6 7 8 9 10

87 (26) (27) (28) (29) (30)

6 (21) (22) (23) (24) (25)5 (16) (17) (18) (19) (20)4 (11) (12) (13) (14) (15)3 (6) (7) (8) (9) (10)2 (1) (2) (3) (4) (5)1

NNNNy

Nx1 2 3 4 5

jjjj

iiii

Page 56: 油藏数值模拟基础

1 2 3 4 5 6 7 Nx

(16)

( ) ( )( ) ( )( ) ( )( ) ( )jNPjNP

jPjPNiPNiP

iPiP

xx

yy

,1,,2,1

1,,2,1,

−==

−==

求解时,可以直接用(13)和(16)式组成方程组,也可以用如下方法得到简化方程组。

对于任一边界点,用(16)式代入(13)式,得其差分方程。如(i,j)=(2,7)点:

(17)7,21

8,21

7,21

7,31

7,21

7,21

7,21

7,17,21

6,27,2 fPdPbPePaPc nnnnnnnn =++++ ++++++++

将(16)式中第一、二式代入(17)式,得:

(18)7,21

7,37,31

7,27,21

7,27,21

6,27,2 )( fPbPdeaPc nnnn =++++ ++++

对(i,j)=(2,3)有:

3,21

4,23,21

3,33,21

3,23,23,21

2,23,2 )( fPdPbPeaPc nnnn =++++ ++++

内点格式同(13)式,未知量个数为(Nx-2)(Ny-2) ,方程个数同未知量个数。按顺序重新编号,将

各点差分方程放在一起,写成矩阵形式即可求解。

(2) 内边界:

SRRPPhKQ

w

e

wfji

jijiv

+

−⋅⎟⎟

⎞⎜⎜⎝

⎛=

ln2 ,

,, µ

π

记: ,则得:SRRKhJw

e

ji

+⎟⎟⎠

⎞⎜⎜⎝

⎛= ln2

,µπ

(19)( )⎪⎩

⎪⎨⎧

−−

=−=+

显式

隐式

),(),(

,

1,

,,fw

nji

fwnji

wfjijiv PPJPPJ

PPJQ

将(19)式的隐式形式代入(i,j)点差分格式(13)式;即可得:

nji

jipwf

njiij

njiij

njiij

njiij

njiij

PtCV

JP

PdPbPJePaPc

,,

11.

1.1

1.

1.1

11. )(

∆−=

+++++ ++

++

++−

+−

若用显式,则(13)式只有右端项发生变化。

一般地,都要在结果中给出井产量:求得 Pi,jn+1 ,代入(19)式得Qv i,,j 。

四、程序框图

网格信息

地层岩心资料与流体性质

N

开 始

输入 , , ,μ),( jiK ijφ C

输入 Nx,Ny,,△xi,△yj,h(△z)

输 入 ,maxt

=0t

= +t t t∆

计算 kb

解 =A P�b�

计算 , 和pijV 2/1, ±ixT 2/1, ±jyT

输入 ),( jiPi

输入 或ijQ wfP

计算系数矩阵 A

t>tmax ?

打印 t,(i,j),P,Q

结 束

Y

Page 57: 油藏数值模拟基础

未知量初值

生产制度(井的信息)

计算控制

本章内容总结: 1. 数学模型; 2. 差分离散;

3.参数项及边条件处理,建立线性方程组; 4. 编程序步骤。

重点:1. 非均匀块中心和点中心网格的特点和构造方法(掌握)

2. 非均匀网格二阶偏微商的差分离散(掌握)

3. 边条件处理:4种边条件(掌握)

Page 58: 油藏数值模拟基础

第六章 两相渗流数值模拟方法

§6.1 两相渗流完整的数学模型

条件:(1)油水两相; (2)岩石、流体均可压; (3)达西流动;

(4)岩石各向异性和非均质;(5)考虑毛管力; (6)无重力。

控制方程:

(1)( )tSqPKK oo

o

ro

∂∂

=+⎟⎟⎠

⎞⎜⎜⎝

⎛∇•∇

φρµ

ρ00

o

(2)( )

tSqPKK ww

www

rw

∂∂

=+⎟⎟⎠

⎞⎜⎜⎝

⎛∇•∇

φρµ

ρw

辅助方程:

(3)wowc PPSP −=)((4)1=+ wo SS

初始条件:

(5))( wicoit PPPP +===00

(6))( oiwitw SSS −=== 10

外边界:

(7)(定压)(封闭)或 ePPnP

==∂∂

ΓΓ 0

内边界: 给定Pwf 或给定 ql=Jl(Pi,j-Pwf) (8)

§6.2 二维两相渗流差分方程的建立

一、方程右端差分离散

(1)、( 2)式右端项展开:

(9)( ) ( )oooo

oo

oo

oo CCStS

tP

tS

f +=∂∂

+∂∂

=∂

∂φρβφρβ

φρ,

(10)( ) ( )wfwww

ww

ww

w CCStS

tP

tS

+=∂∂

+∂∂

=∂

∂φρβφρβ

φρ,w

(11)( ) n

njoi

njoi

jin

njoi

njOi

joi tSS

tPP

−+

− ++,,

,,

离散1

0

1

φρβ

(12)( ) n

njwi

njwi

jiwn

njwi

njwi

jwi tSS

tPP

−+

− ++,,

,,

离散11

φρβ

二、左端项的差分离散

Page 59: 油藏数值模拟基础

(1)式左端第一项=

( ) ⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

∂∂

+⎟⎠

⎞⎜⎝

⎛∂∂

∂∂

=∇⋅∇yP

yxP

xP yx

00

0000 λλλ

(13)

( ) ( )

( ) ( )jOijijj

ojjOiji

jj

oj

jOijiii

oijOiji

ii

oi

ji

ooy

ji

ooy

j

ji

oox

jiox

i

PPyy

PPyy

PPxx

PPxx

yP

yP

y

xP

xP

x

,,,,

,,,,

,,

,,

−∆∆

+−∆∆

+

−∆∆

+−∆∆

=

⎥⎥⎦

⎢⎢⎣

⎡⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

−⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

∆+

⎥⎥⎦

⎢⎢⎣

⎡⎟⎠

⎞⎜⎝

⎛∂∂

−⎟⎠

⎞⎜⎝

⎛∂∂

∆=

−−

−+

+

+

−−

−+

+

+

−+

−+

102/1

2/110

2/1

2/1

102/1

2/110

2/1

2/1

2/12/1

2/12/1

0

1

1

λλ

λλ

λλ

λλ

(11)、( 13)代入(1)式,两端同乘以 ,得到:hyx ji∆∆

(14)

( ) njoin

joijijoin

njoi

njoi

oji

joioyjjoioxi

join

jioyjoyjoxioxi

joioxijoioyj

Pt

VQ

tSS

V

PTPT

Pt

VTTTT

PTPT

joi

,,

,,

,,

,,

∆−−

−=

++

⎟⎟⎠

⎞⎜⎜⎝

∆++++−

+

+

++++

−++−

−−−−

βφρ

β

1

12/112/1

2/12/12/12/1

12/112/1

同理可得(2)式差分方程:

(15)

( ) njwin

jwijijwin

njwi

njwi

ijwji

jwiwyjjwiwxi

jwinjoiji

wyjwyjwxiwxi

jwiwxijwiwyj

Pt

VQ

tSS

V

PTPT

Pt

VTTTT

PTPT

,,

,,

,,

,,

β−−

−φρ=

++

⎟⎟⎠

⎞⎜⎜⎝

⎛∆

β++++−

+

+

++++

−++−

−−−−

1

12/112/1

,2/12/12/12/1

12/112/1

上两式简记作:

(16)( ) n

njoi

njoi

ijoijjoi

njoijoi

njoijoijoijoi

njoijoi

njoijoi

tSS

Vf

PdPbPePaPc

−φρ+=

+++++

++

++

++−

+−

,,

,,,,,,,,

1

111

11,

1n,

11

11

(17)( ) n

njwi

njwi

ijwijjwi

njwijwi

njwijwi

njwijwi

njwijwi

njwijwi

tSS

Vf

PdPbPePaPc

−φρ+=

+++++

+++

++

++−

+−

,,

,,,,,,,,,,

1

111

11

111

11

(16)和(17)式共有 2M 个方程,4M个未知量,无法直接求解;另外系数与变量为函数关系

Page 60: 油藏数值模拟基础

—非线性方程,须线性化处理。差分方程的求解,主要是处理多未知量和非线性问题。 分

离(顺序)解法和联立(同时)解法。

§6.3 两相渗流差分方程的 IMPES 分离解法

一、方法步骤

1. 利用辅助方程从差分方程中消去 S0 和 Sw 。

令(16)+(17) 得:w

o

ρρ

方程右端=

jwiw

ojoi

jwiw

ojoinoji

jwiw

ojoin

njwi

njoi

n

njwi

njoi

oji

jwiw

ojoi

n

njwi

njwi

wjiw

on

njoi

njoi

oji

ff

fft

V

fftSS

tSS

V

ff

tSS

VtSS

V

,,

,,,

,,

,,,,

,,

,,

,,

)(

ρρ

+=

ρρ

++∆−

φρ=

ρρ

++∆

+−

+φρ=

ρρ

++

−φρ

ρρ

+∆

−φρ

++

++

11

11

11

记 则方程左端=,w

Aρρ

= 0

(18)

jwijoijwijwijoijoi

jwijijoijoijwijwijoijoi

jwijwijoijoijwijwijoijoi

AffPAdPdPAbPbPAePePAaPaPAcPc

,,11

1,1

1111,

+=++

++++

+++

++

++

−−−−

,,,,

,,,,,,,

,,,,,,,

2. 利用 Pc辅助方程消掉 Pw将 Pc = P0 – Pw 代入(18)式得:

(19)ji

joijijoijijoijijoijijoiji

fPdPbPePaPc

,,,,,,,,,

=

++++ ++−− 11,11

其中

,,, ,,,,,,,,, jwijoijijwijoijijwijoiji AeeeAaaaAccc +=+=+=

( )njciw

njciw

njciw

njciw

njciwwijoijij

wqijoijijwijoijij

PdPbPePaPcAAfff

AdddAbbb

1,,1,,11,

,,

++−− ++++++=

+=+=

3. 线性化,显式处理系数矩阵和右端项

(19)式中各系数及右端项皆为Pon+1的函数,同Pon+1一样也是未知的量,所以无

Page 61: 油藏数值模拟基础

法直接求解(19)式得到Pon+1 。这就是(19)式的非线性特点。为此,用上一时间步的未

知量值Pon 代替 Pon+1,求各系数及右端项,实现(19)式的线性化。

要求各系数及右端项,主要需处理传导系数:

1

2/1,2/1,

1

2/1,2/1,

2,

2

±

±±

±

±± ∆+∆

∆=

∆+∆

∆=

jj

njlyi

jlyii

nilxj

ilx yyhx

Txx

hyT

λλ

传导系数的处理,主要是确定导流(流动)系数λln ,以λn

l,x,i+1/2为例说明。

首先将λnl,x,i+1/2分为两部分:

( )( ) ( ) ( )

( )n

j,ill

wrlll

,jixll

rlxlln

l,x,i puskpρ

x,ykpu

skrkpρλ21

21

21

)()()(+++

•==

只是空间函数, 是时空函数。( )yxkx ,( )

( )ll

wrlll

puskp )(ρ

对 用如下方法求得:( ) jixjix kyxk ,2/1,2/1 , ++ =

(1)算术平均方法: )(21

,1,21, xijjxijix

kkk += ++

(2)加权平均法:以网格点对应步长为权反映网格影响,网格大时其对流动影响也大 ,

故对 k 有较大贡献。

( ) 2/,,1,1,21,

21, ijixijixijix

xkxkxk ∆+∆=∆ ++++

ii

ijixijix

jix xxxkxk

k∆∆

∆+∆= +

+ +块中心网格

1

,,1,1,

,21

,

(3)几何平均法: jixjixjixkkk ,,,1,,

21, +

+=

(4)调和平均:一维流动为例,根据渗流和网格关系有:

, 同时i

iix

i

iix

i

i

xx xpk

xpk

x

pkv

∆∆

=∆∆

=∆

∆=

+

++

+

+

,1

11,

21

21

⎪⎩

⎪⎨⎧ ∆+∆=∆

∆+∆=∆

++

++

)(21

)(21

121

121

iii

iii

ppp

xxx

ix

i

ix

i

ii

ix

kx

kx

xxk

,1,

1

1

21

, ∆+

∆∆+∆

=⇒

+

+

+

+

对 采用上游权衡方法或称迎风格式,如图 6.3.1 所求。),( trFkl

rll �=µρ

i i+1/2 i+1

Fin+1 ≈ Fin12/1

++niF

V

Fin niF 2/1+

图 6.3.1

n

n+1

Page 62: 油藏数值模拟基础

( ) ( )( )

n

jsnll

nlrl

nll

n

jil

rll

PuskP

uK

,

1

,2/1⎥⎦

⎤⎢⎣

⎡ ⋅ρ=⎟⎟

⎞⎜⎜⎝

⎛ ρ+

+

其中 。{ jiljil

jiljil

PPiPPis ,1,,,

,1,,,

,,1

+

+

><+= 当

经过以上步骤,得到线性化的差分方程组:

, ——五对角矩阵FpA o =⋅ A4. 解上述线性代数方程组(20),得 :

1,,0+njlp

由 得n

jicn

jin

jiw ppp ,,1,,0

1,, −= ++ 1

,,+njiwp

5. 将 代回(17)式,显式求解得: ;1,,

+njiwp

1,,

+njiws

再由 得 ;( )1,,

1,,

++ = njiwc

njic spp 1

,,+njicp

最后由 得 ;1,,

1,, 1 ++ −= n

jiwn

jio ss 1,,+njios

6. 求产量或井底流压,用显式处理: ( )wfnijll PPJQ −=

二、提高 IMPES 精度的方法:主要针对饱和度求法

1. 联合方程求解方法:

用油、水方程(16)( 17)相加,将 和 的已知值及关系式1,,0+njip 1

,,+njiwp =+1

,,n

jios

代入,得:1,,1 +− njiws

(21)

( ) wijoijn

njiw

njiw

owijn

jiwwijn

jioij

njiwwij

njioij

njiwwij

njioij

njiwwij

njioij

njiwwij

njioij

fftss

Vpdpd

pbpbpepe

papapcpc

++∆

−−=++

++++

+++

++

−+

+

++

++

++

+−

+−

++−

,,1,,1

1,,1

1,,0

1,1,

1,1,0

1,,

1,,0

1,1,

1,1,0

1,,

11,,0

ρρφ

记左端项 ,则有:ijh=

(22)( ) ( )wijoijijowij

nn

jlwn

jlw ffhv

tss −−−

∆+=+

ρρφ,,1,,

用(22)式可求得 。较直接用(17)式方程中参量增加,稳定性增强,精度提高。1,,

+njlws

2. 一步压力多步饱和度方法

原理如图 6.3.2 所式,缩小时间步长,减少显式求解饱和度时的误差:R=O( ) 。t∆

nwS

nm

nm

nnn ttttt ∆∆∆∆∆ −13210

( )一步1+nwS

SSSSwwww

( )步mS nw

1+

(真值)1+nwS

△tttt nnnn

图 6.3.2 一步压力多步饱和度方法示意图

tttt

Page 63: 油藏数值模拟基础

IMPES 方法适用范围:较简单情况,饱和度变化较缓慢,方程非线性不太强。

§6.4 半隐式((((联立))))解法

系数处理的显式、半隐式和隐式—由线性化方式不同而区分。

注意与差分方程显式和隐式的区别。

一、系数的半隐式处理

1. 相对渗透率: ( ) ;,,11 wlskk nlrl

nrl o== ++

( ) nrl

nrl

nnrln

rl

nn

n

nrln

rlrln

rlrln

rlnrl

sskksdsdkk

tts

dsdkkdt

dtds

dsdkkdt

dtdkkk

∆+=∆+=

∆∆∆

+=+=+=+

'

1

即: (1)( ) ( )nlnlrl

nrl

nlrl sskksk −+= ++ 1'1

其中 预先做成图表,如图 6.4.1 所示。将给定的相渗曲线分为若干个小( )nrlrl skk ′=′

区间,每个小区间求得一个 (斜率),存贮于计算机中。实际计算时,(1)式中的rlk ′ rlk′取 所在小区间的值。

nls

0 Sln 1.0 S1图 6.4.1 处理相对渗透率的半隐式方法

KKKK′′′′rlrlrlrl

KKKKrlrlrlrl

KKKKrlrlrlrl

Page 64: 油藏数值模拟基础

2. 毛管压力: (2)( )( )nlnl

nlc

ncl

l

cnc

nc ssspps

dsdppp −+=∆+= ++ 1'1

3. 产量项: (3)nl

l

cl

l

cnl

nl p

dpdqs

dsdqqq ∆+∆+=+1

4. 与压力相关的系数 用显式: (4)l

l

µρ

n

l

l⎟⎟⎠

⎞⎜⎜⎝

⎛µρ

由以上各式可得:

(5)( )[ ] ( )nlnll

nl

nl

nlrl

nrl

n

l

lnrl

n

l

lnl sssskkkkk −λ+λ=−+⎟⎟

⎞⎜⎜⎝

⎛µρ

=⎟⎟⎠

⎞⎜⎜⎝

⎛µρ

=λ ++++ 1'1'11

二、半隐式差分方程

定义:i

jiji

i

jijiyx y

uuxuu

uuu∆

−+

−=∆+∆=∆ −+−+ 2/1,2/1,,2/1,2/1

,yxuu yx222 ∆+∆=∆∆=∆ ( ) nn

ijnijt tuuu ∆−=∆ + /1

1. 利用(5)式和§6.3 中(9)-(10)式对原微分方程进行离散,得:

(6)( ) ( )[ ]

wlPSPSSP

ltlltl

nl

nl

nl

nl

nl

nl

,

111

o, =∆β+∆ρφ=

∆−λ′∆+∆λ∆ +++

(6)式跟§6.3 中(16)和(17)式相比,消除了原左端项的强非线性,但多出了弱非线性的第 2项。

2. 进一步线性化。令(6)式右端第二项中 ;同时右端项系数取 值。nl

nl PP =+1

ntt =3. 消去 PW 和 S0,简化方程未知量

将 代入(6)式中油相方程,得:wSS −=10

(7)( ) ( )[ ] otowtno

nw

nwo

no

no PSPSSP ∆+∆−=∆−′∆−∆∆ ++ βρφλλ o

11

再将 代入(6)中11

01 +++ −= n

cnn

w PPP ( )( )nwnw

nwc

nn SSSPPP −−−= ++ 1'1oo

水相方程,得:

( )[ ]{ } ( )[ ]( )ctwwtw

nw

nw

nww

nw

nwc

no

nnw

PPSPSSSSPPP

−∆+∆=∆−′∆+−′−−∆∆ +++

0

1110

βρφλλ

= , (展开 ) (8)otwwtwcw PSP ∆+∆′− ββφρ )( ctP∆若网格总数为 N 个,则上述方程(7)+(8)共 2N 个,未知量为 2N 个。

4. 线性方程组及其求解方法

由(7)、( 8) (9)FXA =⋅⇒(9)式中 为 11 对角条带形稀疏矩阵,半带宽为 2Nx+1,Nx 为较少方向网格数。A

Page 65: 油藏数值模拟基础

, 为右端已知项。(9)形式的差分方程解法有[ ]TwNoNwowo SPSPSPX ,,,,,, 2211 ⋅⋅⋅=� F

专门讨论。

由(9)联立求解得 ,11 ++ n

wijn

oij SP 和

再由辅助方程 ,11 ++⇒ n

oijn

cij SP 、

由111 +++ −= n

cn

on

w PPP 1+⇒ nwijP

所以称联立(同时)解法。

三、方法特点:

(1)精度高、稳定性强;(2)解法复杂,内存占用大。

§6.5 IMPIMS(IMPIMS(IMPIMS(IMPIMS(分离))))解法

一、构造方法

1. 用 IMPES 方法中压力方程求解压力Poijn+1 ;

2. 将Poijn+1 代入半隐式方法中的水相方程,隐式求解 Swijn+1。

用差分算子形式写成(令 Pcn=Pcn+1):

(1)( )[ ] ( ) ( ) otwoncw

nowo PAPAPA ∆+≈∆∆−∆+∆ + ββλλλ 1

——跟§6.3 中(19)式完全相同。

[ ]{ } ( ) ( )[ ]nwnw

nmww

nw

nwc

nc

no

nw PSSSSSPPP ∆−⋅∆+−⋅−−∆∆ +++ 1'1'1 )( λλ

(2)( ) otwwtwcw PSP ∆+∆−= ββφρ '

二、特点:

1. 饱和度求法:半隐式稳定,吸取了 Semi_Implicit的优点,避免了 IMPES 的缺点。

2. 方程阶数低,省内存和计算量。吸收 IMPES 的优点,避免半隐式的缺点。

* 注:无论在模拟还是在实际生产中, 饱和度分布比压力分布对油藏流动和生产的

影响更大,属于敏感参数。跟压力相比,饱和度更不易改变,而一旦改变,则无论对

生产数据还是储量数据,影响都很大,所以处理饱和度须十分小心。

§6.6 边界条件的统一化处理

工程上使用的计算机数模软件必须具有通用性,实际上同一类型油藏的流动控制方程是

一样的。但其边界条件造千变万化,数值模型及计算机软件中的边界处理方法应该适用于各

种边界条件,即用统一方式处理各种不同边界条件,同时还要求构造简单、使用方便。

一、边界形状

无论边界形状如何,首先用一个长方形或长方体将求解区域包围,并使长方体(形)的

体(面)积为最小,再将此长方体(形)网格化,然后按实际求解区域形状确定边界网格,

就是将边界网格化,同时注销界外网格。

因实际油藏边界形状复杂,不可能完全落在网格点上,所以只能对边界进行近似网格化 。

如图 6.6.1。

Page 66: 油藏数值模拟基础

图 6.6.1

二、边界条件处理

数模软件在对实际问题进行求解时须自动生成线性方程组。如果油藏边界形状较复杂,

再加上不同的边界条件用不同的离散处理方法,方程组系数矩阵的形成过程及其元素分

布将很复杂,难以自动实现,所以采用如下方法:

首先在边界网格外设一排虚拟网格,然后:

对封闭边界,令虚拟网格渗透率为零(或 P 虚=P 边),代入差分方程消除 P 虚项。

对已知流量边界,在封闭边界网格加入定流量控制的源汇项。

对定压边界,在封闭边界网格中加入定压控制的源汇项。

在后两种情况中,源汇产量跟网格压力的关系是核心问题,应根据地层的具体性质确定 。

这些源汇流量跟油气藏的井产量不是同一概念。

§6.7 两相渗流数模程序编制

以油水平面二维两相渗流为例,介绍油藏数值模拟程序软件编制的全过程,为今后应用

打下基础。

物理问题: 如图 6.7.1 所示。取五点法注采系统的一个单元,用 IMPES方法求解该单

元的压力和饱和度分布。已知条件如下:

油藏均质等厚,岩石和流体均可压缩,达西渗流,不考虑毛管力和重力。单元边长 600m,

油层厚 10m,绝对渗透率为 1µm2,孔隙度为 0.25,综合压缩系数为 1.0×10-4MPa-1 ,油粘度

为 5mPa.s,水粘度为 1.0mPa.s,原始地层压力为12.0Mpa,原始含油饱和度为 0.8,注水井

底压力 Piwf=15.0Mpa,生产井底压力 Pwf=10.0Mpa。其相对渗透率与饱和度关系如表 6.7.1。

注入井原始含油饱和度为 0.2,生产井原始含油饱和度为 0.8。

表 6.7.1 相对渗透率与饱和度关系 600m

Piwf=15MPa

600m

Pwf=10M

Pa

图 6.7.1 五点法注采单元

Page 67: 油藏数值模拟基础

一、数学模型

(1)

1

)(

)(

=+

∂φρ∂

=+⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

µρ

∂∂

+⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

µρ

∂∂

∂φρ∂

=+⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

µρ

∂∂

+⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

µρ

∂∂

wo

www

w

rww

w

rww

ooo

o

roo

o

roo

SStSq

yPKK

yxPKK

x

tSq

yPKK

yxPKK

x

初始条件: ( ) ( ) iwi SyxSPyxP == 0,,,0,,

边界条件 ,(Г为外封闭边界);0=∂∂

ΓnP

, (Г1为注水井边界); , (Г2为生产井边界)。iwfPP =Γ1 wfPP =Γ2

二、网格划分和差分方程

(一)网格:均匀步长 ,求解区域 (Nx-2)(Ny-2)。如图 6.7.2。yx ∆=∆(二)差分方程

依照§6.2 中步骤可得(1)的差分方程:

(2)

oni,j

onoi,j

noi,j

o

i,joi,j,jioi,ji,joi,j,jioi,ji,joi,j

qPΔtβ

ΔtSS

φρ

PdPbPePaPc

−−−

=

+++++

++−−

1

1111:油相

(3)

wnji

wn

jwin

jwiw

jijwijijwijijwijijwijijwi

qPtt

SS

PdPbPePaPc

−∆β

−∆

−φρ=

+++++

++−−

,,

1,

1,,,1,,,,1,1,,:水相

其中 ,/,/ 22/1,

22/1, xayc lijliljjli ∆λ=∆λ= −−

,/,/ 22/1,

22/1, ydxb ljjlilijli ∆λ=∆λ= ++

序号 Sw Kro Krw123456789101112

0.000.100.200.300.400.500.600.700.800.880.941.00

0.880.840.780.690.550.310.190.100.020.000.000.00

0.000.000.000.030.070.110.160.230.300.370.480.60

+q

-q

jjjj

iiii Nx

Ny

图 6.7.2 单元网格划分

Page 68: 油藏数值模拟基础

)/( ,,,,, tdcbae ljlijlijlijlijli ∆β++++−=

,lrlll KK µρ=λ / w,ol =同§6.2 中步骤可得差分方程的 IMPES 方法求解公式:

压力方程: jii,ji,j,jii,ji,ji,j,jii,ji,ji,j fPdPbPePaPc ,1111 =++++ ++−−

(4)

饱和度方程:1,1,

11,,,,

1, ( +

−+−

+ ++∆β

φρ∆

++= njijwi

njijwi

nji

w

ww

njwi

njwi PaPcP

ttqSS

11,,

1,1,

1,,

++

++

+ +++ njijwi

njijwi

njijwi PdPbPe

(5)

其中参数: ,有相同形式,,,, 、、、 jijijijijwiw

ojoiji edcbaaa ,,,, ρ

ρ+=

)(1,,,

w

owo

njijwi

w

ojoiji qqP

tf

ρρ

+−βρρ

+β∆

−= () ,

三、边条件与参数处理

(一)封闭外边条件:取 P 虚=P 边

(二)定压内边界:注意流量分割——角井:1/4;边井:1/2

生产井: ;

w

wfjiji

o

roo

rx

PPhKKq∆

µπ

=208.0ln

)(2

,,

注水井:

w

jiwfji

w

rww

rx

PPhKKq∆

µπ

=208.0ln

)(2

,,

(三)流动系数取调和平均求压力,取上游值求饱和度。

(四)节点相渗用插值法由相渗数据表求得。

(五)方程组解法

四、程序设计与程序编制

根据以上方法和技术路线设计编制 IMPES 方法求解二维渗流问题的计算程序。

五、一般平面二维油水两相数值模拟程序

包括 IMPES、Semi_Implicit 和 IMPIMS 三种方法的选择。具有大型软件的特点。

本章总结

一、内容:数学模型及差分方程,三种求解方法的原理和步骤,边界条件统一处理方法。

二、重点:差分方程的线性化求解方法。

<<<<大作业>>>>:P119,网格 10X10 个,△x=△y=60 米,Tmax=5y=1800d,K=0.5D=500mD。半年(180

天)打印一次结果。

Page 69: 油藏数值模拟基础

第七章 现代油藏数值模拟技术

及发展趋势

§7.1 油藏数值模拟技术发展简介

油藏数值模拟的发展跟计算技术(计算机与计算方法)的发展密不可分。计算技术给油

藏工程研究提供了强有力的手段,而油藏开发工程给计算技术提供了一个理想的应用领域

(雄厚资金、典型问题、方法验证、发展方向)。

四十年代:计算机出现。

五十年代:数模理论方法奠基时代。

六十年代:油田开发简单问题。黑油模型。

七十年代:大型标量计算机 100-500 万次/秒,16M 内存。

八十年代:大型商业软件发展、完善阶段。模型完善,界面友好、运行可靠。

九十年代:成熟阶段,第一循环完成。

§7.2 现代油藏数模技术与大型数值模拟软件

一、油藏数值模拟新技术

(1)向量化(喻为流水线);

(2)并行计算机(喻为不同车间同时生产一部汽车的不同部件);

(3)线性方程组新型解法(预处理共轭梯度法);

(4)局部网格加密方法(不同坐标网格、不同层次网格);

(5)自适应隐式方法;

(6)井的自动化控制技术(关、开、定压、定产等)。

二、大型数值模拟软件

(1)Schlumberger的 eclipse; (3)Landmark 的 VIP;

(2)CMG 的 IMEX; (4)……。

§7.3 油藏数值模拟技术发展趋势

一、发现新的渗流规律,建立新型数学模型

在前面 20年时间里,在计算机软件上投入了最多的力量,今后,研究认识新型物理问

题、构造新型数学及数值模型,将成为数模领域的主题。面临又一次大循环。

各向异性油藏数模软件的研制是当今一个新的研究方向。各向异性油藏渗流机理、油藏

工程、数模软件和配套软件上的研究属国际前沿领域。

二、智能化油藏数值模拟技术

与油气田智能自动布井技术、油气田开发与调整方案智能优化决策技术等相结合,形成

智能化综合油藏数模技术,在数模运算过程中,根据油藏内油气水运动分布的动态变化,自

动调整井网和井的工作制度,找到油气田最优开发方案。

Page 70: 油藏数值模拟基础

第八章 油藏数值模拟应用

前面介绍了油藏数值的理论基础和方法程序,下面研究油藏数值模拟在实际油藏开发中

的应用,即如何对实际油藏进行模拟计算。

功能合适的数模软件

应用条件 全面可靠的油藏资料

经验丰富的工作人员(掌握油藏工程、数模技术和计算机工具三方面技能)

资料数据的处理(油藏地质模型建立)

应用步骤 开发历史拟合

开发方案预测与优化优选

§8.1 问题分析及模型与软件的选择

一、对实际油藏问题应考虑的因素

二、现代油藏数模软件的多功能集成特点及其可选择性

三、计算机硬件环境的改善和步骤

§8.2 油藏几何参数处理与网格系统的建立

将地质模型数值化的第一步,就是把要模拟的油藏区域进行网格离散,原则是:达到足

够精度,尽量减少网格数量,建立网格系统须考虑至少以下几个方面:

一、几何特征:

包括大小、形状和方位,边界及边条件处理,油藏空间跟矩形网格区域最佳配合。

二、井位:

每井必须独占一个网格,两井间隔 3 个网格以上,两井连线与网格方向匹配(即流动

与网格的方向匹配)。

三、各向异性:

对于各向异性渗透率油藏,只有网格方向与渗透率主轴平行时,现有数模软件才能用。

§8.3 地质参数的处理

一、基本地层参数

K - 渗透率 ;φ- 孔隙度;h - 厚度;D - 埋深;C - 压缩系数。需要每个参数在所

有网格点上的分布,处理方式有:

(1)手工:标井点值,画等势线,网格离散值计算。

(2)自动:大型数前处理系统软件,输入油藏图形、井点位置和参数值,输出离散数

据结果。

二、两相流相对渗透率

Page 71: 油藏数值模拟基础

1.归一化处理:将孔隙结构相同、相渗随饱和度变化规律相同的多块岩石的多条实验

曲线归一化。orwc

wcww SS

SSS−−

−=

1经过归一化,多条 曲线变为同一条 曲线,存于计算机中。( ) wwrl SSK − ( ) wwrl SSK ~

使用时只需给出不同的 Swc和 Sor,即可经计算机内部处理得到不同的 数据。( ) wwrl SSK ~2.软件输入:分段离散,贮存备用。

大型软件:多条 曲线,不同网格既可选择不同的归一化曲线(相渗规律)又( ) wwrl SSK −可指定不同的 Swc 和 Sor。

中型软件:一条 曲线,不同网格可指定不同的 Swc 和 Sor。( ) wwrl SSK −

小型软件: 和 Swc 和 Sor 输入唯一值,认为整个油藏的相渗 Swc 和 Sor 都相同 。( ) wwrl SSK −三、毛管力

1.数据拟合:从大量的实验结果中选择合适的毛管压力曲线,一般较有效的 J函数方

法(原理已在油藏物理中学过)。

( ) ( ) 2/1

cos ⎟⎟⎠

⎞⎜⎜⎝

⎛=

φθσKSPSJ

owow

wcw

2.归一化或取近似取双曲线形状,归一化公式:

wcmaxw

wcww

mincmaxc

minccc SS

SSS,

PPPP

P−−

=−−

=

3.数据输入:分段离散,存贮于计算机模型内。与相对渗透率处理相似。

四、三相流动资料数据:K rl 和 Pc

1.相对渗透率:数模中需要三相同时存在时的相对渗透率:

—— 油、气、水 (1)( )( )( )⎪⎩

⎪⎨⎧

===

gwrwrw

gwrgrg

gwroro

SSKKSSKKSSKK

,,,

但实验室目前只能提供两相流相对渗透率。

油水 油气 (2)( )( )⎩

⎨⎧

==

wrworwo

wrowrowSKKSKK ( )

( )⎩⎨⎧

==

grgorgo

grogrog

SKKSKK

实验表明: (3)( ) ( )( ) ( )⎩

⎨⎧

==

grgogwrg

wrwogwrw

SKSSKSKssK

,,

Stone 给出油相相对渗透率经验计算公式:

(4)( )( ) ( )rwrgrgrogrwrowro KKKKKKK +−++=在(4)式基础上不少人又提出了多种修正经验公式(略)

利用(3)和(4)便可确定三相流动中油、气、水相对渗透率。此处理过程一般由软件

内部实现,数据输入只需给出油水和油气两相相渗曲线。

2.毛管力:认为油气藏中气和水分别只和油相接触,因此三相情况的毛管力可以直接取

为两相渗流的毛管压力, (5)( )( )⎩

⎨⎧

==

ocogcog

ocowcowSPPSPP

§8.4 流体资料的处理

Page 72: 油藏数值模拟基础

一、流体高压物性数据(PVT)

油气水物理性质随压力变化规律: B,μ,Rs ∽ P

(一)实验数据曲线:数据输入

(二)使用经验公式。

二、饱和压力(泡点压力)

1.过饱和压力问题

BO μ0

0 Pb1 Pb2 Pb3 P 0 Pb1 Pb2 Pb3 P

随油藏压力增加,当油藏内气体全部溶于油中时,B、μ等物理参数的变化趋势将发

生改变,如上图所示。

2.变泡点压力问题

如果油藏内气体的(相对)量发生变化,如注气或采气引起的气成分和气总量变化,那

么油藏的泡点压力就会随之改变。如图所示。

实验表明,对应于不同饱和压力,当油藏压力超过饱和压力后B、μ的变化趋势基本相

同,因此,流体过泡点的B、μ可用下式表示:

( )( )bllbl

bllbl

PPPPCBB−∆−=

−−=µµµ

其中 为过泡点的斜率,由实验数据统计整理得到,事先提供;llC µ∆,

由实验PVT曲线中得到;Pb泡点压力为油藏动态数据,由数( ) ( )bblbbllb PPBB µµ == 和

模计算得到。

三、温度对流体性质的影响

实际油藏中的温度随深度增加而增加,当考虑温度的影响时,就要对流体参数行进行温

度校正。

Bw

B BO μ μg

Rs Rs

Bg P μ O PP体积系数与压力关系 粘度与压力关系 溶解气油比与压力关

Page 73: 油藏数值模拟基础

( )[ ]( )[ ]( )[ ]( )[ ]

( )[ ]( )[ ]bt

ob

btssbs

btggbg

bt

ob

btggbg

bt

ob

ttttRRRttBBBttBBBtttt

−+=

−+=

−+=

−+=

−+=

−+=

00

00

00

1/1

1/1/

1/1/

µµµ

ρρρρρρ

其中下标b表示实验室测量值,上标t表示该项目在温度t时的校正系数-热膨胀系数 。

四、数据输入形式

数据表输入,计算中使用插值。

§8.5 油藏初始资料的处理

主要是给定饱和度 Soi ,Swi ,Sgi 和 Poi ,Pwi ,Pgi 。以油水两相为例:

(1)首先给定 Poi,由现场测试得到,或者给出油水界面深度 dowc及油水界面压力 Powc再计算 Poi :

(2)毛管力: ( )ddPP owcogowcoi −−= ρ

(3) cowoiwi PPP −=

(4)根据 曲线,求出 Swi。( )wcowcow SPP =(5)Soi=1- Swi.至此油水压力和饱和度初值皆已求得。用同样步骤可求得气相的初始压力和饱和度值。

实际模拟时,数据输入只需完成第一步即可。

§8.6 生产动态资料

一、油水井生产资料

油井单井(按月): (1)油、气、水产量

(2)含水率

(3)生产油气比

(4)井底流压或动液面高度

(5)注入剂产量、浓度(强化采油)

水井单井(按月): (1)注水量

(2)井底流压或注入压力

(3)注剂配量

总体资料: (1)地层压力

(2)油、气、水、注剂总产量

(3)综合含水率、油气比

(4)总注水量,总注剂量

二、油水井的生产条件

采油或吸水指数: (1)根据工程资料人为给定

Page 74: 油藏数值模拟基础

(2)由理论公式计算

注采量:根据试井、试油、生产任务等资料确定。

注采压差:与注采量有关,防止脱气、地层破裂。

§8.7 历史拟合与动态预测

一、历史拟合

1. 概念:所谓历史拟合就是用油田实际生产的动态数据资料,通过油藏模拟试运算,

来检验和修正油藏静态的地质模型,同时弄清油藏内部压力和流体动态分布状况,使计算机

模型与实际油藏保持一致。

这个步骤在整个油藏模拟中的作用非常重要,最终模拟结果的好坏往往取决于此,这也

是反映数模工作人员水平的地方。只有动态历史拟合成功,才能证明计算机中的油藏模型跟

被模拟的实际油藏是一致或相近的。才能保证后面模拟预测的结果有实际意义。

2. 内容和步骤。基本内容包括:

(1)储量: 修改 h,φ,Si 分布;

(2)产量-压力(井底流压、井间压力): 修改K或J-采液指数;

(3)含水率: Kro , Krw , Sor , Swc ,μ0 , Soi , Swi 等;

(4)生产气油比: Krg ,Rs,Sgi 等;

(5)弄清油、气、水分布及压力分布,分析问题所在。

二、动态预测与方案优选

实际油藏研究的目的就是针对油藏生产中存在的问题,找到合理的解决方案。

1.措施方案的设计(以水驱为例)

(1)调整井的注采量; (2)增产措施(压裂、酸化);

(3)调整注采井别(井网变化);(4)侧钻井、侧钻水平井;

(5)加密井、加密水平井。

2.动态预测

对过多的初选方案进行筛选,然后进行模拟预测,计算出油藏生产指标。

3.油藏开发经济指标估算与评价

4.方案优选

各种分析、优选方法,系统工程,专家系统,人工智能,模糊理论等。

[本章总结]

一、数模应用的条件(3个)

二、数模应用的步骤(3个)

三、数模资料处理的主要内容)(5部分)

四、历史拟合的概念、拟合修改的参数、步骤

五、动态预测

Page 75: 油藏数值模拟基础

第九章 实用模拟软件及油藏模拟实例

本节以三维三相黑油油藏数值模拟(ANS)软件为例,介绍油藏数模软件的结构和使用

方法,及利用工程(或商业)数模软件进行实际油藏模拟的一般技能。

本软件共分三部分:输入文件,模拟软件,输出文件。

一、数据输入(文件)系统

采用固定格式输入

输入数据文件名:ANS1.DAT

ANS2.DAT

二、模拟运算系统

适用于三维三相非均质简单各向异性黑油油藏注水、注气开发过程的模拟。

三、数据输出(文件)系统

1、综合结果文件:ANS.RES

2、典型时刻生产单一项指标和压力饱和度分布

3、重新连续运行文件:ANSTRT.DAT

软件详细使用说明见《说明书》。软件程序和应用实例见本书所附计算机磁盘。

Page 76: 油藏数值模拟基础

附录 AAAA 三维三相黑油油藏数值模拟软件数据输入说明

Ⅰ《网格系统》

1、标题(40A2)2、网格块数和原油流变性及控制代码(315)

II=X 方向网格块数

JJ=Y 方向网格块数

KK=Z 方向网格块数

3、标题(40A2)

4、输入用到的代码(315)

KDX—控制 X方向网格大小输入方式的代码

KDY—控制 Y方向网格大小输入方式的代码

KDZ—控制 Z方向网格大小输入方式的代码

代码含义:

KDX=-1 X 方向网格大小相同(只需输入一个值)。

KDX=0 第一层(K=1)第一行的每一网格大小须读入。X方向相同列的网格相同

(须读入 II 个值)

KDY=-1 y 方向上网格大小相同(只须读入一个值)。

KDY=0 y 方向第一层(K=1)第一行的每一网格大小都需读入。Y方向相同列的

网格相同(须读入 JJ 个值)。

KDZ=-1 Z 方向网格大小(网格厚度)相同(只须读入一个值)。

KDZ=0 网格中各层读入不同厚度值(须读入 KK 个值)。

KDZ=+1 每个网格的 Z方向步长都须一一读入(须读入 II×JJ×KK 个值)。

5、x 方向网格大小(DX)(10F8.0)若 KDX=-1, 只读入一常数。

若 KDX=0 ,读入 II 个值(一列一个)。

若 KDX=+1, 读入(II×JJ)个值(一层中每一网格一值)。

6、y 方向网格大小(DY)(10F8.0)若 KDY=-1,只读入一常数。

若 KDY=0,读入 JJ 个值(一列一个)。

若 KDY=+1,读入(II×JJ)个值(一层中每一网格一值)。

7、Z 方向网格大小(DZ)(10F8.0)若 KDZ=-1,只读入一常数。

若 KDZ=0,读入 KK 个值(一层一个)。

若 KDZ=+1,读入(II×JJ×KK)个值(每一网格一值)。

Ⅱ《网格大小修正》

1、标题(40A2)2、网格大小改变的块数与打印代码(4I5)

NUMDX = x 方向网格大小改变的块数

NUMDY = y 方向网格大小改变的块数

NUMDZ = z 方向网格大小改变的块数

Page 77: 油藏数值模拟基础

IDCODE = 打印代码:

IDCODE =0 表示不打印修正

IDCODE=1 表示打印修正

3、x 方向网格步长(DX)修正(3I5,F10.0)若 NUMDX=0,忽略修正

I=被修正网格的 x 坐标

J=被修正网格的 y 坐标

k=被修正网格的 z 坐标

DX=网格(I,J,K)在 x 方向的新步长值

注意:必须事先读入 NUMDX 值

4、y 方向网格步长(DY)修正(3I5,F10.0)若 NUMDY=0,忽略修正

I=被修正网格的 x 坐标

J=被修正网格的 y 坐标

k=被修正网格的 z 坐标

DY=网格(I,J,K)在 y 方向的新步长值

注意:必须事先读入 NUMDY 值

5、z 方向网格步长(DZ)修正(3I5,F10.0)若 NUMDZ=0,忽略修正

I=被修正网格的 x 坐标

J=被修正网格的 y 坐标

K=被修正网格的 z 坐标

DZ=网格(I,J,K)在 z 方向的新步长值

注意:必须事先读入 NUMDZ 值

说明:封闭边界外网格的 z 方向步长(有效厚度)不能绝对赋零,宜取内部点的 1%,否则影

响计算稳定性和收敛速度。

Ⅲ《网格顶部深度》

1、标题(40A2)2、深度输入代码(I5)

KEL=输入代码:

KEL=0,表示第一层各网格顶部的深度输入为一常数(水平地层);

KEL=1,表示第一层各网格顶部深度须输入不同值,共输入 II×JJ 个值。

3、深度(8F10.0)ELEV=网格顶部的深度,米

(KEL=0 时,读入一个值,KEL=1 时,输入 II×JJ 个值)。

第一层以下各层网格深度自动算出,其公式为:

TOP(I,J,K+1)=TOP(I,J,K)+DZ(I,J,K){注:网格顶部的深度。在本软件所选的坐标系中,z 方向值越往下越大,因此参考面下

的深度为正值,参考面以上取负值}Ⅳ 《孔隙度(Ф)和渗透率(K)分布》

1、标题(40A2)

2、输入用词的代码(4I5)

KPH=孔隙度数据输入控制代码

KKX=x 方向渗透率数据输入控制代码

Page 78: 油藏数值模拟基础

KKY=y 方向渗透率数据输入控制代码。

KKZ=z 方向渗透率数据输入控制代码。

代号含义:

-1 对全部网格读入一常数

0 每 KK层读入一常数,每个单层其值可以不问(须读入 KK 个值);

+1 对每一个网格读入一值(读入 II×JJ×KK 个值)。

3、孔隙度值(10F8.0)

孔隙度值以小数读入(不是以百分数)

若 KPH=-1,只读入一常数;

若 KPH=0,读入 KK 个值(一层一个)

若 KPH=+1,读入(II×JJ×KK)个值(每一个网格一个值)

说明:封闭边界外网格孔隙度不能绝对赋零,宜取 0.01,否则影响计算稳定性和收敛速度。

4、x 方向渗透率(KX)(10F8.0)

其值以毫达西读入

若 KKX=-1,只读入一个常数

若 KKX=0,读入 KK 个值(一层一个)

若 KKX=+1,读入(II×JJ×KK)个值(每一网格一值)

5、y方向渗透率(KY)( 10F8.0)

其值以毫达西读入

若 KKY=-1,只读入一个常数

若 KKY=0,读入 KK 个值(一层一个)

若 KKY=+1,读入(II×JJ×KK)个值(每一网格一值)

6、z方向渗透率(KZ)( (10F8.0)

其值以毫达西读入

若 KKZ=-1,只读入一个常数

若 KKZ=0,读入 KK 个值(一层一个)

若 KKZ=+1,读入(II×JJ×KK)个值(每一网格一值)

说明:封闭边界外网格的各方向渗透率不能绝对赋零,宜取 0.001mD,否则影响计算稳定

性和收敛速度。

Ⅴ《孔隙度Ф、渗透率K分布修正》

1、标题(40A2)

2、Ф和/或 K变化的网格块数及打印代码(5I5)

NUMP=Ф变化的网格块数

NUMKX=KX 的变化的网格块数

NUMKY=KY 的变化的网格块数

NUMKZ=KX 的变化的网格块数

IPCODE=打印代码:

IPCODE=0 表示不打印Ф、K分布修正

IPCODE=1 表示打印Ф、K分布修正

3、Ф值修正(3I5,F10.0)

若 NUMP=0,忽略修正

I=修正网格的 x坐标

J=修正网格的 y坐标

K=修正网格的 z坐标

Page 79: 油藏数值模拟基础

PHI=网格(I,J,K)新的Ф值(Ф值必须以小数输入)。

注意,必须事先输入 NUMP 的值。

4、KX 值修正(3I5,F10.0)

若 NUMKX=0,忽略修正

I=修正网格的 x坐标

J=修正网格的 y坐标

K=修正网格的 z坐标

KX=网格(I,J,K)新的 KX 值(毫达西)

注意,必须输入 NUMKX 的值

5、KY 值修正(3I5,F10.0)

若 NUMKY=0,忽略修正

I=修正网格的 x坐标

J=修正网格的 y坐标

K=修正网格的 z坐标

KY=网格(I,J,K)新的 KY 值(以毫达西)

注意,必须输入 NUMKY 的值

6、 KZ 值修正(3I5,F10.0)

若 NUMKZ=0,忽略修正

I=修正网格的 x坐标

J=修正网格的 y坐标

K=修正网格的 z坐标

KZ=网格(I,J,K)新的 KZ 值(毫达西)

注意,必须输入 NUMKZ 的值

Ⅵ 《导流系数修正》

说明:记住有关约定在说明导流系数修正时尤其重要。例如在网格(I,J,K)中:

TX(I,J,K)表示网格(I-1)和 I边界的导流系数

TY(I,J,K)表示网格(J-1)和 J边界的导流系数

TZ(I,J,K)表示网格(K-1)和 K边界的导流系数

1、标题(40A2)

2、导流系数改变的网格块数和打印代码(4I5)

NUMTX = x 方向导流系数改变的网格块数

NUMTY = y 方向导流系数改变的网格块数

NUMTZ = z 方向导流系数改变的网格块数

IDCODE = 打印代码:

IDCODE =0 表示不打印导流系数修正

IDCODE=1 表示打印导流系数修正

3、x 方向导流系数修正(3I5,F10.0)若 NUMTX=0,忽略修正

I=进行导流系数修正的网格的 x坐标

J=进行导流系数修正的网格的 y坐标

K=进行导流系数修正的网格的 z坐标

TX=网格(I,J,K)的新的 TX 值。

注意:NUMTX 必须赋值

4、y 方向导流系数修正(3I5,F10.0)

Page 80: 油藏数值模拟基础

若 NUMTY=0,忽略修正

I=进行导流系数修正的网格的 x坐标

J=进行导流系数修正的网格的 y坐标

K=进行导流系数修正的网格的 z坐标

TY=网格(I,J,K)新的 TY 值。

注意:NUMTY 必须赋值

5、z 方向导流系数修正(3I5,F10.0)若 NUMTZ=0,忽略修正

I=进行导流系数修正的网格的 x坐标

J=进行导流系数修正的网格的 y坐标

K=进行导流系数修正的网格的 z坐标

TZ=网格(I,J,K)新的 TZ 值。

注意:NUMTZ 必须赋值

VIIVIIVIIVII《相对渗透率和毛管压力间的关系》

1、标题(40A2)2、读入相对渗透率和毛管压力表(6F10.0)

SAT1 KRO1 KRW1 KRG1 PCOW1 PCGO1

׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃ ׃׃׃׃

SATn KROn KRWn KRGn PCOWn PCGOnSAT---本相饱和度值(SAT1 取-0.10,SATn 取 1.10,饱和度值以小数读入)

KRO=油相的相对渗透率,小数

KRW=水相的相对渗透率,小数

KRG=气相的相对渗透率,小数

PCOW=油-水毛管压力,MpaPCGO=气-油毛管压力,MpaSAT 表示每一项的饱和度,如:

SAT=0.20,KRO 表示含油饱和度为 20%时的油的相对渗透率,KRW 表示含水饱和度为 20%时的水的相对渗透率,KRG 表示含气饱和度为 20%时的气的相对渗透率,PCOW 表示含水

饱和度为 20%时油-水的毛管压力,PCGO 表示含气饱和度为 20%时气-油的毛管压力。

VIIIVIIIVIIIVIII《流体 PVTPVTPVTPVT数据表》

1、标题(40A2)2、泡点压力、未饱和油特性,最大 PVT 压力(5F10.0)

PBO=原始油泡点压力(绝对),MpaVSLOPE=不饱和(压力高于泡点压力)状态下,油的粘度对压力曲线的斜率,

其值为△μ0/△P,厘泊/Mpa

BSLOPE=不饱和(压力高于泡点压力)状态下,油的体积系数 Bo 对压力曲线的斜率,

其值为△B0/△P 米 3(地下)/标准米 3(地面)/Mpa

RSLOPE=不饱和(压力高于泡点压力)状态下,溶解油气比 Rso 对压力曲线的斜率,

其值为△RSO/△P 米 3/米 3/Mpa(其值通常为 0)

Pmax=PVT 表中最大输入压力(绝对),MPa

3、标题(40A2)

4、油的 PVT 表(8F10.0)

Page 81: 油藏数值模拟基础

P1 MUO1 BO1 RSO1┆ ┆ ┆ ┆

Pmax MUo.Pmax Bo.Pmax Rso.PmaxP=压力(最后输入的压力必须是 Pmax),MpaMUO=饱和油粘度,厘泊

BO=饱和油体积系数,地下米 3/地面(标准米 3)RSO=饱和油溶解油气比

5、水 PVT 表(8F10.0)P1 MUW1 BW1 RSW1

┆ ┆ ┆ ┆

PMAX MUw.Pmax Bw.Pmax Rsw.PmaxP=压力(绝对),Mpa,(最后输入的压力必须是 PMAX)MUW=水的粘度,厘泊

BW=水的体积系数, 地下米 3/地面(标准米 3)RSW=水的溶解水气比,米 3/米 3

一般,黑油模型中假定水中溶解的气可忽略,这样,使得任何压力下 RSW=0。本软件的方法

是把水的 PVT 编成表,处理从地下含水层中产气的情况,并且认为水中气的溶解度对问题

的求解是有意义的.6、标题(40 A2)7、气体 PVT 表和岩石的压缩系数(8F10.0)

P1 MUG1 BG1 RSG1

┆ ┆ ┆ ┆

PMAX MUg.Pmax Bg.Pmax Rsg.PmaxP=压力,Mpa (最后输入的压力必须是 PMAX)MUG=气的粘度,厘泊

BG=气体的体积系数,米 3(地下)/米 3(地面)CR=岩石的压缩系数,1/MPa

8、标题(40 A2)9、地面流体密度(8F10.0)

RHO SCO=地面油密度,克/厘米 3

RHO SCW=地面水密度,克/厘米 3

RHO SCG=标准状况下气体的密度,千克/米 3

IXIXIXIX《原始压力和饱和度》

BOAST 对原始压力和饱和度有两种选择。平衡条件下,原始压力分布可通过给定气 -油接触面和油-水接触面以及两种接触面压力计算出来;原始非平衡条件下,原始压力分布可

以逐个网格块读入。饱和度(SO,SW,SG) 可以在整个网格系统中作为常数读入,也可以把 SO和 SW 分布逐个网格块读入,再由 SG=1-SO-SW 算出每一网格块的 SG 值。

1、标题(40 A2)2、原始压力和饱和度控制代码(2 I5)

KPI=原始压力代码

KSI=原始饱和度代码

代码含义:

KPI=0,采用相等的原始压力,要求输入气/油、油/水接触面压力及接触深度。

KPI=1,采用不相等的原始压力,要求读入每一网格压力值

Page 82: 油藏数值模拟基础

KSI=0,整个网格中原始油、气、水饱和度为常数。

KSI=1,读入每一网格油、水饱和度,每一网格的含气饱和度由程序算出。(必须读入

油、水两相各 II×JJ×KK 个饱和度值)。

3、原始压力数据(10F8.0)若 KPI=0,(原始压力相等)PWOC=水/油接触面压力,Mpa(绝对)PGOC=气/油接触面压力,Mpa(绝对)WOC=基准面到水/油接触面深度,米GOC=基准面到气/油接触面深度,米若 KPI=1(原始压力不相等)每一网格读入一原始压力(读入 II×JJ×KK 个)

4、原始饱和度数据(10 F8.0)若 KSI=0(定饱和度状态)SOI=各个网格的原始含油饱和度,小数

SWI=各个网格的原始含油饱和度,小数

SGI=各个网格的原始含气饱和度,小数

若 KSI=1(原始非定态)SO 数组::对每一网格读入原始含油饱和度(读入 II*JJ*KK 个值)。SW 数组::对每一网格读入原始含水饱和度(读入 II*JJ*KK 个值)。

X《调整和诊断代码》

程序在调整中提供了几个诊断输出控制代码,这些代码一般取为零。这些代码不提

供数据输入方面诊断信息,使这些代码赋非零值,将输出大量诊断信息。

1、标题(40A2)

2、诊断输出控制代码(5I5)

KSN1=线松弛法参数调整输出控制

KSM1=矩阵解法参数调整输出控制

KCO1=压缩系数和体积系数调整输出控制

KTR=导流系数调整输出控制

KCOFF=密度和饱和度调整输出控制

代号含义:

0 表示不打印诊断输出

1 表示打印诊断输出

XI 《运算控制参数》

1、标题(40A2)

2、运算控制参数(I5,7F10.0)

NMAX=允许运算的最大时间步长数

FACT1=自动控制时间步长时,时间步长的增加系数(固定时间步长时,令FACT1=1.0),

其值一般取为 1.25。

FACT2=自动控制时间步长时,时间步长的减小系数(固定时间步长时,令FACT2=1.0),

其值一般取为 0.5。

TMAX=允许模拟的最长时间,天

WORMAX=油区最大油水比(当生产油水比高与其值时运算停止)。

GORMAX=油区最大油气比(当生产油气比高与其值时运算停止)

PAMIN=油区最小平均压力(绝对),MPa

Page 83: 油藏数值模拟基础

(当油藏平均压力低于此值时运算停止)

PAMAX=油区最大平均压力(绝对),MPa

(当油藏平均压力高于此值时运算停止)

XIIXIIXIIXII《解法说明》

1、标题(40A2)

2、解法控制代码(2I5,6F10.0)

KSOL=解题代码

解题代码含义:

1表示用直接法-条带算法(用于一维)

2表示用线松弛法(用于二维和三维问题)

3表示用直接法-D4 算法(用于二维问题)

MITR=线松弛法每一时间步长迭代的最大次数,一般取值为 250

OMEGA=线松弛时初始加速参数,OMEGA 初值应为:1.0<ω<2.0,有时取为 1.7,程序中优

化ω提高解题速度。

TOL=线松弛迭代收敛时允许的最大压力变化值,MPa,取值为 0.100。

TOL1=ω变化的决定参量,取值为 0.001。

(若 TOL1=0,上面输入的初始ω值将参与运算)。

DSMAX=一个时间步长内允许饱和度变化的最大值,小数。如果在一时间步长内,任一

流体饱和度在任一网格上的变化超过 DSMAX 值时,时间步长将据 FACT2 而减小,

取 DSMAX=0.05。

DPMAX=一个时间步长内允许的压力变化的最大值,MPa。如果在一时间步长内,任一流

体饱和度在任一网格上的变化超过 DSMAX 值时,时间步长将据 FACT2 而减小,

一般取 DPMAX=0.5MPa。

XIIIXIIIXIIIXIII 《循环数据》

在模拟运算中,循环数据被重复输入。这些数据包括网格中井的技术条件的说明,完井

条件的改变和油田开发时间、井产量和/或压力动态时间记录表,控制模拟预测的时间步长,

为模拟器提供打印类型及频率信息。

如下所示是循环数据输入结构流程图:

1、标题(40A2)只读入一次,表示循环数据的开始

输入循环数据

读标题卡(只读一次)

读入时间步长和输出控制数据

(两卡一组)

IWLCNG=1 ?

读新值或改变单井资料

IWLCNG=0

Page 84: 油藏数值模拟基础

时间步长和输出控制

模拟开始时,必须输入时间步长和输出控制两张卡片,并且在每一时间间隔一开始被定

义。

1、时间步长和输出控制代码(9I5)(1)IWLCNG=告诉程序是否在该时间步长内读入单井资料

代码含义:

IWLCNG=0 该时间步长内不读入单井资料

IWLCNG=1 该时间步长内读入单井资料

若 IWLCNG=1 单井资料必须读入,新的单井资料将在下一时间步长内使用。

(2)ICHANG=本次输出控制和时间步长控制所覆盖的时间步数。

(3)IWLREP=控制打印井报告的输出控制代码。

(4)ISUMRY=控制打印时间步长概况的控制代码。

(5)IPMAP=控制打印网格压力图的输出控制代码。

(6)ISOMAP=控制打印网格含油饱和度的控制代码。

(7)ISWMAP=控制打印网格含水饱和度的控制代码。

(8)ISGMAP=控制打印网格含气饱和度的控制代码。

(9)IPBMAP=控制打印网格饱和压力的控制代码。(通常令 IPBMAP=0)其值含义:

0—不打印报告、数组

1—本时间段每一时间步长打印报告/数组

2—将该数据单独存放到另一个文件中。此功能用于数据过多,用同一个文件存

储长度过大的情况,或者要对某一类数据做重点研究的情况。

3—建立再次连续运行的输入数据文件,将该时间步压力和饱和度分布存入文件。

2、时间步长控制信息(3 F10.0)DT=初始时间步长,天(如果超过了饱和度和压力界限,初始时间步长将随着自动

控制时间步长而减小)

DTMIN=在该段时间内最小时间步长,天。(该值往往取 0.1 天)

DTMAX=在该段时间内最大时间步长,天。(该值不超过 30 天)

XIVXIVXIVXIV《单井资料》

只有当前面时间步长和输出控制卡上 IWLCNG=1 时,才读入下面的卡片。

1、标题(40 A2)

2、网格中总井数(I5)

NVQN=读入单井资料的井数

3、单井资料(A5,5I5,4F10.0)WELLID=最多 5 个字符的井名

I=包括该井的网格的 x 坐标

J=包括该井的网格的 y 坐标

PERF1=该井最上一个的完井层的层系号

NLAYER=连贯完井层总数

KIP=说明井的类型,井定产量或定井底流压下生产(或注入)动态,以及显式或隐式

井压力计算的代码,多数情况下,用显式压力计算。

代码含义:

KIP=3,气井——定产量

KIP=2,水井——定产量

Page 85: 油藏数值模拟基础

KIP=1,生产井(油井)——定产量

KIP=-1,生产(油)井——原始压力和井底流压控制(显式压力计算)

KIP=-2,水井——原始压力和井底流压控制(显式压力计算)

KIP=-3,气井——原始压力和井底流压控制(显式压力计算)

KIP=-11,生产(油)井——原始压力和井底流压控制(隐式压力计算)

KIP=-12,水井——原始压力和井底流压控制(隐式压力计算)

KIP=-13,气井——原始压力和井底流压控制(隐式压力计算)

(气井只注气,水井只注水,而油井则可采出油气水三种流体)

QO——采油量,米 3/天(仅当 KIP=1,且 QT=0 时可以不为零)QW——注水量,米 3/天(仅当 KIP=2 时可以不为零)QG——注气量,米 3/天(仅当 KIP=3 时可以不为零)QT——采液量,米 3/天 (仅当 KIP=1,QO=0 时可以不为零)。QT 为采油量 、采水量和

采气量之和,是油藏的消耗量。

对每一口井,上述四个注采量控制数据只能有一个不为零。读入时约定符号:流

体注入用负号,流体采出用正号。

4、单井资料卡片(2 F10.0)对每一井号要读入 NLAYER 个卡片,每一卡片说明每一完井层的分层流动系数和井层

的流压,因此 NLAYER 必须读入。第一张卡片必须读入最上面一个完井层,其余卡片

读入以下各层。如果井定产(KIP=1,2,或 3)则不用 PWF,应取为零。而油藏压力用来

计算井的井底流压,该流压将在单井报告中打印出,但不会以任何方式来控制井动态。

(1) PID=单层采油指数

计算公式:

SDYDXkhPID

w

=)121.0ln(

00708.0

γ

这里 K—— 单层绝对渗透率,毫达西

h——单层(网格)厚度,米

D X——x 方向网格步长,米

DY——y 方向网格步长,米

γw——井半径,米

S——表皮系数(污染系数)

(2)PWF——单层的井底流压,Mpa。(若井定产,即 KIP>0 时,令 PWF=0,该值不用)。

特别强调,在模拟中任何时间,井数都可能增加或重新完井。然而一旦指明一口井(层),以后该井(层)单井资料卡片每次都必须读入,即该井必须在后面每次输入单井资料时都加以

描述,即使该井或层关闭,关一层,则令该层 PID=0,关井,则令各层 PID=0。卡片 3 和 4必须读入,NVQN 必须读入。