首页> 中国专利> 用于在并行油藏模拟期间进行二维区域分解的系统及方法

用于在并行油藏模拟期间进行二维区域分解的系统及方法

摘要

用于在并行油藏模拟期间进行2D区域分解以平衡油藏模型中的活动单元格的系统和方法。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-07

    未缴年费专利权终止 IPC(主分类):G06G7/48 授权公告日:20160511 终止日期:20171216 申请日:20101216

    专利权的终止

  • 2016-05-11

    授权

    授权

  • 2013-11-20

    实质审查的生效 IPC(主分类):G06G7/48 申请日:20101216

    实质审查的生效

  • 2013-10-23

    公开

    公开

说明书

相关申请的交叉引用

不适用。

关于联邦科研资助的声明

不适用。

技术领域

本发明一般而言涉及并行油藏模拟(parallel reservoir simulation)期间的 二维(2D)区域分解(domain decomposition)。更特别地,本发明涉及用于并 行油藏模拟期间2D区域分解以求平衡油藏模型中活动单元格(active cell)的 系统和方法。

背景技术

石油油藏中包括流体流动等许多类型的物理过程都是由偏微分等式来 支配。这些可能非常复杂的偏微分等式通常使用有限差、有限体积或有限元 方法来求解。所有这些方法将物理模型划分成被称为网格块、单元格或元 (element)的多个单元。在每个这些物理单元中,由一个或多个求解变量 (solution variables)或未知量(unknowns)来给出解。与每个物理单元相关联的 是一组支配这些未知量行为的等式,其中等式的数目等于未知量的数目。这 些等式还包含来自邻近物理单元的未知量。

因而,对于这些等式存在一种结构,其中对于给定物理单元的等式包含 来自该物理单元及其邻居的未知量。使用节点和连接的组合来描述更为方 便,其中用小圆圈来表示节点,并且用两个节点之间的连线来表示连接。节 点处的等式包含该节点处以及与该节点连接的邻近节点处的未知量。

所有节点处的等式组合成单个矩阵等式。通常对所述偏微分等式求得期 望解的关键任务是对该矩阵等式求解。为此其中最有效的方式之一是通过使 用不完全LU因式分解法或ILU,其中原矩阵被近似分解成L和U两个矩阵 的乘积。矩阵L和U分别为下三角矩阵和上三角矩阵,并且分别具有与原矩 阵的下部和上部类似的非零结构(non-zero structure)。利用该分解,通过前推 回代法来迭代地求得解。

对于得到更好的求解精度有着持续的需要。为此一种方式是将物理模型 划分成更小的物理单元,或者换言之,使用更多的节点,可能是数以百万计 的节点。当然,进行计算所需的时间也随之增加。为避免这种时间增加,一 种方式是在多处理器上并行地进行计算。

存在两种类型的并行计算机,它们使用共享存储器以及它们使用分布式 存储器。共享存储器计算机仅使用少量的处理器,这限制了运行时间的减少 潜力。分布式存储器计算机常使用数十个处理器,但也有一些使用数以千计 的处理器。理想的是使用分布式存储器并行处理。无论哪种情况,并行计算 中处理器的数目通常是偶数。

在使用分布式存储器时,通过将物理模型分解成多个区域来并行进行计 算,其中区域的数目等于要同时使用的处理器的数目。每个区域被分配给特 定处理器,该处理器执行与该区域相关联的计算。每个区域包含指定组的节 点,并且每个节点置于区域中。

对在为给定油藏模型进行区域分解时的并行模拟器性能造成影响的至 少有如下两个因素:每个分解区域中活动模拟单元格的数目,以及网格着色。 挑战在于保持活动模拟单元格的数目平衡同时不造成网格着色问题。活动单 元格(active cell)表示油藏模型中带有油、气和/或水的单元空间(unitary  space)。因此,非活动单元格表示油藏模型中不带有油、气和/或水的单元空 间。

类似(其为Landmark(兰德马克)图形公司提供的商业软件应用) 等传统应用在2D区域分解期间并未将活动单元格的数目考虑进去,并且通 常是在多个区域之间将油藏模型划分成相等的部分,而不考虑每个区域中的 活动模拟单元格的数目。在这一途径中,取决于油藏几何结构,多个区域最 终可能会得到非常不均衡的活动单元格数目,进而导致油藏模拟性能差。

中的并行性是以区域分解途径为基础;整个模型被细分或分解成 单元格的集合(称为网格)。在以并行方式运行时,以规定数目的进程 开始一组进程,并且每个网格被分配给这些进程的其中之一。上述分 配可由用户来规定,或者可由来确定。每个进程对于其所分配的网格 进行模型计算。当单元格有一个或更多个紧邻的邻居时,这些计算中的一部 分需要来自被分配给其他进程的网格的数据。

在以并行方式运行时,的性能显著地受油藏模型单元格到网格的 分解以及网格被分配给进程的方式的影响。因为油藏模型网格通过压力等式 耦合,所以来自邻近网格的数据影响网格内的解。在每个时间步长内,需要 数次将信息从每个网格传送至与其物理连接的所有网格。将网格分配给进程 必须考虑到模型中单元格之间的物理连接–这是之所以典型分解常常看起 来像建筑砖块的集合的一个原因:使网格间的通信最小化。

发明内容

因此,本发明通过提供用于在并行油藏模拟期间进行2D区域分解以平 衡油藏模型中的活动单元格的系统和方法来满足以上需求并克服现有技术 中的一个或多个缺陷。

