11.19.1 Eclipse GRDECL File as an IJK Grid

Topic Version1Published09/11/2015
For StandardRESQML v2.0.1

An Eclipse GRDECL grid consists of an NX x NY x NY corner-point grid described by these keywords (Figure 11.19.1-1):

  • COORD defines straight coordinate lines, which correspond to the RESQML pillars.
  • ZCORN provides the parametric Z-values, which are used to specify the corner nodes for each cell, using the COORD data as a linear lookup from Z to XY. Adjacent columns share pillars (no IJ Gaps), but the top and base of cells need not be continuous: a GRDECL grid supports NZ-1 K Gaps.
  • ACTNUM is an array, which is used to specify whether the geometry and/or properties of a cell are defined.
  • Properties are attached to the cells of the grid.
Figure 11.19.1-1 Class diagram for an Eclipse grid, including geometry/topology, parametric lines/points, and properties.

This figure is split into its major components in Figure 11.19.1-2 , Figure 11.19.1-3 and Figure 11.19.1-4 , which are explained below.

Figure 11.19.1-2 Class diagram for the geometry of an Eclipse grid.

The IJK grids have three indices and inherit a UUID as an abstract data object. An Eclipse grid implicitly assumes that all cells are faulted and includes redundant geometric information when they are not. In contrast, RESQML only introduces split coordinate lines and split coordinate line nodes when faults are present, if any. However, in this example, no analysis of the data within the GRDECL file has been performed, and so the cell geometry is stored as if each cell were faulted.

Figure 11.19.1-3 Class diagram for the parametric points and lines of an Eclipse grid.

The COORD data from the GRDECL file are used to define a (NX+1) x (NY+1) array of straight parametric lines, i.e., linear parametric lines with two control points per line. The control points are the XYZ values from the COORD data and the control point parameters are the COORD Z values. The ZCORN data from the GRDECL file are used to describe the cell corner nodes. The array of parametric points will be referenced for all of the 4*NX*NY coordinate lines, which themselves reference the (NX+1) x (NY+1) parametric lines, once for each pillar.

There is one subtly in this construction. The parametric line indices array in the points 3D parametric array does not need to be specified because it is identical to the pillar indices array in the column layer split coordinate lines. This is an example of the mapping from array index of the parametric points to the parametric line index already being known in context so that it does not need to be specified a second time. The optional parametric line indices array is available for when this mapping is not otherwise known.

A GRDECL file assumes that Z is monotonic and uses the Z coordinate to provide a linear lookup to X and Y. In contrast, the parametric representations in RESQML parameterize the XYZ coordinates to an arbitrary parameter, P. This parameterization removes all restrictions on the shape of the reservoir, for example, to support overturned reservoirs. This flexibility also allows for simplification in the grid description for specific layering schemes. For example, a parametric value that varies between 0 and NK may be used to naturally describe a proportional layering scheme.

Property treatment is common to all RESQML representations. Properties are attached to the IJK grid representation and follow the indexing of the selected attachment kind, which in this case are cells. The abstract class of values may be instantiated in several ways, including a constant array or an explicit array of values stored as an HDF5 dataset.

Interestingly, the ACTNUM keyword of the GRDECL file does not have a standard interpretation in the industry; its usage will vary from application to application. For some applications, a zero value of ACTNUM implies that all properties have been nulled for that cell, while for others, a zero value implies that both properties and geometry are null. To avoid any ambiguity, RESQML does not use “ACTNUM” as such. Instead, RESQML uses:

  • an optional explicit Boolean array named CellGeometryIsDefined, which indicates exactly that
  • an optional standard property kind called “active”. This property kind allows, by means of the instantiation of a Discrete or Categorical property attached to the grid, to indicate that an indexable element should be (or not be) taken into account.
Figure 11.19.1-4 Class diagram for the cell properties of an Eclipse grid.
Figure 11.19.1-5 Instance diagram of an Eclipse GRDECL file, including properties.

Grid name (UUID) is GRDECL with indices NI=NX, NJ=NY and NK=NZ. The remaining indices are NIL=NX+1, NJL=NY+1, NKL=2*NZ and #Intervals=2*NZ-1. Properties are attached to the IJK grid representation by reference, with an attachment kind of cells. One property (porosity) shows the use of a constant array. The other property (permeability) shows the use of the property count to store the three directional permeability arrays as a single 4D array. The use of property facets allows more details about the property values to be stored, e.g., that these are both gross properties, that the porosity is expressed in percentage, and that the three permeabilities are in the I, J, and K directions.

The IJK grid contains the geometry of the coordinate line nodes, and in this case, the data from the ACTNUM array within the omit cells object. The nodes are defined parametrically using the COORD parametric lines. Because the model is faulted, the coordinate lines need an array, which is used to implicitly describe which columns of the model follow the split coordinate lines and which do not. This is the array of pillar indices. This array also indicates how to map from the 4*NX*NY coordinate lines to the (NX+1) x (NY+1) pillars, and is used as part of the parametric points construction.

Coordinate lines may be indexed using a 4D set of indices: (,I,J). The Eclipse GRDECL file and RESQML each reduce this index to a single 1D index, or equivalently choose an order for the coordinate lines. RESQML v2 specifies that the index of each unsplit coordinate line is identical to its corresponding pillar index. Each split coordinate line is defined explicitly by the column per split coordinate line jagged array and the corresponding pillar indices. In contrast, GRDECL does not distinguish between split and unsplit coordinate lines and will have a different, and longer, list of coordinate lines than will RESQML.