With the large choice of software packages to use such as pre/post processor for reservoir simulation, it is not surprising that there are some different assumptions of map axes and IJK origin. This document is intended to help the user navigate this minefield when using Petrel and ECLIPSE/FloViz. Teesside University Technical Report
With the large choice of software packages to use such as pre/post processor for reservoir simulation, it is not surprising that there are some different assumptions of map axes and IJK origin. This document is intended to help the user navigate this minefield when using Petrel and ECLIPSE/FloViz.
There might be 16 different combinations of the origin location and the order of reading i, j and k direction as the following table shows:
2. Problem Statement
Using of Petrel as modeller and ECLIPSE as simulator will not require higher level of background understanding of origin cell and map axes assumptions; since Petrel takes care of it automatically. However, if using different set of packages with different coordinate system assumptions then understanding this document would be crucial.
As an example, suppose you have used a left-handed coordinate system to define the grid and the properties in the modeller software. Then you export the grid and properties in .GRDECL format to be used in ECLIPSE. In order to define well completion and update the SCHEDULE section of the ECLIPSE data deck; you wish to use Petrel. Petrel is assuming a right-handed coordinate system by default (refer to section 3); thus when you import your data set (Grid and the properties that Petrel requires to define COMPDAT keyword such as permeability, NTG, etc.) into Petrel; it gives you a warning about the left- handed coordinate of the imported data. This warning is generated as Petrel recognizes the increasing order of COORD/ZCORN items. You may click on OK and QC imported data. Then you define your new wells, completions and development strategy. Now, you wish to partially export the SCHEDULE section for the pre-defined ECLIPSE data deck. You need to adjust the grid settings as explained in section 4.
Therefore, if one wants to use different software packages with different coordinate system assumptions to generate different parts of the ECLIPSE data deck and merge them together, strongly advised to read this document.
3. ECLIPSE/FloViz Axes
In ECLIPSE and FloViz, the axes are a Right Handed System (RHS). The origin of the grid is at the top left corner when looking at the grid from above. The cell numbers increases in the i-direction first then in j, as shown by the arrows in Fig.1. When reading cell information, ECLIPSE assumes that the “I” direction cycles fastest, followed by “J” and “K”. As an illustration, a model of 20 x 5 x 10 as in Fig.1 will have these extents specified in the RUNSPEC section. ECLIPSE will expect to read the geometry data for a total of 1000 cells plus property data to calculate the pore volume and transmissibilities for each cell. The first 20 porosity values read by ECLIPSE will be assumed to be from cell (1, 1, 1) to (20, 1, 1). The next 20 porosity values will apply to cell (1, 2, 1) to (20, 2, 1) inclusive.
Fig. 1) ECLIPSE/FloViz Axes and cell numbering illustration
4. Petrel Axes
Petrel also uses a (RHS) rule to determine X, Y and Z-axis.
Fig. 2 illustrates how the axis and positive directions are chosen.
Fig. 2) Petrel Axes illustration
Consequently, the cell numbering begins from the far left corner as shown in Fig.3:
Fig. 3) Cell numbering in Petrel
Fig. 4) Grid Settings
But this would be the case when the settings of the grid model are as Fig. 4; i.e. the origin is top-left and the order of reading direction is i first then j; and k from top to bottom.
In Petrel, the users often prefer to have the origin shifted on Jmax-as shown in Fig. 5 below- to match the origin position in ECLIPSE package (FloViz,…) which previously was explained. This can be done in Petrel by adjusting the settings shown in Fig.6 and to get results as shown in Fig.7 .
Fig. 5) ECLIPSE/FloViz origin and cell numbering
Fig. 6) Petrel default settings of grid for exporting to the simulator and visualization
Fig. 7) Cell number compatibility for Petrel and ECLIPSE in case of default settings of grid export
3.1 Additional Controls for Importing into Petrel
If a case is imported into Petrel, window of Fig. 8 would pops up and one can specify the settings for grid import by checking the “Advanced…” icon as shown in Fig. 9.
Fig. 8) Petrel Import settings window
Fig. 9) Advanced settings for grid import in Petrel
Now to import ECLIPSE results into Petrel and to transform from ECLIPSE system to Petrel system, Petrel basically just rotates the ECLIPSE axes system 180 about its X-axis until the Z-axes points out of the screen. This is equivalent to
– Negate the depth values
– Negate the Y values
– Move the corner of (1,1,1) to the supplied MAPAXES location ( if any)
Note: MAPAXES is an ECLIPSE optional keyword for input of pre-processor map origin. It specifies the grid axes and the grid origin relative to the map coordinates. It is normally output by grid pre-processors so that the origin of the maps used to generate the grid can be stored. (For more information please refer to ECLIPSE Manual)
– This does NOT change the handedness of the coordinate system i.e. although y values and K values are negated but Petrel is still working based on the right hand side. (Fig.2)
• If Petrel is presented with a Left Handed Coordinate system;
– It performs the above coordinate systems and also flips the J indexing to recover ECLIPSE indexing i.e. shifting J index to NY-J+1 (where NY is the maximum number of cells in Y direction).
• If Local Coordinate System is ticked ON; (Refer to Fig. 4)
– Coordinates in file are assumed to be relative to MAPAXES coordinate system , if MAPAXES not supplied this will be (0,0)
– Negate the depth values
– Negate the Y values
– Add the MAPAXES origin values to every cell corner
• If Global Coordinate System is ticked ON;
– Coordinates in file are assumed to be already in the Petrel Axes system
– Negate the depth values
– Rotate the grid around the Petrel X axis
Example: Consider the following Grid and Property in different options of importing into Petrel;
2 3 4 /
24*1000 24*1100 24*1100 24*1200 24*1200 24*1300 24*1300 24*1400 / PERMX
1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 5 6 /
a) If this case is imported into Petrel with no MAPAXES specification and allocating local coordinate default values as (0, 0) then you will observe the following Fig. 10.
Fig. 10) No MAPAXES specification and allocating local coordinate default values as (0, 0)
Thus, Y-axes are negated. In Z-Dimension all values are negated as well. Thus, the origin is shifted from (1000,2000) to (1000,-2000) and the model is the same as ECLIPSE/FloViz appearance (no mirroring).
b) If this case is imported into Petrel with no MAPAXES specification and allocating local Origin Coordinates of (5000, 7000) then you will observe the following Fig.11 .
Fig. 11) No MAPAXES specification and allocating local Origin Coordinates of (5000, 7000)
Thus, the Y-axes are negated then values are added to 7000. (i.e. 2000=>-2000 then, -2000+7000=>5000 as you observe in y-origin). For X-axes, the values are simply added to the specified origin x-value (i.e. 1000+5000=>6000 as you observe in x-origin). In Z-Dimension all values are negated.
c) If this case is imported into Petrel with no MAPAXES specification and allocating Global Coordinates then you will observe the following Fig.12 in which the model is mirrored with respect to X-axes. By the way the properties are allocated to the right cell.
Fig. 12) No MAPAXES specification and allocating Global Coordinates
Thus, the Y-axes are not negated anymore. For X-axes, the values are the same as well. Just the model seems to be mirrored with respect to X-Axis due to different origin of the model and different positive direction of Y-axes. In Z-Dimension all values are always negated.
3.2 Additional Controls for Exporting from Petrel
There is a setting panel for the grid to make user have the control of exporting options of grid. You may go to the model panes, RMB on the grid and go to the settings, mapping, export settings for the simulator and visualization as Fig. 6.
You need to be aware of the coordinate system of the simulator or the visualization software that you want to use, and based on that information, adjust this panel.
Warning: Currently, Petrel does not support the “Set K to Kmax” and “traverse first along J, then along I”transforms as input i.e. Petrel can export the Grid and the properties in such an order.
4.1: Exporting ECLIPSE Grid Properties from Petrel – Using Global Coordinate System in Petrel
4.1.1 Changing Traversal Order
It is understood that the mapped coordinates are in the right hand system where the cell number increases traverse along the i-direction first, then along j-direction. The workflow below will outline how to change the order of cell numbering to be traverse j-direction first then along the i-direction and how to change the cell origination points. Then look at its effects on the grid property, well location, faults and aquifer keywords.
1. Open the IJKOnExport.pet project and click on ECLIPSE export settings… in the Project menu as shown in Fig. 1.1, below:
Fig. 1.1: ECLIPSE export settings window
ECLIPSE export settings window-shown in Fig. 1.2-will pop-up, ensure to select “Global coordinate system” in the File coordinate system section, this should take the coordinates as shown in petrel. Then check the “User defined cell origin”, select “Cell origin at (I=0, J=0, K), and “Transverse first along I, then along J” in the Petrel cell origin section. Then click OK.
Fig. 1.2: ECLIPSE export settings
2. Select “Export” in the file menu, type in “GCS_I0_J0_K0_IJ” in the file name and ensure to select “ECLIPSE keywords (grid geometry and properties)ASCII(*,*)” in the save as type and click Save. See Fig.s 1.3 and 1.4 for illustrations
Fig. 1.3: File menu
Fig. 1.4: Export menu window
The “ECLIPSE keywords (grid geometry and properties) (ASCII)” window will pop-up, select IJK_PORO, and click Export settings, you will see the ECLIPSE export settings window again, verify that current settings is that set in the previous step, see Fig. 1.5. Then click OK, then OK in the Export units window.
Fig. 1.5: Export properties window
This should create a file in the location you saved it with the grid property keywords.
Open this file and look at the data in the COORD keyword, the first 6 numbers correspond to the top- first 3-XYZ coordinates and the bottom-next 3-XYZ coordinate systems of the “pillar” at the origin of the grid (originating corner of the first grid block). When you compare with the same point in the 3D visualization of the grid, you will find that they are the same. Keep in mind that we are working in the Global Coordinate System; the XY origin can be changed in the Local Coordinate System, which will be covered in section 2. Subsequent sets of 6 numbers should correspond to the next corner in the order which the grid is read (I-direction first, then J).
There are 2 PORO keywords, the first shows the porosity values for each grid block starting from the originating block going in the direction the grid is read/printed when exported and the second shows the porosity values for the local grid starting from the local grid cell that correspond to I=0, J=0 and K=0 and going in the same direction as stated above. Click on IJK_PORO in the properties folder of the “GCS_I0_J0_K0_IJ” grid in the model pane and select each grid block to compare each value, you will find that they match. Fig. 6 shows the keywords.
Fig 1.6: COORD and PORO keywords
As shown in Fig. 1, there is a fault that starts at the +Y face of cell (1,1,1) through cell (2,1,1), then turns to move along the +X face of cell (2,2,1), and turns again to move along the +Y face of cell (3,2,1) to cell (5,2,1).
3. Look at the FAULTS keyword, the expectation is for the keyword to represent the previously stated location. This is shown table 1 below:
Table 1.1: FAULTS keyword
To view the FAULTS keyword, right click on the case “GCS_I0_J0_K0_IJ” in the cases pane. Then click “export only”. See Fig. 1.7.
Fig. 1.6: Case based Export
After the keywords are exported, right click on the case again, and click “editor”, look in the grid folder and open the FAULTS keyword.