角点网格是一种结构化网格类型,网格位置能用i,j,k定义,并且单元网格的长宽大小可变,垂向连接顶底网格点的网格面可以是倾斜的,能够更加精确地描述断层两翼的深度变化流体分布和流体渗流特征。
假如角点网格在X,Y,Z方向上划分的数量分别为NI,NJ,NK.那么XY平面上的网格数量为NI*NJ。三维网格数量为NI*NJ*NZ。
ECLIPSE定义角点网格的由两个关键字,即COORD和ZCORN.
(1)先用COORD定义线,一共有(NI+1)*(NJ+1)条线,其中N表示XY平面网格数目,一条线由两个点来定,一个点有X、Y、Z三个数据,所以紧跟在COORD后面的数据一共有(NI+1)*(NJ+1)*2*3 个!注意:定义线的顺序是一条线一条线的定义,方向是从左到右,再从左到右。
例如以3*3*3的网格系统,COORD就定义16条线。在eclipse中就有16行数据(见附录文件)
(2)然后用ZCORN定义每个网格的点,一个网络8个点嘛,所以紧跟在ZCORN后面的数据应该有N*8个!,这8个点全是Z值。注意:定义
网格角点的顺序都是从左到右,再从左到右从顶到底!
如图1中的3*3*3=27个网格,第一层网格有9个网格,则首先定义网格编号为(1,1,1),(2,1,1), (3,1,1)的上边的Z值,然后定义网格编号为(1,1,1),(2,1,1), (3,1,1)的下边的Z值;然后才是第二排网格和第三排网格。平面网格数量为3*3,每排(I)有六个数,共有6排。具体如下:1001,1001,1002,1002,1003,1003;//网格编号为(1,1,1)左上侧,(1,1,1)右上侧,(2,1,1)左上侧,(2,1,1)右上侧;(3,1,1)左上侧,(3,1,1)
右上侧,
1001,1001,1002,1002,1003,1003; //网格编号为(1,1,1)左下侧,(1,1,1)右下侧,(2,1,1)左下侧,(2,1,1)右下侧;(3,1,1)左下侧,(3,1,1)
右下侧,
1004 1004 1005 1005 1006 1006 //网格编号为(1,2,1)左上侧,(1,2,1)右上侧,(2,2,1)左上侧,(2,2,1)右上侧;(3,2,1)左上侧,(3,2,1)
右上侧,
1004 1004 1005 1005 1006 1006 //网格编号为(1,2,1)左下侧,(1,2,1)右下侧,(2,2,1)左下侧,(2,2,1)右下侧;(3,2,1)左下侧,(3,2,1)
右下侧,
1007 1007 1008 1008 1009 1009 //网格编号为(1,3,1)左上侧,(1,3,1)右上侧,(2,3,1)左上侧,(2,3,1)右上侧;(3,3,1)左上侧,(3,3,1)
右上侧,
1007 1007 1008 1008 1009 1009//网格编号为(1,3,1)左下侧,(1,3,1)右下侧,(2,3,1)左下侧,(2,3,1)右下侧;(3,3,1)左下侧,(3,3,1)
右下侧,
排完第一层网格的顶面,排完第一层网格的底面, 排完第2层网格的顶面,排完第2层网格的底面, 排完第3层网格的顶面,排完第3层网格的底面。
显然,数据点为36*6=216.
附录A:3*3*3网格系统,最初采用矩形网格来定义,具体的参数如下:
来源:http://www.wendangku.net/doc/33cbea8b680203d8ce2f242b-3.html
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
来源:http://www.yanfengliu.com/2016/02/02/%e8%a7%92%e7%82%b9%e7%bd%91%e6%a0%bc%e8%af%a6%e8%a7%a3/
逻辑结构上属于m×n×L个子单元的规则拓扑结构模型。其中,X方向逻辑上有(m+1)条线,剖分成m个单元;在Y方向上有(n+1)条线,剖分成n个单元;在深度Z方向上有(L+1)跳线,剖分成L个单元,每个单元属于不规则六面体。各子单元室一个不规则六面体,定义其空间坐标的8个节点有顶、底两个控制面积每个节点z值定义。
假如角点网格X,Y,Z方向上划分的数量分别为NI,NJ,NK,那么XY方向上的网格数量为NI×NJ。三维网格数量为NI×NJ×NK。
Eclipse定义角点网格有两个关键词,即COORD和ZCORN.
(1)先用COORD定义线,一共有(NI+1)×(NJ+1)条线,其中NI、NJ表示XY方向网格数目,一条线由两个点来定,一个点有X、Y、Z三个数据,所以紧跟在COORD后面的数据一共有(NI+1)×(NJ+1)×2×3个。定义顺序是一条一条先的定义,方向是从左到右,再从左到右。
(2)然后用ZCORD定义每个网格的点,一个网格8个点,所以紧跟在COORD后面的数据应该有NI×NJ×8个,这个8个点全部是Z值,定义网格角点的顺序是从左到右,再从左到右,从顶到底。
假设一个网格的一条边C、D在线AB上,C、D的z值为zc,zd,则C、D的空间坐标(xc,yc)、(xd,yd)由A(xa,ya,za)与B(xb,yb,zb)与两个z值定义。
xc=xa+(zc-za)*(xb-xa)/(zb-za)
yc=ya+(zc-za)*(yb-ya)/(zb-za)
xd=xa+(zd-za)*(xb-xa)/(zb-dz)
yd=ya+(zd-za)*(yb-ya)/(zb-za)
即由顶部A点与底部B点线性内插所得。
3.2 角点网格读取
首先读取COORD的内容,这是(NI+1)×(NJ+1)条纵向上的线,每个线有2个端点组成,一个在顶部,一个在底部、控制了这条线上不同网格的xy的计算,把这些数据存储到Line[NI+1, NJ+1, 2][3]的数组内。
然后读取ZCORD的数据,它是每个网格的8个定点,最外层循环是z方向,次级是y方向,最内循环是x方向。