在一个实施例中,本发明包括一种用于在并行油藏模拟期间进行2D区 域分解的方法,其包括:a)计算油藏模型中预定数目的分解区域的每个组合; b)为其中一个组合确认X方向上的分解区域数目和Y方向上的分解区域数 目;c)以预定顺序为所述X方向上的分解区域数目和Y方向上的分解区域 数目计算一个或多个分解边界,所述预定数目的分解区域由以所述预定顺序 计算的分解边界隔开并分别分配有实际数目的活动单元格;d)基于对所述预 定数目的分解区域中的每一个而言的活动单元格理想数目以及所述活动单 元格的实际数目来计算偏差量大小;e)以另一预定顺序为所述X方向上的 分解区域数目和Y方向上的分解区域数目计算一个或多个分解边界,所述预 定数目的分解区域由所述以另一预定顺序计算的分解边界隔开并被分别分 配有另一实际数目的活动单元格;f)基于对所述预定数目的分解区域中的每 一个而言的活动单元格理想数目以及所述活动单元格的另一实际数目来计 算另一偏差量大小;g)对步骤a)中计算的每个组合重复步骤b)-f),每个组 合由所述偏差量大小和所述另一偏差量大小来表示;以及h)选择所述组合 中偏差量大小和另一偏差量大小其中之一最小的一个组合,所述偏差量大小 和另一偏差量大小其中之一最小的组合包括以预定方向或者另一预定方向 计算的分解边界。

在另一实施例中,本发明包括一种用于在并行油藏模拟期间进行2D区 域分解的方法,其包括:a)计算油藏模型中预定数目的分解区域的每个组合; b)为其中一个组合确认X方向上的分解区域数目和Y方向上的分解区域数 目;c)以预定顺序为所述X方向上的分解区域数目和Y方向上的分解区域 数目计算一个或多个分解边界,所述预定数目的分解区域由所述以预定顺序 计算的一个或多个分解边界隔开并被分别分配有实际数目的活动单元格;d) 基于对所述预定数目的分解区域中的每一个而言的活动单元格理想数目以 及所述活动单元格的实际数目来计算偏差量大小;e)以另一预定顺序为所述 X方向上的分解区域数目和Y方向上的分解区域数目计算一个或多个分解边 界,所述预定数目的分解区域由所述以另一预定顺序计算的一个或多个分解 边界隔开并被分别分配有另一实际数目的活动单元格;f)基于对所述预定数 目的分解区域中的每一个而言的活动单元格理想数目以及所述活动单元格 的另一实际数目来计算另一偏差量大小;g)通过台阶步进来移动所述以预定 顺序计算的一个或多个分解边界或者所述以另一预定顺序计算的一个或多 个分解边界以产生以所述预定顺序计算的一个或多个新分解边界或者以所 述另一预定顺序计算的一个或多个新分解边界,所述预定数目的分解区域由 所述以预定顺序计算的一个或多个新分解边界或者所述以另一预定顺序计 算的一个或多个新分解边界隔开并被分别分配有新实际数目的活动单元格 或者另一新实际数目的活动单元格;h)基于对所述预定数目的分解区域中的 每一个而言的活动单元格理想数目以及所述活动单元格的新实际数目或所 述活动单元格的另一新实际数目来计算最终偏差量大小;i)对步骤a)中计 算的每个组合重复步骤b)–h),每个组合由所述最终偏差量大小来表示;以 及j)选择所述组合中最终偏差量大小最小的一个组合,所述最终偏差量大小 最小的组合包括以预定方向计算的一个或多个新分解边界或者以另一预定 方向计算的一个或多个新分解边界。

在再一个实施例中,本发明包括一种非临时性程序载体装置,其有形地 载有用于在并行油藏模拟期间进行2D区域分解的计算机可执行指令。所述 指令可被执行用以实施:a)计算油藏模型中预定数目的分解区域的每个组 合;b)为其中一个组合确认X方向上的分解区域数目和Y方向上的分解区 域数目;c)以预定顺序为所述X方向上的分解区域数目和Y方向上的分解 区域数目计算一个或多个分解边界,所述预定数目的分解区域由所述以预定 顺序计算的分解边界隔开并被分别分配有实际数目的活动单元格;d)基于对 所述预定数目的分解区域中的每一个而言的活动单元格理想数目以及所述 活动单元格的实际数目来计算偏差量大小;e)以另一预定顺序为所述X方 向上的分解区域数目和Y方向上的分解区域数目计算一个或多个分解边界, 所述预定数目的分解区域由所述以另一预定顺序计算的一个或多个分解边 界隔开并被分别分配有另一实际数目的活动单元格;f)基于对所述预定数目 的分解区域中的每一个而言的活动单元格理想数目以及所述活动单元格的 另一实际数目来计算另一偏差量大小;g)对步骤a)中计算的每个组合重复步 骤b)-f),每个组合由所述偏差量大小和所述另一偏差量大小来表示;以及 h)选择所述组合中偏差量大小和另一偏差量大小其中之一最小的一个组合, 所述偏差量大小和另一偏差量大小其中之一最小的组合包括以预定方向或 者另一预定方向计算的分解边界。

