SZ36 GRID 关键字团队参考:ACTNUM / COORD / COORDSYS / FAULTS / GRIDFILE
针对 SZ36-1 油藏模型中所用的五个 GRID 段关键字。每个关键字给出:用途、记录结构、 SZ36 中的真实数据行,以及一份合标准的数据必须满足的规则。
0. 网格概览
Section titled “0. 网格概览”0.1 SZ36 网格维度(取自 SPECGRID 68 249 64 1 F /):NX=68,NY=249,NZ=64,NUMRES=1,非径向。
0.2 单元总数 = 68 × 249 × 64 = 1,083,648 个。
0.3 Pillar(角点支柱)总数 = (NX+1) × (NY+1) = 69 × 250 = 17,250 根。
0.4 长度单位为米(GRIDUNIT 'METRES' 'MAP'),并通过 MAPAXES 做地图坐标变换。
0.5 这五个关键字共同覆盖 SZ36 的三类网格信息:角点几何(COORD、COORDSYS、ACTNUM)、断层定义(FAULTS)、输出控制(GRIDFILE)。
0.2 和 0.3 这两个数,直接决定了下文 ACTNUM / COORD 数组的长度。
1. ACTNUM — 活动单元标志
Section titled “1. ACTNUM — 活动单元标志”1.1 用途: 标记每个单元是活动(1)还是非活动(0)。非活动单元被完全排除出模拟网格。
1.2 所属段: GRID
1.3 结构: 纯数组型关键字 —— 每个网格单元一个整数(INT),无字段划分。
1.4 SZ36 实例(在 sz36-1_Grid.dat 中):
ACTNUM1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1... (共 1,083,648 个值) .../1.5 规则与注意:
1.5.1 必须恰好是 NX·NY·NZ = 1,083,648 个整数,以 / 结束;取值只能是 0 或 1。
1.5.2 排列顺序为 X 最快、其次 Y、再 Z(单元 (i,j,k) 的下标 = i + j·NX + k·NX·NY)。
1.5.3 可用 N*value 重复写法(如 25*1),但计数总和仍必须等于 NX·NY·NZ。
1.5.4 非活动单元(0)没有方程、没有连接,其孔隙体积被忽略。
2. COORD — 角点支柱坐标
Section titled “2. COORD — 角点支柱坐标”2.1 用途: 给出每根**支柱(pillar)**的 (x, y, z) 端点,是角点网格的骨架(与 SPECGRID + ZCORN 配合)。
2.2 所属段: GRID
2.3 结构: 双精度(DOUBLE)数组,量纲为长度,模拟器在解析时换算为 SI 米。它与 GDFILE 互斥——几何要么内联定义(COORD/ZCORN),要么外部导入(GDFILE),不能同时。
2.4 SZ36 实例(在 sz36-1_Grid.dat 中):
COORD571492.347792 4429565.159831 1405.640747 571358.807505 4429675.729865 1601.523193-- x_顶 y_顶 z_顶 x_底 y_底 z_底 (第一根支柱)... (共 17,250 根支柱) .../2.5 规则与注意:
2.5.1 数量 = 6 × (NX+1) × (NY+1) = 6 × 69 × 250 = 103,500 个 double:每根支柱含一个顶端 (x,y,z) 和一个底端 (x,y,z)。
2.5.2 坐标采用 GRIDUNIT 的长度单位(此处为米);解析时换算为 SI。
2.5.3 支柱排列为 X 最快、其次 Y;ZCORN 再把 8 个单元角点深度挂在这些支柱上。
2.5.4 不能与 GDFILE 共存。
3. COORDSYS — 油藏层段 / 坐标系
Section titled “3. COORDSYS — 油藏层段 / 坐标系”3.1 用途: 对多油藏网格中的每个油藏,声明它跨越的 K 层范围以及纵向连接方式。每个油藏一条记录。
3.2 所属段: GRID
3.3 结构: 记录条数 = NUMRES(即 SPECGRID 的第 4 个值)。字段:
| 序号 | 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|---|
| 1 | K1 | INT | — | 本油藏的起始 K 层 |
| 2 | K2 | INT | — | 结束 K 层 |
| 3 | CIRCLE_COMPLETION | STRING | INCOMP | 径向完井标志 |
| 4 | CONNECTION | STRING | SEPARATE | 纵向连接方式 |
| 5 | R1 | INT | 0 | 含水层连接 |
| 6 | R2 | INT | 0 | 含水层连接 |
3.4 SZ36 实例(在 sz36-1_Grid.dat 中):
COORDSYS1 64 'INCOMP ' /→ 一个油藏,跨越 K = 1…64(全部层),不完整圆,分离连接。
3.5 规则与注意:
3.5.1 记录条数必须恰好等于 NUMRES(SZ36 中 NUMRES=1,故一条记录);需满足 1 ≤ K1 ≤ K2 ≤ NZ。
3.5.2 仅当堆叠多个油藏(NUMRES > 1)时才有实质作用;单油藏时为信息性声明。
4. FAULTS — 断层面定义
Section titled “4. FAULTS — 断层面定义”4.1 用途: 用”单元盒 + 面”的方式命名断层面段。与 MULTFLT 配合(后者按名字给断层施加传导率乘子)。
4.2 所属段: GRID
4.3 结构: 变长记录(读到终止符为止)。每条记录:
| 序号 | 字段 | 类型 | 含义 |
|---|---|---|---|
| 1 | NAME | STRING | 断层名(后续 MULTFLT 引用) |
| 2-3 | IX1, IX2 | INT | I 方向单元索引范围 |
| 4-5 | IY1, IY2 | INT | J 方向范围 |
| 6-7 | IZ1, IZ2 | INT | K 方向范围 |
| 8 | FACE | STRING | 哪个单元面位于断层上(X,X-,Y,Y-,Z,Z-;X+≡X) |
4.4 SZ36 实例(在 FAULTS.DAT 中):
FAULTS-- NAME IX1 IX2 IY1 IY2 IZ1 IZ2 FACE'FAULT3' 38 38 239 239 1 9 'X+' /'FAULT3' 38 38 239 239 12 22 'X+' /'FAULT3' 38 38 238 238 1 9 'X+' /... (一个断层 = 许多面段) .../4.5 规则与注意:
4.5.1 每条记录以一个 / 结束;整个关键字再用一个额外的 / 收尾。
4.5.2 单个断层(如 FAULT3)由许多段记录拼成;SZ36 共定义约 33 个断层(FAULT3…FAULT33)。
4.5.3 索引范围必须落在网格内(1…NX、1…NY、1…NZ)。
4.5.4 FAULTS 只声明几何;封堵强度来自 MULTFLT '<名字>' <乘子> /。
5. GRIDFILE — 网格输出文件控制
Section titled “5. GRIDFILE — 网格输出文件控制”5.1 用途: 控制是否输出旧式 .GRID 和新式 .EGRID 几何文件。
5.2 所属段: GRID
5.3 结构: 恰好一条记录:
| 序号 | 字段 | 类型 | 默认值 | 含义 |
|---|---|---|---|---|
| 1 | GRID | INT | 0 | 旧式 .GRID 输出标志 |
| 2 | EGRID | INT | 1 | .EGRID 输出标志 |
5.4 SZ36 实例(在 SZ36_FIELD_VAL.DATA 中):
GRIDFILE2 /→ GRID 字段 = 2;EGRID 取默认值 1(即写出 .EGRID)。
5.5 规则与注意:
5.5.1 单条记录,以 / 结束。省略的尾部字段取默认值(此处 EGRID = 1)。
5.5.2 后处理工具(ResInsight 等)读取 .EGRID,务必保持 EGRID 开启。
6. 速查表
Section titled “6. 速查表”| 序号 | 关键字 | 角色 | 记录形状 | SZ36 规模 |
|---|---|---|---|---|
| 1 | ACTNUM | 活动单元掩码 | INT 数组 | 1,083,648 个整数(0/1) |
| 2 | COORD | 支柱坐标 | DOUBLE 数组(长度) | 103,500 个 double |
| 3 | COORDSYS | 油藏层段 | NUMRES 条记录,6 字段 | 1 条(K 1–64) |
| 4 | FAULTS | 断层面段 | 变长记录,8 字段 | ~33 断层,每个多段 |
| 5 | GRIDFILE | 输出文件标志 | 1 条记录,2 字段 | 2 / |
来源: SZ36 全场验证模型(deck + include 文件,内部路径从略)