ECLIPSE中文培训教材之 4 RUNSPEzzpC.docx
《ECLIPSE中文培训教材之 4 RUNSPEzzpC.docx》由会员分享,可在线阅读,更多相关《ECLIPSE中文培训教材之 4 RUNSPEzzpC.docx(7页珍藏版)》请在冰豆网上搜索。
ECLIPSE中文培训教材之4RUNSPEzzpC
RUNSPEC部分
RUNSPEC部分的作用
--最简化的RUNSPEC部分的开始
RUNSPEC
TITLE
这里是模型的名称/
DIMENS
--NXNYNZ
--这里顺序是I,J,K方向上的网格数,例如
201510/
FIELD单位制可以是英制、公制或矿厂单位制
OIL现在的相可能是油相
WATERWATER,GAS,DISGAS,VAPOIL
START模拟的起始时间,例如
1JAN1990/
图26最简化的RUNSPEC部分
∙RUNSPEC部分在主存储空间中顺序为模拟的各个组成部分分配内存。
∙模拟的这些组成部分包括井、表格数据、模拟网格及解算器存储栈。
∙RUNSPEC部分同时也包含有对模拟的选项,如垂向平衡。
∙RUNSPEC采用的格式为:
选择的参数值在关键字之后。
∙96a之前的版本要求RUNSPEC有固定的格式。
之后的版本仍然支持这项功能,同时也可以自由的转化为新的格式。
∙一些关键字是必须要使用的,用来确定使用的最小限度,其它的一些关键字则是可选的。
∙图26给出了RUNSPEC部分最简化的形式。
∙忽略一些关键字等价于将这些关键字设为默认值。
RUNSPEC部分的作用
1996年之前的安装版本包含有几个ECLIPSE可执行程序,各可执行程序的作用是使得模拟能够满足20,40,60和80MB内存的要求。
一般情况下,这些文件的名字为eclipse_20Mb.exe,eclipse_40Mb.exe等等。
对于更大的模拟要求,我们或者是提供一次性的编码版本,或者是直接提供指令,使得用户可以自己修改ECLIPSE的大小。
从96a版本开始,ECLIPSE可以自动设置自己的大小,同时自动为各模拟运算分配所需大小的内存空间。
从此,只需要一个可执行文件eclipse.dat就可以了。
在ECLIPSE读取输入文件时,就会按顺序使用分配好的内存空间。
RUNSPEC是非常重要的,因为它指定了如何内部分配内存空间,来存储模拟的各个组成部分(如井、PVT表、和网格的几何形状数据),同时它也指定了模型的基本特征及模拟开始时间。
图26给出了必需的关键字,其中有一些关键词还有其额外的参数。
输入的PVT和相对渗透率等表格信息占用的存储空间相对较小,即使表格的数目非常多,表格非常大时也是如此。
在模拟中最占用存储空间的部分是油藏的网格数据和解算器存储栈。
网格数据包含每个网格的几何形状、深度、孔隙度、渗透率和净厚比等信息。
ECLIPSE把它们转化为一个孔隙体积、传导系数和网格中心深度的数组,这些量在内部计算网格间的流动时会用到。
孔隙体积是一个标量,而传导系数是一个矢量,所以要描述油藏网格模型,最少每个有效网格需要有5个量。
模拟网格的总数目等于NX*NY*NZ。
在每一个时间步,ECLIPSE都会求解一个关于每个网格的压力、饱和度、溶解气油比和(或)溶解油气比的方程组。
连续的模拟迭代步的解必须是正交的,所以ECLIPSE需要快速访问前面几个时间步的的解。
这就是解算器存储栈,默认的是快速访问前面10个时间步的解,也可以用关键字NSTACK来修改这个数值。
在死油/水模拟中,ECLIPSE求解水相饱和度和压力,默认的在解算器存储器内每个时步为每个网格存储2个值,或任一时刻为每个网格存储30个值。
ECLIPSE1996年之前的版本用的是固定格式的RUNSPEC部分;这种固定格式自那时起就没有被更新。
以后的版本则使用了自由格式的RUNSPEC,图26给出了其关键字。
虽然现在的ECLIPSE部分可以读取固定格式的RUNSPEC,但是自由格式的RUNSPEC增加了一些96a以前的版本所没有的新功能。
RUNSPEC部分关键字
图27按字母顺序排列的ECLIPSE100关键字
∙这些是ECLIPSE100中RUNSPEC部分的关键字。
∙ECLIPSE200有其专门的关键字。
∙有一些关键字有参数,而有一些没有。
∙ECLIPSE100参考手册中有对关键字的完整详尽的描述。
RUNSPEC部分关键字
RUNSPEC部分用来分配存储空间并启动应用程序选项的。
分配内存的关键字需要一个最大限制或者是一个确切的数值。
例如,各PVT表的行数(关键字TABDIMS的第4项NPPVT)就是一个上限值。
另一方面,关键字DIMENS必须给出网格在I、J、K方向上的确切个数。
其它的关键字启动程序的一些特定选项,如端点平衡、分子扩散计算或数据检验模式。
常用的RUNSPEC关键字
AQUDIM指定解析水体的个数和大小。
DIMENS指定模型的大小。
这个关键字是必须的。
DISGAS,GAS,OIL,VAPOIL,WATER指定模型中的相。
至少要有一相。
DUALPORO启动双孔选项。
ENDSCALE启动端点平衡选项。
EQLOPTS设置一系列选项,用来定义初始压力和饱和度。
FIELD,METRIC或LAB指定使用的单位制。
一个模型的所有数据使用一个相同的单位制。
FMTIN,FMTOUT分别指定格式输入和格式输出。
NOSIM关闭SCHEDULE部分的模拟。
这对于在模拟运算前检查关键字的错误是非常有用的。
NSTACK指定存储前面时间步结果的堆栈的长度。
困难的问题需要多于10步的值,但是设置的值不要大于最大线形迭代数减一。
NUPCOL定义更新井目标的每一个时间步的非线性迭代的次数。
有时设置的值需要大于默认值3。
RADIAL设定径向几何模型。
RPTRUNSP在PRT文件中创建一个关于RUNSPEC选项的列表。
START设置模拟的起始时间。
这个关键字是必须的。
TABDIMS设置输入的PVT和饱和度表的大小。
TITLE给出运算的名字。
这个关键字是必须的。
UNIFIN,UNIFOUT分别设置独立的输入和输出文件。
VE启动垂向平衡选项。
VFPIDIMS,VFPPDIMS分别定义注入井和生产井的VFP表的个数。
WELLDIMS指定模型中井和井组的个数。
这个关键字是必须的。
不含RUNSPEC部分的数据文件
LOAD
--SAVE文件模拟或格式化/输出
--名检查数据非格式化SAVE文件?
--数据文件
BASET/
RESTART
--文件报告
--名步
BASE11/
SUMMARY
--SUMMARY部分是可选的
SCHEDULE
……
……
……
--INCLUDE文件包括新增加的井,地面设施
--通常在这里输入模拟的进展情况
END
图28快速重启文件结构
∙除了快速重启文件,其它所有的文件都需要有RUNSPEC部分。
∙在快速重启运算中,RUNSPEC,GRID,EDIT,PROPS和REGIONS部分的数据是从前一次运算得到的SAVE文件中读出的。
∙LOAD控制着从RUNSPEC部分到SOLUTION部分的关键字,所以在快速重启文件中这些关键字应该是空的,关键字RESTART除外。
不含RUNSPEC部分的数据文件
所有的数据文件都需要一个RUNSPEC数据部分。
快速重启文件读取一个包含RUNSPEC,GRID,EDIT,PROPS和REGIONS部分以及编码形式关键字的SAVE文件。
重启运算是可以从前一次模拟的任意一个时间步开始运算的方法。
重启运算有两种类型:
完全重启和快速重启。
完全重启将会在后面部分讨论。
如何创建快速重启
∙运行一个模拟运算。
在RUNSPEC部分用SAVE关键字设置输出一个SAVE文件,并要保证在需要的模拟时间步输出重启文件。
∙拷贝模拟运算的原输入数据文件,删除文件中关键字SUMMARY和SCHEDULE之前的所有内容。
∙在数据文件的开始部分插入LOAD关键字。
根据当前是否是进行数据检验模拟运算,输入的SAVE文件是格式化的还是非格式化的,及是否要输出另一个.SAVE文件等情况,选择LOAD关键字的不同参数。
∙选择开始模拟运算的报告时间步。
∙在LOAD关键字后插入RESTART关键字。
∙在SCHEDULE部分的VFP表后插入SKIPREST关键字,这使得ECLIPSE从最原始的起始时间步直接跳到修改后的模拟起始时间。
同样的,也可以删除新的起始时间之前的模拟关键字(TSTEP,DATES)。
∙同其它的模拟运算一样运行重启运算。