在又一个实施例中,本发明包括一种非临时性程序载体装置,其有形地 载有用于在并行油藏模拟期间进行2D区域分解的计算机可执行指令。所述 指令可被执行用以实施:a)计算油藏模型中预定数目的分解区域的每个组 合;b)为其中一个组合确认X方向上的分解区域数目和Y方向上的分解区 域数目;c)以预定顺序为所述X方向上的分解区域数目和Y方向上的分解 区域数目计算一个或多个分解边界,所述预定数目的分解区域由所述以预定 顺序计算的一个或多个分解边界隔开并被分别分配有实际数目的活动单元 格;d)基于对所述预定数目的分解区域中的每一个而言的活动单元格理想数 目以及所述活动单元格的实际数目来计算偏差量大小;e)以另一预定顺序为 所述X方向上的分解区域数目和Y方向上的分解区域数目计算一个或多个 分解边界,所述预定数目的分解区域由所述以另一预定顺序计算的分解边界 隔开并被分别分配有另一实际数目的活动单元格;f)基于对所述预定数目的 分解区域中的每一个而言的活动单元格理想数目以及所述活动单元格的另 一实际数目来计算另一偏差量大小;g)通过台阶步进来移动所述以预定顺序 计算的一个或多个分解边界或者所述以另一预定顺序计算的一个或多个分 解边界以产生以所述预定顺序计算的一个或多个新分解边界或者以所述另 一预定顺序计算的一个或多个新分解边界,所述预定数目的分解区域由所述 以预定顺序计算的一个或多个新分解边界或者所述以另一预定顺序计算的 一个或多个新分解边界隔开并被分别分配有新实际数目的活动单元格或者 另一新实际数目的活动单元格;h)基于对所述预定数目的分解区域中的每一 个而言的活动单元格理想数目以及所述活动单元格的新实际数目或所述活 动单元格的另一新实际数目来计算最终偏差量大小;i)对步骤a)中计算的每 个组合重复步骤b)–h),每个组合由所述最终偏差量大小来表示;以及j)选 择所述组合中最终偏差量大小最小的一个组合,所述最终偏差量大小最小的 组合包括以预定方向计算的一个或多个新分解边界或者以另一预定方向计 算的一个或多个新分解边界。

通过以下实施例及相关附图的说明,本领域技术人员将显而易见本发明 的其他方面、优点和实施例。

附图说明

本专利或申请文件包含至少一幅以彩色制作的附图。本专利或专利申请 公开带有彩色附图(多幅)的拷贝将由美国专利商标局基于请求和必要付费 来提供。

以下参照附图来说明本发明,其中用类似的附图标记来表示类似的元 件,并且其中:

图1A为示出用于实施本发明的方法的一个实施例的流程图。

图1B为图1A所示方法的延续。

图1C为图1B所示方法的延续。

图1D为图1C所示方法的延续。

图1E为图1D所示方法的延续。

图1F为图1E所示方法的延续。

图2示出示例性油藏模型,其带有5,184个网格单元且尺寸为NX=32单 元格,NY=27单元格,NZ=6单元格。

图3A示出图2中油藏模型在X1处截面的活动单元格的数目。

图3B示出从图3A中的截面到图2中油藏模型在X2处的另一截面的活 动单元格的数目。

图3C示出从图3A中的截面到图2中油藏模型在X11处的另一截面的活 动单元格的数目。

图4A示出图2中油藏模型在X11处截面的活动单元格的数目。

图4B示出从图4A中的截面到图2中油藏模型在X12处的另一截面的活 动单元格的数目。

图4C示出从图4A中的截面到图2中油藏模型在X21处的另一截面的活 动单元格的数目。

图5A示出图2油藏模型的第一X分解区域(区)在Y1,1处截面的活动 单元格的数目。

图5B示出从图5A中的截面到图2中油藏模型在Y13,1处的另一截面的 活动单元格的数目。

图5C示出从图5A中的截面到图2中油藏模型在Y14,1处的另一截面的 活动单元格的数目。

图6示出图2中的油藏模型以及根据图1A-图1C中步骤102-144而分配 给每个着色分解区域的活动单元格的实际数目。

图7示出图2中的油藏模型以及根据图1A中步骤102-110和图1D-图 1E中步骤150-182而分配给每个着色分解区域的活动单元格的实际数目。

图8示出图2中的油藏模型以及在根据图1F中步骤195移动图7中所 示分解边界之后分配给每个着色分解区域的活动单元格的实际数目。

图9A示出另一示例性油藏模型以及每个着色分解区域之间的分解边 界。

图9B示出在根据图1F中步骤195移动分解边界之后图9A的油藏模型。

图10示出通过常规2D分解算法划分成六(6)个分解区域的图2中的油藏 模型。

图11为示出用于实施本发明的系统的一个实施例的框图。

具体实施方式

对本发明的主题加以具体说明,然而,说明书自身并不意图限制本发明 的范围。因而,该主题还可结合其他技术用其他方式来实施,以包括不同步 骤或与此处所描述的步骤类似的步骤的组合。另外,虽然这里可使用“步骤” 一词来说明所采用方法的不同元素,但除非本说明书明确限定至特定顺序, 否则该词不应被理解为暗示这里所揭示的各个步骤中或各个步骤之间存在 任何特定顺序。虽然接下来的说明书提及石油和天然气工业,但本发明的系 统和方法不限于此,而是还可应用于其他工业以得到类似的结果。

方法说明

现在参见图1A,示出用于实施本发明的方法100的一个实施例。

在步骤102中,通过使用结合图11说明的客户端接口和/或视频接口进 行输入来确定油藏模型网格尺寸(NX,NY,NZ)。在图2中,以NX=32单元 格、NY=27单元格、以及NZ=6单元格的总数5,184个单元格来示出示例性 的油藏模型200。

在步骤104中,通过使用结合图11说明的客户端接口和/或视频接口进 行输入以及本领域的公知技术来确定油藏模型的活动单元格总数。参见图2 中所示的油藏模型200,活动单元格的总数为4,970。

