An Efficient Algorithm For Removal Of Inactive Blocks In Reservoir Simulation
Authors: Abou-Kassem J.H. , Ertekin T. 
Published: March 2010

In the efficient simulation of reservoirs having irregular boundaries one is confronted with two problems: the removal of inactive blocks at the matrix level and the development and application of a variable band-width solver. This paper presents a simple algorithm that provides effective solutions to these two problems. The algorithm is demonstrated for both the natural ordering and D4 ordering schemes. It can be easily incorporated in existing simulators and results in significant savings in CPU and matrix storage requirements. The removal of inactive blocks at the matrix level plays a major role in effecting these savings whereas the application of a variable band-width solver plays an enhancing role only. The value of this algorithm lies in the fact that it takes advantage Of irregular reservoir boundaries that are invariably encountered in almost all practical applications of reservoir simulation.

Introduction

Reservoir simulation has become a valuable tool and has been effectively used in the development and optimization of oil recovery from petroleum reservoirs. The application of a reservoir simulator to a particular field provides useful information about the reservoir performance under various conditions. To obtain such information, the practicing engineer carries out a process that involves three consecutive tasks - data preparation, history matching, and future performance prediction. The actual reservoir, in this process, is represented in the simulator by a system of equations written for a collection of regular blocks.

Almost all practic:a1 applications of reservoir simulation involve reservoirs having irregular boundaries. An example of a two dimensional reservoir is presented in Figure 1. The figure illustrates how the reservoir is subdivided into blocks. Blocks lying on the reservoir boundaries, which are identified by "x", are called "boundary" blocks. Blocks that are within and including boundary blocks are called "active" blocks whereas those exterior to the boundary blocks, which are cross-hatched, are called "inactive" blocks. In practice, all blocks are assigned dimensions and properties such as thickness, elevation, porosity, and permeability in the X-, y-, and z-directions. The dimensions and properties of boundary blocks are modified to ensure a good approximation of the actual reservoir boundaries. The inactive blocks are assigned zero permeability in the three principal directions. This, in effect, represents no-flow boundary condition between the active boundary blocks and neighbouring inactive blocks. Other boundary conditions such as constant flow or constant pressure can then be treated as source (sink) terms in the flow equations for boundary blocks. The simulation of the actual reservoir is achieved by solving all equations for the computational grid. However, we recognize, in this example, two computational grids. The first computational grid (CG1) considers all blocks regardless of their being active or inactive, and as a result it has regular boundaries coinciding with the external boundaries of the mesh itself. The second computational grid (CG2) considers active blocks only, and as a consequence it has irregular boundaries (Fig. 1). Although both computational grids produce identical results, each has its pros and cons.