POSC Specifications Version 3.0 |
Epicentre Modeling Methodology |
Much technical data consists of arrays of numbers. An array may have a structure of many dimensions. The meaning of the numbers depends both on what measured quantity or property a number represents and on its position in the structure of the array. Assigning meaning to properties is in the core of conventional data modeling techniques. Assigning meaning to structure is less well developed.
In Epicentre, GEOMETRY types are used to represent the content and semantics of arrays of sampled properties. An attribute specified as one of the point, sample, line, surface, volume, hypercell or element data types implies that its value contains an array or arrays.
Some variations of sampled data can be very complex (e.g., spatial distributions), involving many measurements of multiple properties at many locations. A mechanism must be provided to fix the measurements in real-world locations and describe the topological relationships between them. The information is therefore a puzzle involving three parts: topology, geometry and property.
For sampled data that involves topology, a grid is used to tie the various pieces of the puzzle together. The grid defines an area of a line, surface, volume or hypercell in terms of nodes, edges, faces (for 2d+), cells (for 3d+) and hyper elements (for 4d+). The grid defines some numbering scheme to which all other data can be attached, and contains topological information such as adjacency.
Spatial data is located in a real-world coordinate space by assigning a location to each node of the grid. The location is a set of coordinates for a particular coordinate system. Property arrays assign sets of property values to the elements that comprise the grid.
The simplest form of grid is a regular grid in one, two or three dimensions. A one dimensional (see Figure 1) grid is an ordered set of nodes where node i is adjacent to both node i+1 and node i-1.
![]() |
A two dimensional grid (see Figure 2) adds a second index (j) to the identify of each node. Similarly, the addition of a third index (k) is required for a three dimensional grid.
![]() |
If the grid represents a one dimensional object, we can assign the geometry of the object to the nodes of the grid. Note that the object is not necessarily straight between the sampled points and the nodes are not necessarily regularly spaced. The purpose of the grid is to provide the topology of the points where samples are taken. The points are represented by nodes on the grid and the nodes specify the order in which we connect the dots in order to draw the object (see Figure 3). The grid is always regular but the geometry may not be regular.
![]() |
In addition to geometry, we can also assign properties to the nodes. The geometry represents the independent variable(s) and the properties represent the dependent variable(s). For example, a sampling of how pressure varies (see Figure 4) with time can be stored by assigning time as the geometry of the nodes and by assigning pressure as a property of the nodes.
![]() |
There is no handedness to an ijk grid indexing scheme. That is, the grid is not oriented nor is it orientable. Neither is there an assumption as to the location of the origin of the geometrical coordinate system relative to the origin of the grid indexing scheme. Note that many subsurface earth modeling packages use a convention that i and j are nominally oriented in a horizontal plane and k has a nominal vertical orientation with k increasing downward. Care must be exercised with this type of thinking since an object may twist around such that at some points k is increasing upward (e.g., folded bedding).
These simple concepts of topology (adjacent nodes), geometry and property allow us to support the majority of the array data structures found in most industries.
Unfortunately, the complexity involved in detailed spatial descriptions (e.g., of the Earth's subsurface) requires that we extent the above simple description of a grid. If we connect the adjacent nodes of a grid with straight line segments then we can see other elements of the grid. The line between two nodes is called an edge, the area that is bound by four edges is called a face and the space that is bound by six faces is called a cell (see Figure 5, Figure 6 and Figure 7).
![]() |
![]() |
![]() |
By allowing properties to be assigned to elements of a grid, we can describe more complex interactions within and between grids. For example, we can describe how fluids flow within a reservoir by assigning a numerical property to a particular face of each cell in the 3D grid that represents the reservoir.
As we have seen above, the nodes of a regular grid are identified by the index tuple for the grid (i.e., i for 1D, i,j for 2D and i,j,k for 3D). This tuple also identifies the highest dimensioned element (edge for 1D, face for 2D and cell for 3D) within the grid. That is, the highest dimensioned element in the grid is identified by the bounding node that has the minimal index values. Identification of the other elements within the grid requires an additional index to be added to the tuple.
For a 2D grid, the edge in the positive i direction from the each node has an edge index of 1 and the edge in the positive j direction from each node has an edge index of 2 (see Figure 8).
![]() |
For a 3D grid, edge 1 and edge 2 are the same as for the 2D grid and the edge in the positive k direction from each node has an edge index of 3. In addition, the face in the increasing i and k directions (constant j) has a face index of 1, the face in the increasing j and k directions (constant i) has a face index of 2 and the face in the increasing i and j directions (constant k) has a face index of 3 (see Figure 9).
![]() |
Regular grids can be extended beyond 3D by continuing to add indexes. For example, the addition of an l (el) index in order to create a 4D grid. A 4D grid includes a hypercell element as the next higher dimensioned element beyond cell. While difficult to visualize, these grids are useful for certain technical data.
This section describes the specialized grids that are used for subsurface earth modeling.
A triangulated mesh is very useful for describing the geometry of a complex surface. It defines a system of adjacent triangles. The system consists of a number of nodes, each identified by an index number, a set of indexed edges, where each edge is defined by two bounding nodes, and a set of indexed triangles, where each triangle is defined by three bounding nodes. Edges are restricted to being part of one or two triangles only, nodes can participate in an unlimited number of triangles. Each triangle of the mesh must be able to be reached from every other triangle of the mesh by traversing their shared edges.
![]() |
Trimesh examples (see Figure 10).
Example b shows a trimesh grid with the following elements:
Edge 1 is defined by nodes 1 and 2, edge 2 is defined by nodes 1 and 4, etc. Face 1 is defined by nodes 1, 2 and 4, face 2 is defined by nodes 1, 3 and 4, etc. Note that there is no face defined corresponding to nodes 2, 3 and 4.
An unstructured grid defines a more general case of the trimesh in which the number of sides for any cell is not limited to three. This grid allows for different cells within the grid to be of an arbitrary number of sides.
The connectivity relationships that extend between cells, faces, edges and nodes are used when creating an unstructured grid. Unstructured grid architecture is specified via relationships between cells, faces, nodes, and edges. The architecture of the unstructured grid is incorporated into the grid instance. Using this grid, any combination of cells and faces can be used to create a two or three dimensional grid. Connectivity is implicitly defined by the sharing of faces and edges. This feature is intended to allow cells to carry inferred connectivity via face proximity without requiring that common faces always be defined.
A central node is defined for both cells and faces. Since faces are not constrained to be "flat", this central node provides an indication of the shape of the face. For the cell, the central node records the centroid used at instantiation since the cell may have an unusual shape - making the centroid difficult to determine.
![]() |
Unstructured grid architecture is specified via relationships between cells, faces, nodes and edges (see Figure 11).
A corner point grid is a variation of a regular 3D grid in which nodes are split into 8 components. It is sometimes called a split-node grid. Each node component is associated with one of the 8 cells that touch that node. Thus a corner point grid is considered to be cell-based, meaning that the indexing scheme i,j,k returns the index of a cell, and node components are indexed by an extra node index (see Figure 12). This allows each cell to be geometrically located independent of any other cell. This is most commonly used in earth modeling where a fault has rifted a structure. The grid describes the topology of the unrifted structure and the geometry spatially locates the same node on each side of the rift. Similarly, each face has two components and each edge has four components. Properties can be assigned to the individual components of a cell. For example, to a face component in order to specify the transmissibility of fluids across the rift (i.e., the same face exists on both sides of the fault).
![]() |
Specialized modeling situations may require alterations to an otherwise regular grid (see Figure 13). A grid can be modified by:
![]() |