在步骤106中,使用本领域的公知技术来计算要求的分解区域的总数的 每一种组合。因为并行计算通常需要偶数个处理器,所以要求的分解区域的 总数也将是偶数从而使每个区域分配有一个CPU。要求的分解区域的总数还 取决于并行油藏模拟期间可利用多少个CPU。通常使用结合图11说明的客 户端接口和/或视频接口来针对所要求的X方向和Y方向输入要求的分解区 域的数目。X和Y分解区域中的每个都必须大于一。例如,如果分解区域的 总数为32,则对于该数目的组合会是:2×16、4×18、8×4和16×2。为一 致起见,第一个数表示X方向,而第二个数表示Y方向。

在步骤108中,使用本领域的公知技术来确认(identify)对于步骤106中 一个组合的X和Y方向上的分解区域数目。对于8×4的组合,X方向会有 8个分解区域,而Y方向会有4个分解区域。

在步骤110中,通过以下等式来计算步骤108中所确认的每个分解区域 的单元格的理想数目:

idealn=Total_active_cellsnumber_of_domains---(1)

再参见图2中所示的油藏模型200,在3×2的组合中对于每个分解区域 的单元格理想数目将是六个区域中的每个区域中有828个活动单元格(活动 单元格总数(4,970)/区域数目(6))。

在步骤112中,对Xi截面中的活动单元格数目计数并加到当前总和。这 里,i从1移动至NX。根据图2中所示的油藏模型200,第一Xi截面中有 162个活动单元格。这在图3A中更清楚地示出,其表示i=1时油藏模型200 的第一Xi截面。步骤112第一次迭代中的当前总和为零。在图3A所示出的 示例中,结果会是第一Xi截面中的162个活动单元格被加到当前总和(0)。 因此当前总和变成162。

在步骤114中,方法100确定当前总和(来自步骤112)是否等于或大 于((活动单元格总数/X方向上的分解区域)+偏移量Xii)。如果当前总和等 于或大于((活动单元格总数/X方向上的分解区域)+偏移量Xii),则方法100 进行到步骤118。如果当前总和并不等于或大于((活动单元格总数/X方向上 的分解区域)+偏移量Xii),则方法100进行到步骤116。步骤114第一次迭 代期间的偏移量Xii为零。并且,ii从1移动至X方向上要求的分解区域数 目。在图3A所示的示例中,活动单元格总数(4,970)/X方向上的分解区域(3) +偏移量Xii(0)=1,656。因此,对于该示例来自步骤112的当前总和(162)并 不等于或大于1,656。

在步骤116中,来到下一Xi截面(Xi+1)。然后方法100回到步骤112进 行再一次迭代。这在图3B中更清楚地示出,其表示i=2时油藏模型200的 下一Xi截面。在图3B所示的示例中,步骤112的结果为320。因此,当前 总和变成320。由于320并不等于或大于1,656,所以方法100回到步骤116 进行再一次迭代。因此,方法100重复步骤112、114和116直到当前总和 等于或大于1,656为止。在图3C所示的示例中,其表示油藏模型200的X11截面,当前总和(1,780)即等于或大于1,656。

在步骤118中,方法100确定当前总和(来自步骤112)是否比前一当 前总和(来自步骤112)更接近((活动单元格总数/X方向上的分解区域)+偏 移量Xii)。如果当前总和比前一当前总和更接近((活动单元格总数/X方向上 的分解区域)+偏移量Xii),则方法100进行到步骤120。如果当前总和并不 比前一当前总和更接近((活动单元格总数/X方向上的分解区域)+偏移量 Xii),则方法100进行到步骤122。在图3C中,X11的当前总和为1,780。因 此,X10的前一当前总和(1,620)比当前总和(1,780)更接近1,656。对于该示例, 方法100会进行到步骤122。

在步骤120中,存储Xi

在步骤122中,存储Xi-1并将i重置为i-1。在图3C中,会存储i=11时 的Xi-1(X10)并将i重置为11-1=10。

在步骤124中,方法100确定油藏模型是否被划分成X方向上所要求的 分解区域数目。如果油藏模型已被划分成X方向上所要求的分解区域数目, 则方法100进行到步骤128。如果油藏模型还未被划分成X方向上所要求的 分解区域数目,则方法100进行到步骤126。在图3C所示的基于3×2组合 的示例中,X方向上有三个分解区域。因此,将步骤124应用于该示例,由 于X方向上还有两个分解区域,所以方法100会进行到步骤126。

在步骤126中,来到下一偏移量Xii(偏移量Xii+1),计算偏移量Xii+1并 将当前总和重置为零。由于步骤114第一次迭代期间偏移量Xii为零,所以 下一偏移量Xii将是步骤120或步骤122中分别存储Xi或Xi-1时的活动单元 格数目与活动单元格总数/X方向上的分解区域之间的差。在图3C中,步骤 122中存储了Xi=1(X10)。对于X10的活动单元格前一当前总和=1,620。活动单 元格总数(4,970)/X方向上的分解区域(3)+偏移量Xii(0)=1,656。因此,下一 偏移量Xii被计算为1,656–1,620之间的差=36个活动单元格。然后方法100 回到步骤116进行下一Xi截面(Xi+1),即X11,并从步骤112开始重复。这在 图4A、图4B和图4C中更清楚地示出,其分别表示X11、X12和X21处油藏 模型200的下一Xi截面。对于每个各自Xi截面的对应当前总和(来自步骤 122)为159、310和1,779。在当前总和于X21处达到1,779时,其等于或大 于活动单元格总数(4,970)/X方向上的分解区域(6)+偏移量Xii(36)=1,692。 由于X21处的当前总和(1,779)大于或等于步骤114中的1,692,所以该示例中 方法100将进行到步骤118。由于X20处的前一当前总和(1,619)比X21处的当 前总和(1,979)更接近1,692,所以方法100将从步骤118进行到步骤122,并 且其将存储Xi-1(X20)并重置i=i-1。当图4C所示的示例中方法100到达步 骤124时,油藏模型已被划分成X方向上所要求的分解区域数目(3)。因此, X方向上剩下的分解区域就已知具有1,731个活动单元格=(活动单元格总数 (4,970)-X10处活动单元格的当前总和(1,620)-X20处活动单元格的当前总和 (1,619))。因此,X方向上要求的最后一个分解区域被界定为从X21到NX(其 为32)。这就是X方向上具有1,731个活动单元格的第三个分解区域。

在步骤128中,对Yj,jj截面中的活动单元格数目进行计数并加到当前总 和。这里,j从1移动至NY,而jj从1移动至X方向上要求的分解区域的 数目。根据图2中所示的油藏模型200,第一Yj,jj截面中有60个活动单元格。 这在图5A中更清楚地示出,其表示j=1且jj=1时油藏模型200的第一Yj,jj截面。步骤128第一次迭代期间的当前总和为零。在图5A所示的示例中, 结果会是第一Yj,jj截面中的60个活动单元格被加到当前总和(0)。因此,当 前总和变成60。

在步骤130中,方法100确定当前总和(来自步骤128)是否等于或大 于((X区(Yjj)中的活动单元格总数/Y方向上的分解区域)+偏移量Yjj)。如 果当前总和等于或大于((X区(Yjj)中的活动单元格总数/Y方向上的分解区域) +偏移量Yjj),则方法100进行到步骤134。如果当前总和并不等于或大于 ((X区(Yjj)中的活动单元格总数/Y方向上的分解区域)+偏移量Yjj),则方 法100进行到步骤132。步骤130第一次迭代期间的偏移量Yjj为零。在图 5A所示的示例中,(X区(Yjj)中的活动单元格总数(1,620)/Y方向上的分解区 域(2)+偏移量Yjj(0)=810。因此,对于该示例来自步骤128的当前总和(60) 并不等于或大于810。

在步骤132中,来到下一Yj截面(Yj+1)。然后方法100回到步骤128进 行再一次迭代。这在图5B中更清楚地示出,其表示j=13时油藏模型200的 下一Yj截面。在图5B所示的示例中,步骤128的结果为780。因此,当前 总和变成780。由于780并不等于或大于810,所以方法100回到步骤132 进行再一次迭代。因此,方法100重复步骤128、130和132直到当前总和 等于或大于810为止。在图5C所示的示例中,其表示油藏模型200的Y14截面,当前总和(839)即等于或大于810。

在步骤134中,方法100确定当前总和(来自步骤128)是否比前一当 前总和(来自步骤128)更接近((X区(Yjj)中的活动单元格总数/Y方向上的 分解区域)+偏移量Yjj)。如果当前总和比前一当前总和更接近((X区(Yjj) 中的活动单元格总数/Y方向上的分解区域)+偏移量Yjj),则方法100进行 到步骤136。如果当前总和并不比前一当前总和更接近((X区(Yjj)中的活动 单元格总数/Y方向上的分解区域)+偏移量Yjj),则方法100进行到步骤138。 在图5C中,Y14的当前总和为839。因此,Y13的前一当前总和(780)并不比 当前总和(839)更接近810。对于该示例,方法100会进行到步骤136。

在步骤136中,存储Yj,jj。在图5C示出的示例中,会存储j=14且jj=1 的Yj,jj(Y14,1)。

在步骤138中,存储Yj-1,jj并将j重置为j-1。

在步骤140中,方法100确定X区(Yjj)是否被划分成Y方向上所要求的 分解区域数目。如果X区(Yjj)被划分成Y方向上所要求的分解区域数目,则 方法100进行到步骤144。如果X区(Yjj)未被划分成Y方向上所要求的分解 区域数目,则方法100进行到步骤142。在图5C所示的基于3×2组合的示 例中,Y方向上有两个分解区域。因此,将步骤140应用于该示例,由于第 一X区(Yjj)已被划分成Y方向上所要求的分解区域数目,所以方法100会进 行到步骤144。因此,Y方向上剩下的分解区域就已知具有781个活动单元 格=(X区(Yjj)中的活动单元格总数(1,620)–Y14处活动单元格的当前总和 (839))。因此,对于第一X区(X方向上的第一个分解区域)在Y方向上要 求的最后一个分解区域被界定为从Y14到NY(其为27)。这就是对于第一X 区在Y方向上具有1,620个活动单元格的第二个分解区域。

在步骤142中,来到下一偏移量Yjj(偏移量Yjj+1),计算偏移量Yjj+1并 将当前总和重置为0。由于步骤130的第一次迭代期间偏移量Yjj为零,所以 下一偏移量Yjj将是步骤136或步骤138中分别存储Yj,jj或Yj-1,jj时的活动单 元格数目与X区(Yjj)中活动单元格总数/Y方向上的分解区域之间的差。然后 方法100回到步骤132进行下一Yj截面(Yj+1)并从步骤128开始重复。

在步骤144中,方法100确定是否全部X区(Yjj)已被划分为Y方向上分 解区域的数目。如果全部X区(Yjj)已被划分为Y方向上分解区域的数目,则 方法100进行到步骤148。如果全部X区(Yjj)未被划分为Y方向上分解区域 的数目,则方法100进行到步骤146。在图5C所示的基于3×2组合的示例 中,X方向上还有两个分解区域(区)。因此,将步骤144应用于该示例, 由于并非全部X区(Yjj)都被划分为Y方向上分解区域的数目,所以方法100 会进行到步骤146。

在步骤146中,来到下一X区(Yjj+1),并将j和偏移量Yjj重置为零。然 后方法100回到步骤132进行下一X区(Yjj+1)的下一Yj截面(Yj+1),并从步骤 128开始重复。以这种方式,方法100迭代地重复步骤128-144直到全部X 区(Yjj)都被划分为Y方向上分解区域的数目为止。这在图6中更清楚的示出, 其表示用3×2组合划分成六(6)个单独着色分解区域的油藏模型200。图6 中示出的油藏模型200根据方法100的步骤102-144被划分成六(6)个分解区 域,并且对于X方向上的第二分解区域(第2个X区)而言包括Y15以及对 于X方向上的第三分解区域(第3个X区)而言包括Y16

在步骤148中,通过以下等式来计算偏移量大小:

offset_size=Σi=1nabs(idealn-aci)---(2)

其中(n)表示分解区域总数,idealn表示来自等式(1)的理想数目,并且(aci) 表示分配给每个区域的活动单元格。对于图6所示的油藏模型200,分配给 每个单独着色分解区域的活动单元格总数记录在其上。在该示例中,根据等 式(1)的理想数目为828=活动单元格总数(4,970)/区域数目(6)。因此,图6所 示油藏模型200的偏移量大小根据等式(2)为194。

步骤150-186类似于步骤112-148,只是如下文所展示的,步骤150-186 是沿以Y方向开始并移至X方向的相反或相对方向而执行在油藏模型上。

在步骤150中,对Yj截面中的活动单元格数目计数并加到当前总和。这 里,j从1移动至NY。

在步骤152中,方法100确定当前总和(来自步骤150)是否等于或大 于((活动单元格总数/Y方向上的分解区域)+偏移量Yjj)。如果当前总和等 于或大于((活动单元格总数/Y方向上的分解区域)+偏移量Yjj),则方法100 进行到步骤156。如果当前总和并不等于或大于((活动单元格总数/Y方向上 的分解区域)+偏移量Yjj),则方法100进行到步骤154。步骤152第一次迭 代期间的偏移量Yjj为零。并且,jj从1移动至X方向上要求的分解区域数 目。

在步骤154中,来到下一Yj截面(Yj+1)。然后方法100回到步骤150进 行再一次迭代。

在步骤156中,方法100确定当前总和(来自步骤150)是否比前一当 前总和(来自步骤150)更接近((活动单元格总数/Y方向上的分解区域)+偏 移量Yjj)。如果当前总和比前一当前总和更接近((活动单元格总数/Y方向上 的分解区域)+偏移量Yjj),则方法100进行到步骤158。如果当前总和并不 比前一当前总和更接近((活动单元格总数/Y方向上的分解区域)+偏移量 Yjj),则方法100进行到步骤160。

在步骤158中,存储Yj

在步骤160中,存储Yj-1并将j重置为j-1。

在步骤162中,方法100确定油藏模型是否被划分成Y方向上所要求的 分解区域数目。如果油藏模型被划分成Y方向上所要求的分解区域数目,则 方法100进行到步骤166。如果油藏模型未被划分成Y方向上所要求的分解 区域数目,则方法100进行到步骤164。

在步骤164中,来到下一偏移量Yjj(偏移量Yjj+1),计算偏移量Yjj+1并 将当前总和重置为零。由于步骤152第一次迭代期间偏移量Yjj为0,所以下 一偏移量Yjj将是步骤158或步骤160中分别存储Yj或Yj-1时的活动单元格 数目与活动单元格总数/Y方向上的分解区域之间的差。然后方法100回到步 骤154进行下一Yj截面(Yj+1),并从步骤150开始重复。

在步骤166中,对Xi,ii截面中的活动单元格数目进行计数并加到当前总 和。这里,i从1移动至NX,而ii从1移动至X方向上要求的分解区域的 数目。

在步骤168中,方法100确定当前总和(来自步骤166)是否等于或大 于((Y区(Xii)中的活动单元格总数/X方向上的分解区域)+偏移量Xii)。如 果当前总和等于或大于((Y区(Xii)中的活动单元格总数/X方向上的分解区域) +偏移量Xii),则方法100进行到步骤172。如果当前总和并不等于或大于 ((Y区(Xii)中的活动单元格总数/X方向上的分解区域)+偏移量Xii),则方 法100进行到步骤170。

在步骤170中,来到下一Xi截面(Xi+1)。然后方法100回到步骤166进 行再一次迭代。

在步骤172中,该方法确定当前总和(来自步骤166)是否比前一当前 总和(来自步骤166)更接近((Y区(Xii)中的活动单元格总数/X方向上的分 解区域)+偏移量Xii)。如果当前总和比前一当前总和更接近((Y区(Xii)中 的活动单元格总数/X方向上的分解区域)+偏移量Xii),则方法100进行到 步骤174。如果当前总和并不比前一当前总和更接近((Y区(Xii)中的活动单 元格总数/X方向上的分解区域)+偏移量Xii),则方法100进行到步骤176。

在步骤174中,存储Xi,ii

在步骤176中,存储Xi-1,ii并将i重置为i-1。

在步骤178中,方法100确定Y区(Xii)是否被划分成X方向上所要求的 分解区域数目。如果Y区(Xii)已被划分成X方向上所要求的分解区域数目, 则方法100进行到步骤182。如果Y区(Xii)还未被划分成X方向上所要求的 分解区域数目,则方法100进行到步骤180。

在步骤180中,来到下一偏移量Xii(偏移量Xii+1),计算偏移量Xii+1并 将当前总和重置为0。由于步骤168的第一次迭代期间偏移量Xii为0,所以 下一偏移量Xii将是步骤174或步骤176中分别存储Xi,ii或Xi-1,ii时的活动单 元格数目与Y区(Xii)中活动单元格总数/X方向上的分解区域之间的差。然后 方法100回到步骤170进行下一Xi截面(Xi+1)并从步骤166开始重复。

在步骤182中,方法100确定是否全部Y区(Xii)已被划分为X方向上要 求的分解区域数目。如果全部Y区(Xii)已被划分为X方向上要求的分解区域 数目,则方法100进行到步骤186。如果全部Y区(Xii)还未被划分为X方向 上要求的分解区域数目,则方法100进行到步骤184。

在步骤184中,来到下一Y区(Xii+1),并将i和偏移量Xii重置为零。然 后方法100回到步骤170进行下一Y区(Xii+1)的下一Xi截面(Xi+1),并从步骤 166开始重复。以这种方式,方法100迭代地重复步骤166-182直到全部Y 区(Xii)都被划分为X方向上分解区域的数目为止。这在图7中更清楚的示出, 其表示用3×2组合划分成六(6)个单独着色分解区域的油藏模型200。图7 中示出的油藏模型200根据方法100的步骤102-110和步骤150-182被划分 成六(6)个分解区域。

在步骤186中,使用等式(2)来计算另一偏移量大小。对于图7中所示的 油藏模型200,分配给每个单独着色分解区域的活动单元格总数记录在上。 在该示例中,根据等式(1)的理想数目为828。因此,图7所示油藏模型200 的偏移量大小根据等式(2)为128。

在步骤188中,方法100确定上述偏移量大小是否小于上述另一偏移量 大小。如果上述偏移量大小小于上述另一偏移量大小,则方法100进行到步 骤191。如果上述偏移量大小并不小于上述另一偏移量大小,则方法100进 行到步骤194。对于图6中所示的油藏模型200,偏移量大小为194。对于图 7中所示的油藏模型200,另一偏移量大小为128。因而,偏移量大小并不小 于另一偏移量大小,并且对于该示例而言方法100进行到步骤194。

在步骤191中,计算步骤158、160、174和176中存储的每个连续值之 间的差。

在步骤192中,通过在步骤158、160、174和176中存储的每个连续值 之间进行台阶步进(stair stepping)来移动分解边界。

在步骤194中,计算步骤120、122、136和138中存储的每个连续值之 间的差。

在步骤195中,通过在步骤120、122、136和138中存储的每个连续值 之间进行台阶步进来移动分解边界。通过移动分解边界,该步骤改善了使用 并行解算器(solver)时的网格着色,并且显著地改善了并行处理,从而没有两 个邻近的分解区域(即,彼此有连接的区域)具有相同的颜色。因为上述另 一偏移量大小(128)小于上述偏移量大小(194),所以图7中所示的分解边界是 通过在步骤120、122、136和138中存储的每个连续值之间进行台阶步进来 移动的。结果示出在图8中,其表示用3×2组合划分成六(6)个单独着色分 解区域的油藏模型200。通过这一步骤分配给每个单独着色分解区域的活动 单元格总数记录在上。用红色圈出的区块示出与图7相比的台阶步进发生之 处。这可以通过比较图9A和图9B更清楚地示出,图9A和图9B表示另一 油藏模型900。在图9A中,执行步骤194且将结果使用在步骤195中。由 于步骤120、122中所存储的每个连续值之间没有差异,仅有步骤194的结 果是步骤136、138中所存储的每个连续值之间的差,其为Y=169、Y=176 和Y=180之间的差。如图9B所示,Y=169和Y=176之间需要七(7)级台阶。 相应地,分解边界93上将连续值(Y=169和Y=176)隔开的中点92被用来 递增式地调整从中点92开始的分解边界到Y=169所表示的分解边界,以及 从中点92到Y=176所表示的分解边界。上述递增式调整基于逐个单元格来 发生。对于Y=176和Y=180之间的差从另一中点94进行同样的调整。因此, 在台阶步进之后,带有蓝点的单元格被分配给不同的区域。这种技术被称为 台阶步进是因为基于逐个单元格的区域边界递增式调整就像如图9B中所示 Y的连续值之间的台阶。

在步骤196中,使用等式(2)计算组合的最终偏移量大小。对于图8所示 的油藏模型200而言,根据等式(2)的最终偏移量大小为140。

在步骤197中,方法100通过确认是否存在步骤106中计算的另一组合 来确定是否重复。如果存在步骤106中计算的另一组合,则方法100进行到 步骤198。如果不存在步骤106计算的另一组合,在方法100进行到步骤199。

在步骤198中,来到步骤106中计算的另一组合。然后方法100从步骤 108开始重复进行下一组合,并在不存在其他组合时于步骤197停止重复。

在步骤199中,选择步骤196中计算的最终偏移量大小最低的组合作为 表示活动单元格最为平衡的带有分解边界的组合。

现在参见图10,以常规2D分解算法确定的不同分解边界来示出油藏模 型200。在该3×2分解的示例中,存在六(6)个分解区域:X方向上的三个区 域以及Y方向上的两个区域。偏移量大小为406并且示出活动单元格对于每 个区域的不均衡分配,这是因为常规2D分解算法并未将活动单元格考虑进 去。使用新方法100的偏移量大小对于图7所示的油藏模型200最佳为128, 其呈现出与现有方法相比活动单元格对每个区域的更加平衡的分配。

示例

为了示出新方法100相比现有方法的优点,在下面的表格中列出四个模 型。表1给出每个模型的规格/参数,并且表2对现有方法和新方法100针对 每个模型的性能进行比较。

项目名称 单元格的# 活动单元格的# 分解 模型1 543900 33680 2x3x1 模型2 385120 104138 2x3x1 模型3 576576 103760 2x3x1 模型4 597816 112291 2x3x1

表1

表2

系统说明

本发明可通过诸如程序模块等指令组成的计算机可执行程序(通常被称 为由计算机执行的软件应用或应用程序)来实施。该软件例如可包括执行特 定任务或实施特定抽象数据类型的例行程序、程序、对象、组件和数据结构。 软件形成允许计算机根据输入源作出反应的接口。可使用来与本发明 接口。软件还可与其他代码段协作以响应于连同接收数据源接收的数据来发 起各种任务。软件可存储和/或执行在任意种类的存储介质上,例如CD-ROM、 磁盘、磁泡存储器以及半导体存储器(如各种类型的RAM或ROM)。另外, 软件及其结果可通过诸如光纤、金属线等各种载体介质和/或通过诸如因特网 等各种网络传输。

另外,本领域技术人员将理解本发明可用各种计算机系统配置来实践, 包括手持设备、多处理器系统、基于微处理器或可编程用户(programmable- consumer)的电子设备、小型计算机、大型计算机等等。任意数目的计算机系 统和计算机网路对于使用本发明都是可接受的。本发明可实践于分布式计算 环境下,其中通过经由通信网络链接的远程处理设备来执行任务。在分布式 计算环境中,程序模块可位于本地和远程的包括存储器存储设备等计算机存 储介质中。因此,本发明可在计算机系统或其他处理系统中关联于各种硬件、 软件或其组合来实施。

现在参见图11,框图示出用于在计算机上实施本发明的系统的一个实施 例。该系统包括计算单元,其有时被称为计算系统,并包含存储器、应用程 序、客户端接口、视频接口以及处理单元。上述计算单元仅是适当计算环境 的一个示例,并不意图对本发明的使用或功能范围给出任何限制。

所述存储器主要存储应用程序,该应用程序可由计算单元执行用以实施 本文所述以及图1-图9所示的本发明,其还可被描述为包含计算机可执行指 令的程序模块。因此,所述存储器包括2D分解模块,其使结合图1A-图1F 所示以及所述的方法成为可能。虽然可使用来利用2D分解模块的结 果,但可使用其他接口应用代替或者也可使用2D分解模块作为单 机应用。

虽然计算单元被显示为具有广义的存储器,但该计算单元通常包括各种 计算机可读介质。举例而言但并非限制,计算机可读介质可包括计算机存储 介质。计算系统存储器可包括诸如只读存储器(ROM)和随机访问存储器 (RAM)等易失性和/或非易失性形式的计算机存储介质。ROM中通常存储 有基本输入/输出系统(BIOS),其包含例如在启动期间帮助在计算单元内的 元件之间传递信息的基本例行程序。RAM通常包含可立即访问和/或当前可 由处理单元运行的数据和/或程序模块。举例而言但并非限制,所述计算单元 包括操作系统、应用程序、其他程序模块以及程序数据。

存储器中所示的组件还可被包括在其他可移除/非可移除、易失性/非易 失性计算机存储介质中,或者可通过应用程序接口(“API”)实施在计算单 元中,该应用程序接口可驻存在通过计算机系统或网络连接的单独计算单元 中。仅举例而言,硬盘驱动器可从非可移除、非易失性磁盘读取或向其写入, 磁盘驱动器可从可移除、非易失性光盘(诸如CD ROM或其他光学介质)读 取或向其写入。在示例性操作环境中可使用的其他可移除/非可移除、易失性 /非易失性计算机存储介质可包括但不限于:磁带卡盒、闪存卡、数字通用光 盘、数字视频带、固态RAM、固态ROM等等。上述讨论的驱动器及其关联 计算机存储介质为计算单元提供对计算机可读指令、数据结构、程序模块和 其他数据的存储。

客户可通过客户端接口向计算单元中输入命令和信息,所述客户端接口 可以是诸如键盘和指点装置(通常是指鼠标、轨迹球或触摸板)等输入装置。 所述输入装置可包括麦克风、操纵杆、圆盘式卫星天线(satellite dish)、扫描 装置等等。所述这些及其他输入装置通常经由系统总线连接至处理单元,但 也可通过诸如并口或通用串行总线(USB)等其他接口和总线结构来连接。

监视器或其它类型的显示装置可经由诸如视频接口等接口连接至系统 总线。与视频接口一起还可使用图形用户界面(“GUI”)以从客户端接口接 收指令并向处理单元传输指令。除监视器外,计算机还可包括诸如扬声器和 打印机等其他周边输出装置,其可通过输出周边接口来连接。

虽然未显示计算单元的其他内部组件,但本领域技术人员将理解这些组 件及其互连都是公知的。

虽然已经结合当前优选的实施例描述了本发明,但本领域技术人员应当 理解其并不意图将本发明限制于这些实施例。因此,应当想见可对所揭示的 实施例作出各种变化实施例和改进而不脱离由所附权利要求书及其等同限 定的本发明的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号