advanced builder and results -builder tutorial (2013.10).pdf

130
Advanced Builder Course - 1 - Advanced Builder & Results Course  Taking the full advantage of new powerful tools for creating and improving reservoir models    Builder Tutorial, V. 2013.10  Computer Modelling Group Ltd.

Upload: najmudeen

Post on 18-Jul-2016

236 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 1 -

Advanced Builder & Results Course  

Taking the full advantage of new powerful tools for creating and improving reservoir models 

  

 

Builder Tutorial, V. 2013.10  

Computer Modelling Group Ltd.

Page 2: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 2 -

Introduction to Advanced Features in Builder

Dataset conversion for other simulator types IMEX - STARS - GEM (available from the File menu). Various data source options (menu File | Import from another file):

- Rescue - CMG simulation results files - Other datasets in CMG, Eclipse or CHEARS (Chevron-Texaco) formats - Component (PVT) properties - Stand alone array files

Grid and reservoir section (Reservoir menu):

- Quick pattern grid generation - Changing transmissibility across faults - Geo-statistical property generation - Full support for Rescue data import

Tools menu commands:

- Export grid and spatial properties into Rescue or text format - Property statistics generation - Validation with simulator

Well features:

- Production data wizard supports input for well groups - Switching well constraints in time - Create a field history file with the imported data - Export well trajectory table file - Wellbore diagram shows initial fluid contact depth for WOC and GOC

Dataset validation tools:

- Rock-fluid | Diagnostic plots - Well | Fix well definitions dates - Well | Validate well completions for NULL blocks

Color scale and IJK slab controls.

Page 3: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 3 -

Exercise 1: Creating a New Model From RESCUE Data

This example shows how to create a complete dataset based on a real RESCUE model.

Create a new dataset Simulator: IMEX Units: FIELD Porosity: DUALPOR Shape Factor: Gilman and Kazemi Simulation start date: 1991-01-01 Import the grid model using menu item "Reservoir | Open RESCUE File..." Browse for the file “RESC_MATX.bin” located in the Rescue folder and click OK through the next 3 control panels to finish the grid import. Switch to the 3D view. Adjust the Z / X Aspect Ratio to 1 from the menu View | Aspect Ratio and Scale, then turn off the grid block lines in the main property panel and turn on Spatial Property block outline. The model should look similar to the one below (showing Grid Top). Save the dataset with a new name.

Figure 1: Model in 3D showing grid top

Page 4: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 4 -

Populate the grid matrix properties

Use menu item Reservoir | Advanced RESCUE | Direct import of RESCUE Property to open the control panel for property import. Select the following properties from the rescue file to bring it for corresponding matrix values in Builder and then click OK: Porosity Pinchout Array Net to Gross Ratio Connate Water Saturation

Figure 2: Direct import of Rescue properties window Click OK to the messages that appear. Open the tree view for Reservoir section and notice the green and red marks for the existing and missing grid properties as signaled by the Builder validation routine. Please do not forget to save the dataset file on a regular basis. Set both matrix and fracture rock compressibility and reference pressure (Reservoir > Rock Compressibility) to:

CPOR 4.5e-6 (1/psi) PRPOR 4100 (psi)

Specify the matrix permeability by formula based on porosity values. Select menu Tools | Formula Manager... Give the formula a name like “PermI_Matrix”. Add porosity to the list of independent variables, type in the actual formula code and press OK button. Repeat the same steps for the vertical permeability formula. PERMI = 0.0117 * EXP(30.691*Ø) PERMK = (Ø/1.1996) ** 1.1341

Page 5: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 5 -

Figure 3: Calculator interface for equations to calculate permeabilities from porosities Open the grid property specification window and set the above formulas as an input for matrix permeability in I and K directions. Set the Permeability J equal to the Permeability I by using the Equals I option.

Page 6: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 6 -

Figure 4: Property Specification window Press OK to calculate these properties and populate the actual grid arrays.

Figure 5: Property calculation window

Page 7: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 7 -

Populate the grid fracture system properties Use menu item File | Import from another file | Spatial properties from stand-alone arrays to open the control panel and import corresponding arrays from the files FRACTURE_PERMEABILITY.txt, FRACTURE_SPACING.txt and FRACTURE_POROSITY.txt in the DATA folder:

Fracture Porosity Fracture Permeability I, J, K Fracture Spacing I, J, K (use EQUALSI for J direction)

Figure 6: Importing spatial properties from stand-alone arrays Notice that the red marks for missing data should disappear from reservoir section.

Component properties (PVT)

Use menu item Components | Import WinProp-generated model to import the file “RESC_PVT.imx” from the DATA folder. The validation red mark should change to green for OK status.

Page 8: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 8 -

Rock-fluid section

Open MS Excel file ‘other data required.xls’ located in DATA folder. Select menu Rock-Fluid | Create / Edit Rock Types to open the control panel. Add a new rock type from right arrow button. Copy and paste the table data from the spreadsheet “ROCK TYPE CURVE” into the SWT and SLT tables. Press OK button and look at the plot view for curve display.

Figure 7: Relative permeability curves for rock type 1 Create a second set of relative permeability curves in fracture system. For fracture relative permeability we assume a straight line function from 0 to 1 for all phases. Add new rock type 2 and enter only the end points for water and liquid saturation tables. SWT Sw krw krow 0.0 0 1 1.0 1 0 SLT Sl krg krog 0.0 1 0 1.0 0 1

Page 9: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 9 -

Figure 8: Relative permeability for rock type 2 Press OK in the rock-type control panel. Specify the relative permeability set number for matrix and fracture system as shown below and press OK button in the property specification and calculation windows.

Figure 9: Specifying rock type for fracture The validation red mark in Rock-Fluid section should have changed to green for OK status.

Page 10: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 10 -

Initial conditions

The model will be initialized with the vertical equilibrium from water-oil and gas-oil contacts and variable bubble point pressure versus depth. Select menu item Initial Conditions | Initialization Settings to open the control panel. Press Advanced button as we will need the Pb vs. Depth table. 1. Keep the option Water – Oil – Gas selected. 2. Click on Advanced button and switch to the tab “PVT region parameters”. 3. Enter the reference conditions and fluid contact depths:

REFPRES 9000 psi REFDEPTH 17500 feet

DWOC 24000 feet DGOC 17500 feet

4. Select the option “Depth dependent table” for bubble point pressure input. 5. Use right mouse clicks in the table to insert 7 table rows. 6. Open MS Excel file ‘other data required.xls’ located in the DATA folder 7. Copy and paste the table data from the spreadsheet ‘Initialization’.

Figure 10: Enter data for initial conditions

Page 11: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 11 -

Press OK to finish the initial conditions input.

Import well trajectories and perforations

Select menu item Well | Well Trajectories | Well Trajectories… to open the wizard window.

Figure 11: Selecting trajectory files for importing Step 1:

- Select “Table Format” file type - Set “ft” units for both x, y and z coordinates - Brows for the file “RESCWELLS_Feet_2006.WDB” located in the DATA folder - Click Next when done

Step 2:

- Keep all the well names selected and select the other check box options - Click Next when done

Page 12: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 12 -

Figure 12: Selecting well trajectory names to import Step 3:

- Accept all defaults and press Finish

Figure 13: Selecting parent trajectory for wells

Page 13: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 13 -

The trajectory import wizard should have created 12 new wells marked by red dots. At this moment they are missing completions and production constraints. We are going to create well completions by reading the well perforation intervals from a text file. 1. Use menu item Well | Well Trajectories | Trajectory Perforation Intervals to open

the control panel. 2. Press “Read File” button to open the PERF file. 3. Select “Field (ft)” file units. 4. Select file name “RESCWELLS_Feet.PERF” in the DATA folder. 5. Press Open button. 6. Press OK to finish the perforation import.

Figure 14: Inserting trajectory perforations intervals

Import well production data

Use menu item Well | Import Production / Injection data to open the wizard window. Step 1:

- Select the file type “General” - Browse for the input file “RESC_WELLS_PRODUCTION.prd” in the DATA

folder - Click Next

Page 14: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 14 -

Figure 15: Step 1 of importing production/injection data

Step 2: - Select the text lines with first data entry and well name - Click Next

Figure 16: Step 2 of importing production/injection data

Page 15: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 15 -

Step 3:

- Check mark the “Space” separator option for better column alignment - Click Next

Figure 17: Step 3 of importing production/injection data Step 4:

- Select correct headers in the date, oil and gas production columns as shown below. Notice that the production figures in the input file are cumulative volumes for each period (it will be converted into daily rates)

- Click Next

Step 5: - Accept the defaults and press Finish button

Page 16: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 16 -

Figure 18: Step 4 of importing production/injection data

Figure 19: Step 5 of importing production/injection data

Page 17: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 17 -

After clicking finish, set the stop date as the last date of the simulation.

Figure 200: Setting the stop date for the simulation run Create a field history file (fhf) from the so that later we can use it in Graph for history matching. Clicking on Wells & Recurrent | Create a Field History File will bring up the window shown below. You can rename the file or use the default name and then click OK. Averaging production data is another useful option in Builder, but we do not need it for this model.

Figure 21: Creating Field History File

Page 18: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 18 -

Open the Time-Line View by clicking on Wells & Recurrent| Open Timeline View to check the production events along the time scale.

Figure 22: Time line view of the wells in the model

Running and numerical tuning

When all red (error) and yellow (warning) validation signs have been replaced by green check marks (ok) the model is ready to run with the simulator (IMEX). You may have a warning for wells & recurrent section because an ALTER key words exist on the STOP date Run the dataset with IMEX and look at the log file time records. Some things you can try if having numerical problems (Not the case for this dataset)

1. The linear solver has difficulties to converge in 40 iterations, which is not surprising for dual porosity model. It can help if the maximum number of solver iterations is increased (try factor of 2).

===================== WARNING (from subroutine: CALLSL) ====================== The linear solver has not converged after 40 iterations. Continuing the run ... ==============================================================================

2. It takes only 1 or 2 Newtonian iterations for each time step. We can try to enable wider normal variation of the main parameters allowing the simulator to take longer time steps without increasing material balance error (try factor 2 - 2.5).

Page 19: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 19 -

Add the following controls to the numerical sections and run the simulator again. *DTMAX 60 ** limit the max time step to 2 months *NORTH 100 ** enable the linear solver using more memory *ITERMAX 100 ** enable larger number of solver iterations ** increase normal changes to get grater time steps ** NORM is used for automatic time-step selection *NORM *PRESS 1000 *NORM *PBUB 1000 *NORM *SATUR 0.25 ** Add after the RUN keyword *DTWELL 5 ** start with 5 day step after well changes If you would like to see additional information about Newtonian iterations in the output file than add keywords *WPRN ITER NEWTON to I/O section of the dataset. Re-run the dataset.

Grid up-layering

One of Builder’s features is up-layering that allows combining the grid layers in K-direction with automatic averaging of the grid properties and updating well completions. The model with smaller number of grid blocks can run many times faster, but some vertical resolution will be lost. In the current exercise we can try to reduce the number of K layers from 23 to 12 and compare the simulation runs of the original and up scaled models. 1. Open the dataset created in Exercise 1 in Builder. 2. Recalculate the trajectory intersections with grid blocks. Select Well | Well

trajectories | Recalculate Intersections with Grid

3. Press the “Edit Grid” button on the modes tool bar and say OK to the message. 4. Select menu item Reservoir | Edit Grid | Combine Layers.

Page 20: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 20 -

Figure 23: Step one of combining layers 5. In the drop down menu select PERMK/POROSITY –MATRIX as Guide Property. 6. In the Divide Selection area select the radio button INTO EVENLY SPACED

LAYERS and click the Apply button that is directly below the Divide Selection Area. This will bring up the Combine Layers Dialog: in the Lone Unit drop down menu select 12.

7. Press Accept and Next when this is done.

Page 21: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 21 -

Figure 24: Step 2 of combining layers

8. Notice the default averaging routines for different grid properties and select Pore Volume Weighted Arithmetic for Connate Water saturation.

Page 22: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 22 -

Figure 25: Step 3 of combining layers 9. Press Finish. The up-layering on this model may take about one minute. Well trajectories in this dataset need to be updated for intersection with grid blocks. It is done by selecting the menu item Well | Well trajectories | Recalculate Intersections with Grid. This command will recalculate block entries and exits for all trajectories. Save dataset with a new name and run it with IMEX. In the test run the CPU time for up scaled model was 4 times less than with the original. (Sub-model extraction is another tool in Builder to get a smaller model from a big one).

Page 23: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 23 -

Exercise 2: Handling Multilateral Well Trajectories

This exercise is an example of how to import and setup connections for multilateral well trajectories. Open the dataset file “cart.dat” in Builder. This file is in the DATA folder. The model contains only a simple Cartesian grid (10800 blocks) without any other input properties.

Import well trajectory data

Use menu item Well | Well Trajectories | Well trajectories to bring the well trajectory import wizard. Wizard Step 1:

- Select file type “ZMAP Format” - Set file units “ft” for x, y and z coordinates - Use the browse button to open the trajectory file “zmap_traj.dat” - Press Next

Wizard Step 2: - Keep all trajectory names selected - Press Next button

Page 24: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 24 -

Wizard Step 3: In this step we can modify the trajectory ID. The options allow:

- Change the imported trajectory names - Set the parent trajectory to attach the current one as a child branch - Chose a well that this trajectory will be a part of. This option is available only for

the main trajectory branch. The child one inherits it by default from the parent In this trajectory data file we have 4 multilateral wells that have the following branch hierarchy (attach-to order): Level 2 Level 1 Parent (main branch) ------- ------- --------------------

FM08STh -> FM08ST# -> FM08v FM11STd -> FM11

FM12STh -> FM12STd -> FM12v FM13STh -> FM13ST# -> FM13v

In order to set the connection for trajectory FM08STh click the cell in the row with its name and column “Attach to parent.” This will bring up a little action button. Press the action button in the cell. In the popped up control box select the "parent trajectory name" as FM08ST# and click OK. Repeat it for other trajectory connections as outlined above. Press the Finish button on the Wizard to complete the trajectory import. Reply “Yes” to remove those well trajectories that do not intersect the grid model.

Page 25: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 25 -

Adjusting well trajectory KB elevation

Switch Builder to 3D grid view. Adjust “Transparency” to 50% under the 3D settings in the property window.

Rotate the model and notice that deviated branches for wells FM08 and FM13 are

below the grid bottom. We will try to modify the KB elevation for deviated trajectory branches in order to put them inside the grid.

Expand the Wells item on the tree view for Wells & Recurrent section. Expand well

FM08v. Double click on the tree item “Trajectory FM08Sth” to open the “Trajectory Properties” control panel (the same panel can be opened using menu item Well | Well Trajectories | Trajectory Properties).

1. Select the second tab “Nodes”. 2. Press the Tools button and select the command “Set correction to KB

elevation”. 3. Enter correction value 300 ft, press OK. 4. Notice that the trajectory x, y, z coordinates have been updated. 5. Set the same KB correction for other branches FM08ST#, FM08v, FM13STh,

FM13ST#, FM13v.

Page 26: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 26 -

Creating well completions

Note: We use well trajectory data in Builder to set the 3D well path. Providing both the trajectories and perforation intervals allows for creating the model completions (PERF cards) that will be the actual simulator input. Once the well trajectories have been imported we add perforation intervals. The model completions are calculated automatically in place of intersection of grid block surfaces and perforated intervals. Use menu item Well | Well Trajectory | Trajectory Perforation Intervals to open

the control panel. It offers a number of options to add dates and perforation intervals for selected number of trajectories.

Use Quick Perf button to add perforation intervals in all grid layers as shown below. Click the OK button in both windows to finish the perforations input.

Page 27: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 27 -

Create Refined Grids for Wells

Frequently, refined grids are needed at well locations so that pressure drop and saturation profiles are modeled more accurately.

1. On the grid display in the 2D Areal view, right click and select Edit Grid. 2. In the dialog that appears, select the first option and click OK.

3. From the Reservoir menu, select Edit Grid | Refine Wells… 4. From the Refine Wizard dialog that appears, select all wells and select the option

All Perforated Layers, and click Next. In the next step select Cartesian and click Next. In the last step set I=3, J=3, K=3 and click Finish.

Page 28: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 28 -

Page 29: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 29 -

5. Change to probe mode, then change the view to a cross section view and locate a well to verify that the grid refinements that were added.

FM09

FM14

FM14

1,000 1,100 1,200 1,300 1,400 1,500 1,600 1,700 1,800 1,900 2,000 2,100 2,200 2,300 2,400 2,500

1,000 1,100 1,200 1,300 1,400 1,500 1,600 1,700 1,800 1,900 2,000 2,100 2,200 2,300 2,400 2,50020

03

00

40

05

00

60

07

00

80

09

00

1,0

00

1,1

00

1,2

00

1,3

00

20

03

00

40

05

00

60

07

00

80

09

00

1,0

00

1,1

00

1,2

00

1,3

00

0 185 371 556 741 927 1,112 1,298 1,483 1,668 1,854

Grid Top (ft) 1987-01-01 J layer: 46

Page 30: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 30 -

Add tubing performance table

Tubing tables can be generated by CMG wellbore calculator or imported from a file that has tubing data in CMG or Eclipse (VFP) format. With the tubing table we are going to control the wells by well head pressure constraint (WHP). 1. Use menu item" Well | Tubing Tables..." to open the control panel. 2. Press the button “New Table”. 3. Enter the Flow Rate Type OIL and reference depth 3000 ft. 4. Type in the flow parameters for Flow Rate, GOR, WCUT, LFG Lift Gas and WHP as

shown below. 5. Press button “Update BHP table”. 6. Press “Calculator” button.

We are going to use CMG wellbore calculator to obtain the bottom-hole pressure values for this table.

Page 31: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 31 -

In the pressure calculator window select the computation method and enter the tubing conditions, fluid gravity and tubing segment data as on the picture below.

- Press “Calculate” button - Press Close and OK to accept the results - Use “Tubing Plot” button to review the results on the x-y plot - Press OK to finish the tubing input

Page 32: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 32 -

Add well constraint definitions

In addition to having the completion all wells need to be defined as producer or injector and have flow constraints set. 1. Use menu item Well | Well Events to open the control panel. 2. Select all well names in the list on the left side with the Shift key pressed in order to

set the same definition to all wells. 3. On the tab ID & Type select type PRODUCER and press Apply button. 4. Select Constraints tab and set check box “Constraint definition” ON. 5. Use “select new” (blue text) to add 2 operating and 1 monitoring constraint. 6. Press Apply.

Switch to the Wellbore tab to specify that tubing table #1 will be used for wellhead pressure calculations from the reference depth 3000 ft. Then press Apply.

Page 33: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 33 -

Notice that when multiple wells are selected in the left list the changes will apply to all of them at the selected date. In this example all wells get the same events. Close the window with OK. Please note that the well trajectories, perforation, completions and constraints will be saved in the dataset file.

Finish the dataset input and run the model

Let’s use the Builder automation tools to provide the rest of the dataset input so that we can quickly get this model running. Reservoir section

- Constant porosity 30 % - Horizontal permeability 200 mD, vertical permeability 100 mD - Rock compressibility 3.0e-6 1/psi - Reference compressibility pressure 14.7 psi

Page 34: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 34 -

Component section Select menu item Components | Quick Fluid Model, choose BLACKOIL option. Enter the following data to build the PVT table from black-oil correlations and click OK:

- Reservoir temperature 220 F - Max pressure 4000 psi - Bubble point pressure 2000 psi - Oil gravity (water=1) 0.8 - Gas gravity (air=1) 0.75 - Reference Pressure for water properties 2000 psi

Rock-Fluid section Create a set of water and gas saturation tables based on Corry correlations with the end point input. Use menu item Rock-Fluid | Create / Edit Rock Types. Press the right arrow button to choose New Rock Type command. On the tab for Relative Permeability Tables press Tools button and select the command Generate Tables Using Correlations. Enter the following end points:

- SWCON, SWCRIT 0.20 - SOIRW, SORW 0.25 - SOIRG, SORG 0.15 - SGCON, SGCRIT 0.05 - KROCW 0.8 - KRWIRO 0.4 - KRGCL 0.6 - KROGC 0.8 - All exponent values 3.0

Initial conditions Use menu item Initial Conditions | Initialization Settings to open the control panel, enter the following options and then click OK:

- Equilibrium type Water-Oil - Reference pressure 3000 psi - Reference depth 1000 ft - WOC depth 1000 ft - Bubble point pressure 2000 psi

Recurrent data Create a range of dates in the Simulation Dates control panel for 10 year simulation run with 1 year intervals. The intervals are used for outputting data into the result file. Add STOP command at the end.

Page 35: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 35 -

Input / Output controls: Add flux vector and stream line generation options on the simulation results output. Run the model with IMEX

Page 36: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 36 -

Exercise 3: Creating a Corner Point Grid

The objective of this exercise is to create a non-orthogonal corner point grid that fits inside the complex fault boundaries. Open Builder and create a new dataset with initial settings

Simulator: IMEX Units system: SI Start date: 2005-01-01 Single porosity

Open the contour map file

Use menu item: File | Open Map File. Select the file type “CMG Mesh format” and meters for x, y coordinates.

Page 37: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 37 -

Set the grid boundaries

1. Looking at the map, you determine that the area of interest is about 3000m x 3000m. You decide that you would like 50m x 50m grid blocks, so your grid will have NI=60 and NJ=60. You also have 10 thickness maps from your geologist, so will set NK=10.

2. From the menu, select Reservoir > Create Grid > Orthogonal Corner Point... Fill

in the values as follows, and click OK:

3. We now need to rotate the grid and shift it to cover the area of interest. Holding down

the Ctrl key, press down the left mouse button and move the mouse to rotate the grid. Once you have rotated the grid about 45 degrees, release the Ctrl key and the mouse button. Next, hold down the Shift key, press the left mouse button, and move the mouse to shift the grid to cover the lower part of the mapped area. To set the grid to an exact position and rotation, use the Reservoir > Edit Grid > Modify Location dialog.

Page 38: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 38 -

4. Once you are happy with the grid position, click on the Probe Mode icon on the Tool bar to exit Edit Grid Mode.

Calculate 3D grid coordinates

For calculating the 3D grid coordinates we need to specify the depth contour map for the top layer and thickness values for each layer. 1. Select menu item Reservoir | Specify Property to open the control panel.

380

380380

46046046

0

460

540

540

540

540

540

540

540

540

540

620

620 620

620

620

620620

620

620

620

620

700

700

700

700

700

700

700

700

700

700700700 700700700700

780

780

78

0

780 780780780

780

780

780780

780

780

780

780

780

780780

780

780

780

780

780

860

860

860

860

860

860

860

860 860860

940

940

940

940

940

940

940

940

940 940

940 940940940

940

940

1,02

01

,020

1,02

01,

020

1,020

1,020

1,02

0

1,02

01,020

1,02

01,0201,

020

1,020

1,0201

,100

1,1001,100

1,100

1,1

00

1,180

F 1

F 2

F 3

F 4

F 5

F 6

F 7F 8

F 9

F 10

F 11

F 12

F 13

327,000 328,000 329,000 330,000 331,000 332,000 333,000

327,000 328,000 329,000 330,000 331,000 332,000 333,000

4,4

28

,00

04

,42

9,0

00

4,4

30

,00

04

,43

1,0

00

4,4

28

,00

04

,42

9,0

00

4,4

30

,00

04

,43

1,0

00

4,4

32

,00

0

Page 39: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 39 -

2. Right click with the mouse in the row “Layer 1” of the column “Grid Top”, select “Geological map”. Use the button “Values in File 1” to set the original contour maps with the grid top and faults. Press OK.

3. Press OK in the property specification window. 4. In the property calculation window, select the option “If property is not calculated

use an inverse weighted average of nearby points to estimate the value”. Then click OK.

5. After the calculation is completed, you should be able to visualize the model in 3D. Rotate and zoom the model and do a quality check on the grid and fault system. Try to locate any grid blocks that may cause problems.

6. Save the data set. Property specification window (inputting grid top).

Page 40: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 40 -

Property calculation window.

Grid Display in 3D.

Page 41: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 41 -

Grid Thickness Calculation

By default Builder has assigned a thickness of 10 m to each layer in model. Now let’s assign the thickness map to each of these layers.

1. Click on Specify Property 2. For grid thickness Layer 1 right click and select Geological map 3. Click in "Values in File 1" and select CMG Mesh format (.msh), Units m. and the

CMG Mesh map file called Layer1.msh located in the DATA Folder. Click OK 4. Click OK. 5. Repeat the same procedure for all the ten layers selecting the corresponding

thickness map e.g., for layer 2 it will be Layer2.msh and so on.

6. Click OK and select the following options in the Block / Corner Value Calculation

Page 42: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 42 -

7. Click OK.

Page 43: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 43 -

Property Modeling Using Geostatistics

This section will give a brief introduction to the Geostatistics tools available in Builder. More details on the Geostatistics algorithms and options is given in the Bonus Exercise.

1. From the Wells & Recurrent menu, select Well Trajectories | Well Trajectory 2. Change the file type to be Table Format and select the file

Advanced_Builder_Trajectories.wdb. 3. Select all units to be m and click Next. Click Next twice and then Finish. 4. Now that the trajectories are loaded, well logs can be input. From the Wells &

Recurrent menu, select Well Trajectories | Import Well Logs… 5. Change the File type to be Multiple wells log file and set the Depth units to be m. 6. Open the file Advanced_Builder_Porosity_Sw.wlg. Click OPEN and then OK. 7. From the Reservoir menu, select Geostatistics… 8. At the top of the dialog, click the button with an arrow on it and from the popup

menu select New (default). Enter a name for the realization such as Porosity, then click OK.

9. Select the Output Property of Porosity. 10. Click on the Tools button and from the popup menu select Import logs or tables

of measured depth values… 11. From the dialog that appears, click on the Select Wells button, select all the wells

and click OK. 12. Select the log poro and click OK. 13. The main geostatistics dialog should now be populated with values for each well.

Page 44: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 44 -

14. Select the Methods tab and change the Calculation method to be Gaussian Geostatistical Simulation.

15. Click on the button Click to Match Variogram and match the variograms. The

matched variogram for porosity should look like the following:

Page 45: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 45 -

16. Click Run to populate the grid with porosities. 17. Repeat the above steps #8 through #16 for Sw. For the output property, select

Endpoint Saturation: Connate Water.

Page 46: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 46 -

18. Save the data set when finished.

Analyzing the grid thickness distribution

1. Switch the current view property to Grid Thickness.

Page 47: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 47 -

2. Select menu item View | Color Scale | Set Color Scale. Adjust the color scale number of intervals to 25. Press OK.

3. Use menu item Tools | Grid and Property Statistics to display the thickness distribution at color scale intervals.

4. Think of what pinch-out thickness value we can choose.

Editing the Grid Structure in 3D

1. When the property is set to be Grid Top and the view is set to be IJ-2D Areal, right click on the grid and from the popup menu select Edit Reservoir Property, the following panel will appear:

2. Select the second option Interactively move grid blocks with the mouse in 3D. 3. In the dock window that appears, check the box Edit Grid in 3D. The display

should change to 3D. 4. Rotate and zoom the grid until a section of the model is found that contains poorly

formed blocks. The following picture is one of these locations.

Page 48: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 48 -

5. Click on a grid block that is located in the badly formed area to find out the grid

location index. 6. From the dockable window, check the box Use 3D Sector For Drawing Grid.

Select the option Use Center Grid and change the I,J,K location to be the location index noted in the previous step. Zoom into the problem area.

7. From the dockable window, select the option Move all layers, and check the box Show All Nodes.

8. Right click on top of the grid and select Edit Grid Structure... 9. Using the mouse, move the grid blocks until they align with the rest of the grid.

Hold down the Ctrl key to select multiple nodes at the same time.

Page 49: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 49 -

Quick Perfs of Wells

1. From Well menu, select Well Trajectories… and the select Recalculate Intersection with Grid, say No if a message pops up

2. From Well menu, select Well Trajectories… and the select Trajectories Perforation Intervals…

3. Click on Quick Perf Button. Keep defaults on the next interface and select OK. Say OK if a message pops up. Press OK

Property Modification Using MODs

4. Change the view to be IJ-2D Areal , change the displayed property to be Porosity and right click on the reservoir grid. From the popup menu select Edit Reservoir Property…

5. Click on the grid and select a few grid blocks to be modified. Note that once the mouse button is released, the property modify dialog appears.

6. Multiply the values by 1.2 for the Current fundamental layer only and click OK. Return to Probe Mode.

Page 50: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 50 -

7. From the Tree view under Reservoir, click the + sign next to Array Properties

and find the array Porosity. 8. Click the + sign next to Porosity and double click on the line that says Property

Edited (*MOD Keywords). 9. Note that the values that were changed in the Property Modify dialog are reflected

in this MOD edit window. Change the multiplier to be 1.1 and click OK. Say Yes to the message that pops up.

Page 51: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 51 -

10. On the tool bar, click on the Polygon Manager icon . The New Polygon dialog will appear. Change the Name: to “Null Region”. In the view of the reservoir, click around the region to the left of the grid, enclosing those grid blocks to the left of the fault.

11. Once you have completed (closed) the polygon region, click OK. Next the

Polygon Manager dialog will appear. Double click on Property Modifications. The Property Modifications of Porosity dialog will appear. Replace the Porosity value with 0 in this region.

Page 52: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 52 -

Property Modification Around Wells

1. Change the view to be IJ-2D Areal, change the displayed property to be Porosity and right click on the reservoir grid. From the popup menu select Edit Reservoir Property…

2. Click on the grid and select a few grid blocks to be modified. Note that once the mouse button is released, the property modify dialog appears.

3. At the top of the dialog select the option Property Modifications Around Wells. 4. Select all wells and multiply the porosity by 0.9. Select All perforated layers

and change the Number of Surrounding Blocks to be 2. 5. Click the Add Wells button to add comments to the MOD keywords so that the

user can know what changes were applied to what wells. 6. Click OK when done. 7. From the tree view, find the property Porosity and double click on the MOD

keywords to bring up the MOD edit window. Note the comments at the beginning of the new keywords.

327,000 328,000 329,000 330,000 331,000 332,000

327,000 328,000 329,000 330,000 331,000 332,000

4,4

28

,00

04

,42

9,0

00

4,4

30

,00

0

4,4

28

,00

04

,42

9,0

00

4,4

30

,00

04

,43

1,0

00

0.00

0.03

0.06

0.10

0.13

0.16

0.19

0.22

0.26

0.29

0.32

Page 53: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 53 -

Transmissibility multipliers across faults

We normally use transmissibility multipliers to model the fault effect on the fluid flow. 1. Change the view to be IJ-2D Areal and make sure the mode is select back to

Probe mode by right clicking on the grid and select the top item Probe Mode. From the Reservoir menu select Set Transmissibility Multiplier Across Faults…

2. Also make sure you have the Top map, which includes the faults information, open. If not you will get the following message, and you will only be able to change all the faults at once.

3. In the dialog that appears, note that a number of faults are listed. If you click on

any line containing a fault, note that the image changes on the reservoir to highlight the selected fault.

Page 54: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 54 -

4. Change Fault F 4 to be sealing by setting the multiplier to be zero.

Note that this way of setting transmissibility multipliers across faults uses the *TRANSF keyword, which gives all the grid blocks and directions along the fault. The advantage of using *TRANSF is that one multiplier is applied to all the blocks along the fault.

Relative Permeability Curve Averaging

1. Before relative permeability curves can be created, the fluid model must be defined. Therefore, from the Components menu, select Import WinProp Generated Model, select the file RESC_PVT.imx and click Open.

2. From the Rock-Fluid menu, select Create/Edit Rock Types. 3. Click the top menu button, and select Import and Average Rock Type… 4. In the Rock Fluid Averaging dialog that appears, click the Tools button and select

Read Another Simulator Data File and Extract Rock Fluid Data. Select the file RelPerms.txt and click Open. Select the simulator IMEX and click OK. Click OK to any messages that appear.

5. Click the Tools button again, select Read Capillary Pressure Data in Laboratory Format, select the file Lab_Capillary_Pres.txt, and click Open.

6. Click the Tools menu button and select Normalize Curves. If there are any curves that do not follow the trend of the other curves and should be removed from the averaging, uncheck the check box. Otherwise click Next.

Page 55: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 55 -

7. Remove any liquid gas curves that do not follow the trend of the other curves (i.e.

curve #6) and click Next.

Page 56: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 56 -

8. For the water oil drainage capillary pressure curves, to best determine if there are any curves outside the normal trend, click the Tools button and select Plot capillary pressure curve match with: Pc = Pe (entry height) * Sw ** (-1.0/Lamda). Also, click the Normalize Curves option to un-check it and view the curves un-normalized.

9. Uncheck curves that do not follow the trend of the other curves (#8, #13, #17). Then click Next.

Page 57: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 57 -

10. For the water oil imbibition capillary pressure curves, click the Tools button and click the last option that is checked to un-check it, then click the Tools button again and select the Normalize Curves option. Again, uncheck curves that do not follow the trend of the other curves (#29, 30 and 36). Then click Finish, then OK to the message that appears, and OK again to exit the rock fluid section.

11. Notice that you are still have a red mark error in the Rock fluid section. Right click on the Rock fluid data tree and select Validate. You should get the following error:

Page 58: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 58 -

12. Set the first entry of the Krog in the SLT table to 0 and click OK. Now you should have a green check mark in the Rock-Fluid section.

13. Save the data set.

Rock Fluid Diagnostic Plots

Note: When complicated end point scaling options are used in the data set, possibly coupled with temperature dependent end point changes (STARS), it is not always clear what relative permeability curve will actually be used for any particular grid block. Therefore, the rock fluid diagnostic plots were created so that the user could visualize the actual relative permeability and capillary pressure curves used for each grid block.

1. Click the Reservoir tab so that the grid is displayed in the view. Select “Endpoint

Saturation: Connate Water” as the grid property to display. 2. From the top Rock-Fluid menu, select Diagnostic Plots. 3. Click on grid blocks in the display and note the changes in the displayed relative

permeability curves. Note that for the gas oil curves, some grid blocks have very steep relative permeability curves (i.e. blocks with very high Swcon values). These steep curves can slow down the simulator substantially.

Page 59: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 59 -

4. Click the button Show Blocks <= Minimums. This option will display a list of grid blocks where the relative permeability curve scaling has caused the curves to be very steep (i.e. 1-Sorg-Sgcrit-Swcrit <= 0.1). These blocks should be fixed before running the simulator. One easy way to fix these blocks for this data set is to limit the maximum Swcon to be some value (0.45). How might you do this?

Page 60: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 60 -

Bonus Exercise: Creating A Builder Dataset That Uses Geostatistical Tools

This first part of the tutorial will guide you through the steps for building a simple reservoir 3D

geometry using the geostatistical tools available in Builder. It will also show how to use the

geostatistical tools for populating the 3D grid with porosity and permeability values and how to

use Builder’s scripting tools for automating some of those steps.

This is not a tutorial on geostatistics. It aims at making the user more familiar with Builder’s tools.

However, the required geostatistical parameters will be briefly explained where needed.

Geostatistics and Kriging

Ordinary Kriging is a geostatistical method for linear data interpolation. A weighted average of the

neighbouring data is computed to obtain the estimate value. In addition to the usual parameters

for searching the data, ordinary Kriging uses a variogram model from which the interpolation

weights will be computed. The variogram is a function of variance versus distance that models

the spatial correlations between the data. It may vary with direction allowing anisotropies to be

accounted for. You can control the data variogram by using the Click to match variogram and

the Click to edit variogram buttons. We are going to do just that in the next section.

Notice that the Assign data to cells option is selected. This option is used when we want to

make sure the closest grid cell of the mesh map will be assigned a data value as opposed to an

estimated value. It has a minimal impact when the grid is not too coarse and is very often used in

practice. The number of grid cells can be controlled on the Mesh tab of the dialog. We are going

to use the default meshing parameters and keep the Assign data to cells option.

Notice also, the Use Declustering Algorithm option. This option is used when it cannot be

assumed that all the data points in the Points tab should have the same weight for computing

their arithmetic average. Sometimes, the wells are preferentially clustered in sweet spots and

their arithmetic average might be shifted toward a higher value than what it would be for a more

regular sampling pattern of the wells. The declustering algorithm will give more relative weight to

wells that are isolated and give relatively smaller weight to wells that are part of clusters when

computing the usual statistics such as the mean. We are not going to use this option at this time.

When the Use Normal Scores Transformation option is selected, a normal scores transform of

the data will be done prior to the interpolation and a back transform will be done on the

interpolated normal score values. This option is used to normalize the data which may otherwise

yield a very erratic variogram function. The normal scores transform is also useful with any

interpolation methods when the data histogram is highly skewed. When this option is selected, it

Page 61: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 61 -

is the variogram of the normal scores that is computed and modelled. We are not going to use

this option at this time.

Loading Basic Dataset in Builder

We want to create a black-oil IMEX dataset and use the international unit system. A basic dataset

with fluid components and rock-fluid data have been created for this tutorial. For the interested

users, the steps of loading the components and the PVT data can be found in the IMEX tutorial.

These steps will not be repeated here.

1. Select the tutorial_start.dat file in your DATA-geostatistics folder (or another folder you

have chosen for storing that file) and drag and drop it in the Builder window. This will open

the dataset.

At this stage, Builder presents a blank view and is waiting for more inputs.

Figure 26: Builder interface / GUI

We now need to create a grid for the simulator. We want the grid to conform to the reservoir

geometry which is partly known from well data. Before we can create the simulator grid, we need

to interpolate the reservoir geometry between the wells. The reservoir geometry will be derived

from elevations of the reservoir top and from its thickness at the wells.

Page 62: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 62 -

Building the Top of the Reservoir

Loading Well Trajectories

The first step in importing the well markers is to load the well trajectories. The tops and the well

logs will be loaded at a later step in the tutorial.

1. Click on Wells & Recurrent | Well Trajectories | Well Trajectories. This will open the

Import well trajectory wizard.

Figure 27: Importing well trajectories

2. Select the Table Format for the file type and navigate to the dataset folder to open the

provided table file “All_Wells.wdb”. The units will automatically be set to “m”.

3. Click the Next button two times and the Finish button to close the dialog and load the

wells in Builder’s view.

Page 63: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 63 -

Figure 28: Well trajectories in 3D view

Importing Top Data

1. In Builder, click on Wells & Recurrent | Well Trajectories | Import Formation Top File.

The Import Formation Tops dialog will appear:

Figure 29: Importing formation top data

2. Select the provided file “TopTable.tdb” which contains the top values in Measured Depth for

each well. Click OK to close the dialog.

3. The well tops will automatically be displayed as small red disks on each well. Sometimes the

disks are too small for good visualization. The size of the disks can be increased by selecting

the Property Sheet icon on the tool bar. The Builder Properties dialog will open and the

disk size and their color can be changed by selecting the Well Trajectory Tops category as

shown below.

Page 64: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 64 -

Figure 30: Changing well tops size

4. Click OK to close the Builder Properties dialog and update the 3D view. The disks will appear

bigger as shown below.

Figure 31: Well tops in 3D view

Page 65: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 65 -

Creating a Top Map

Maps can be created by clicking on File | Create Map File. This will bring up the Create Map

dialog.

Figure 32: Creating a top map

The Create Map dialog is used to create maps according to different interpolation and simulation

methods available on the Methods tab of that same dialog. We will select a geostatistical

interpolation method later. First, we need to import the top values into the spreadsheet control of the

dialog (Points tab).

1. Click on Tools | Import Tops from Trajectories

2. This will open the Select Trajectory Top dialog as shown below.

Figure 33: Importing tops from trajectories

Page 66: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 66 -

3. Click OK to close the dialog and select the top values in the Create Map dialog.

4. Change the File Name at the top of the Create Map dialog. You can type the new name

directly in or navigate the folders by clicking the ellipses button . Give a name like

TOP_Map.msh and an appropriate path where to save it. We are going to create a mesh file

(extension “.msh”) for the top of the reservoir. The Create Map dialog should now look similar

to this:

Figure 34: Create map dialog with values populated

The data has been imported and we are now ready to select an interpolation method.

Modelling Variogram

All Kriging methods use variogram models from which the spatial correlation can be computed

between any two data locations in the reservoir. Variogram calculations are done by pairing the

data points and looking at the difference between the values. This can be done for a given

direction or for all directions lumped together. The latter is called an omni-directional variogram

and is used when data are scarce or when no spatial anisotropy is present. If there is enough

data, directional variograms should be computed to explore for possible anisotropies. Computing

and modelling variograms in different directions allow us to account for possible anisotropy in the

spatial correlation between the data. Anisotropies are frequently observed with geological data.

They generally tend to be aligned with the geological features of the reservoir.

By default, the Omni-Directional option is selected for the variogram calculations. You can

change it to Bi-Directional which allows for computing the variogram in two perpendicular

Page 67: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 67 -

horizontal directions. The principal variogram direction is given as the Principal Axis Azimuth

Angle parameter which is in degrees. The second direction is automatically set to be at 90

degrees from the principal direction. Therefore, anisotropy in the data can be explored by

changing the principal direction azimuth angle. Variogram anisotropies result in differences in the

variogram range and/or variogram sill with direction. The range is the distance needed for the

variogram to reach a constant value which is called the sill. In absence of deterministic trend in

the data, the sill should roughly match the data variance. A longer range indicates stronger

correlations between the data. A very short range (or no range at all) is characteristic of noise in

the data and will lead to undifferentiated weights for data interpolation. This will be similar to a

simple statistical average. Differences in the ranges with the direction are automatically modelled

with anisotropy ellipses in 2D or anisotropy ellipsoids in 3D. The ellipse (or ellipsoid) is

constructed from the knowledge of the ranges for the two principal directions. Therefore, the goal

is to find those principal directions and set the Principal Axis Azimuth Angle accordingly.

Please refer to a geostatistical text book or Builder user’s manual for more details.

Kriging Method

1. Select the Methods tab and from the Calculation method pull-down list select Ordinary

Kriging (OK) Estimation option. The dialog now shows like this:

Figure 35: Create Map Dialog with Methods Tab and Ordinary Kriging Selected

2. Make sure the Assign data to cells option is checked and proceed to the next section for

variogram modelling.

Page 68: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 68 -

Checking for Anisotropies

1. Select the Bi-Directional option from the Horizontal Variogram Direction pull-down list. The

Create Map dialog should look like this:

Figure 36: Selecting Bi-Directional variogram

A control parameter for the Principal Axis Azimuth Angle and a second control parameter to

edit the variogram (in a perpendicular direction) have been added. The Principal Axis Azimuth

Angle is assumed to correspond to the direction of the major axis of the anisotropy ellipse. This is

expected to be the direction of maximum continuity (or correlation) in the data.

2. Click on the Click to match variogram button which will actually compute the variogram for

the given directions and find a best match with variogram models available in Builder. The

following variogram plot will appear:

Page 69: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 69 -

Figure 37: Variogram for grid top map

The plot shows 4 different variogram curves. One actual variogram curve computed for each of

the two directions (black lines) and one variogram model curve (blue lines) automatically fitted to

the actual variogram curves. You can notice that the actual variograms are computed for different

lag distances (x-axis) which have been marked with green or red small squares. The lag

distances can be different for each direction. The lag distances are pre-set to start with. You can

change them with the Click to edit variogram data option of the Methods tab of the Create Map

dialog. The green colour identifies curve points that were calculated with at least 30 pairs of data

points. These curve points carry enough statistical mass to be considered as significant. The red

points have been computed with less than 30 pairs of data and their variance level (y-axis) may

not be as reliable as for the green points. You should concentrate your attention on the green

points when matching the model curves to the actual curves.

The plot also shows a horizontal grey line which indicates the level of the data variance. In

absence of trends in the data, the variograms should level off at (or around) the data variance

level. When a trend is present, the variogram will keep increasing away above the data variance

line. Very strong trends should be removed before using any interpolation methods. However,

trends are really a matter of scale. Very often, it is correct to consider that there is no trend in the

data if we confine the interpolation to a small window around each of the interpolation locations.

Page 70: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 70 -

In such a case, the variogram function needs to be matched only for distances smaller or equal to

the search window.

Different options are available to manually match the variograms when the automatic fitting is not

deemed good enough. The curve for the model variogram of the principal direction has 3 handle

points marked with blue squares. Sometimes a green or a red square may cover a blue square.

In this case, you may unselect the pair point curves (>= 30 pairs and < 30 pairs) to actually see

the blue handle points. Hovering the mouse over these grab handles will allow you to change the

variogram model curve. The mouse cursor will change from the pointer shape into a small double

pointed horizontal arrow for horizontal movement or a small vertical double pointed arrow for

vertical movement. The variogram maximum level (sill), the lag distance where the maximum

level is reached (range), and the level at the origin (nugget) can be changed with the mouse

movement. The variogram model curve for the second direction (minor direction) has one handle

marked by an empty blue square. This handle is used for changing the variogram range in the

minor direction of the anisotropy ellipse.

In our example, the variogram model type itself needs to be changed for a better fit. The model

type controls the rate of variance changes with the lag distance. This can be done with the

variogram data dialog.

Editing Variogram Data

1. Close the variogram plot window and click on the Click to edit variogram data button for the

first Horizontal Variogram: angle in the Create Map dialog. This will bring up a variogram

editor dialog for the principal (major) axis of the anisotropy ellipse.

Figure 38: Defining variogram data

Page 71: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 71 -

The dialog is divided up into 3 sections, one section for calculating the actual variogram curve at

various lag distances (for the given direction), one section for search parameters (used only at

the interpolation time), and one section for variogram fitting. We are going to change the fitting

parameters to get a better match. The fitting parameters control the variogram type, the level of

the variogram curve at the origin (Nugget), its maximum level (Sill), and the lag distance where

the maximum level is reached (Range). The variogram type changes the rate at which the

variogram function ramps up from the nugget (at lag zero) to the sill (at lag = range). Please, refer

to Builder’s manual or any book on Geostatistics for more details.

Note also the series of Auto check boxes on the right hand side of the dialog. When Auto is

selected, the program will automatically set this parameter for you. Note that some of your Auto

check boxes might be unchecked and their associated edit fields might be turned ON if you have

changed the variograms Nugget, Sill, or Range parameters on the variogram plot by mouse

interaction prior to opening the Variogram Data dialog.

2. Select Gaussian from the Variogram type pull-down list and click OK to close the dialog.

3. Click the Click to match variogram button to redisplay the variogram plot again. This time with

a different variogram type. The following variogram match can now be achieved by moving

around the handles on the model curves (blue):

Figure 39: Matching variogram for Tops

Page 72: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 72 -

We can now consider that we have a good variogram match. Notice that the variogram models

match the actual curves for a lag distance up to about 2500 m. This information will be

considered again at the moment of defining a search window for the data interpolation.

4. Close the variogram plot.

Defining Search Window

Building the top map continues on with the definition of a search window for controlling how data

points will be used for the interpolation. The search window can be defined on the variogram

editor dialog.

1. On the Create Map dialog, click on the Click to edit variogram data button for the first

Horizontal Variogram: angle. This will bring up the variogram editor dialog again. Uncheck the

Auto option for the Search Radius and input a value of 2500.0. This is the limit of validity as

previously observed from our variogram match. (Note: no matter how large the search

window is defined, the maximum number of data used for calculating an estimated value at

any location is actually controlled by the Number of nearest points option on the Methods

tab).

Figure 40: Editing the horizontal variogram dta

Page 73: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 73 -

Warning

2. You can notice that the variogram range (4691 m, your values may vary depending on your

variogram fit) is fairly large in comparison of the distances between the wells. This is likely to

create a problem with the Gaussian variogram type. It is well known that the Gaussian

variogram can generate numerical instabilities in such situation. These numerical instabilities

will translate as erratic behavior in the contour lines of the interpolated surface. Very often,

geostatisticians will add a very small nugget effect to the Gaussian variogram to avoid

numerical instability. In this case, it is suggested to add a nugget effect of 2 which is small

enough to not change the variogram fit, yet enough to remove numerical instabilities when

solving the kriging equations. (Note that only the Gaussian variogram model needs such a

particular attention.)

3. Click OK to close the variogram data dialog and open the second horizontal variogram data

dialog and change the search radius for the second horizontal variogram direction to be

2500.

Kriging the Top Surface

1. Click the Save File button of the Create Map dialog to actually perform the interpolation with

kriging and save the results as a mesh file. The kriged map will be shown in the Builder main

view after the calculations are done. The picture below shows the map in an IJ-2D Areal

view.

Figure 41: Map for top of Reservoir

Page 74: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 74 -

Please, note that the map has been automatically meshed in using the default parameters from

the Mesh tab of the Create Map dialog. These parameters can be changed to refine or coarsen

the meshing. Keep in mind that the interpolated map should cover the same area then the

simulator grid which we will create later in this tutorial.

Building the Reservoir Thickness

To complete the reservoir geometry, we need to estimate its thickness below the top surface.

Similarly to the reservoir top, the thickness too can be estimated by kriging. We need to import

the thickness data into Builder. The next few steps are very similar to those we went through for

estimating the reservoir top. At this point, you may find useful to save the dataset, close it, and

reopen it. This will clear the variogram data values retained from the previous reservoir top data.

Data Importing

1. Open the Create Map dialog by selecting the Create Map File option from the File menu if not

already open.

2. Change the File Name at the top of the Create Map dialog. You can type the new name

directly in or navigate the folders by clicking the ellipses button . Give a name like

ThickMap.msh and an appropriate path where to save it. We are going to create a mesh file

(extension “.msh”) for the reservoir thickness.

3. Clear the spreadsheet of the Create Map dialog if it is not already empty. You can do it by

clicking the gray cell at the very top left corner of the spreadsheet. This will select all the cells

which can then be cleared by depressing the Delete key on the keyboard.

4. Open the file Thicknesses.xls in Excel if not already open. The file has 57 records with the

well name, well (x,y) coordinates, and reservoir thickness for each record. We are going to

paste that data into the Create Map dialog.

Select the range of data values in Excel and copy (rows 2 to 58 and columns A to D).

5. Paste the data into the Create Map dialog with Ctrl-v (on the keyboard). Alternatively, you

could have selected rows 1 to 59 of the Create Map dialog Points tab and selected the Paste

option of the context menu (right mouse button).

Page 75: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 75 -

Figure 42: Inputting values for thickness map

Kriging Method and Variogram Modelling

1. Select the Methods tab, all the selections used to build the Top Map should be selected.

2. Keep the Ordinary Kriging (OK) Estimation option selected.

3. Change the horizontal Variogram direction to Omni-Directional

4. Click on "Click to edit variogram data and reset all the variogram parameters to Auto.

5. Click on the Click to match variogram button. The following variogram plot will appear

(assuming all variogram parameters were reset to Auto):

Page 76: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 76 -

Figure 43: Variogram Plot for grid thickness

Although the variogram fit looks good, it does need adjustment. Remember that we are dealing

with a thickness attribute. The thickness is not likely to change abruptly over a very short

distance. The actual variogram fit (blue curve) is not zero at the origin (zero lag distance). It has a

small nugget effect which indicates that the model is compatible with abrupt thickness variations

within very short distances. The nugget effect needs to be removed if this is not a plausible

situation. A too high nugget effect is very often observed on variograms. This is explained by the

usual lack of samples with very short separation distances. In this case, we should try to

recompute the variogram for smaller lag distances.

Variogram Calculations

1. Close the variogram plot and use the Click to edit variogram data button to change the

variogram calculation parameters with a number of lags of 20 (instead of 10) and a smaller

lag size of 200 m as shown below. You will need to uncheck the Auto check box before you

can change these values. These changes will allow for smaller lag distances (e.g. 200 m

instead of the current value 415 m) and yet will cover a similar total separation distance than

before (as an example 4000m = 20 X 200m = 10 X 400 m).

Page 77: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 77 -

Figure 44: Editing Horizontal Variogram Data for Thickness Map

2. Click OK to close the variogram data dialog and click the Click to match variogram button to

redisplay the variogram plot.

3. Hover the mouse on the blue rectangle at the origin of the variogram model and drag it down

to zero. This will reset the nugget effect to zero.

4. Make other adjustments to the curve until the fit is deemed acceptable like in the picture

below:

Figure 45: Variogram Plot for Thickness Data

Page 78: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 78 -

The first variogram point is almost at zero variance but now has been computed with less than 30

data pairs (red square mark). Although the point is marked to not carry enough statistical mass, it

does suggest that the nugget effect could be smaller than first observed.

We can now consider that we have a good variogram match. Notice that the variogram model

matches the actual curve for a lag distance up to about 3300 m. For distances larger than 3300

m, the actual variogram does continue to increase which indicates that a deterministic trend

actually creates more important variations than variations associated with the spatial correlation

between the data. This suggests that we should apply kriging in a limited search window.

5. Close the variogram plot window and click the Click to edit variogram data button. Uncheck

the Auto option for the search radius and set the search to 3300m as shown below.

Figure 46: Editing search radius for thickness map

6. Click the OK button to close the Variogram Data dialog. We are now ready to compute the

thickness map.

Kriging the Thickness Surface

1. Click the Save File (or Update File) button to actually perform the interpolation with kriging

and save the results as a mesh file. After the calculations, the kriged map will show up in the

Page 79: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 79 -

Builder main view. However you also will see the Top map in the view, so close the top map

by going to the properties window (click on the top icon ), select the

maps option and uncheck the top map. Click OK

Page 80: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 80 -

Figure 47: Map for Reservoir Thickness

2. You can now close the Create Map dialog since we have completed all the maps.

Building the Simulation Grid

At this stage we have estimated two maps, one for the reservoir top and one for the reservoir

thickness. Because adding thickness and elevation permits to define the reservoir shape in 3D,

Builder allows us to combine the information from these two maps for the creation of a 3-

dimensional reservoir geometry. But first, we need to define a simulator grid in Builder. A

conformable grid can be created with a corner point geometry. We want the grid to cover the

same area covered by our two maps.

Grid Definition

1. Select the option Open Map File if no maps are currently displayed in Builder’s main view.

Select the Top or the Thickness map previously created. This will help to correctly position

the simulation grid.

2. Select the option Orthogonal Corner Point…from the Create Grid option of the Reservoir

menu.

3. The Create Grid dialog will appear and let you define the number of grid blocks and their

dimensions. For an exact match with the previous maps, one can use the grid definition

Page 81: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 81 -

actually found in the header of the previously computed maps. You can specify the grid as in

the pictures below.

Figure 48: Orthogonal Corner Point Grid Definition

4. Click OK to construct a grid with 81 grid blocks in the I direction, 40 in the J direction, and 10

in the K direction. Give 128.56 m for the grid block size in I and J. The vertical dimension of

the grid blocks will be controlled by the thickness map as we will see later. The horizontal

simulator grid will appear in Builder’s main view:

Figure 49: Thickness Map with Simulator Grid Defined

Page 82: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 82 -

5. The grid can be moved (by holding Shift + left mouse button and moving the mouse) or rotate

(holding Ctrl + left mouse button and moving the mouse) to superimpose it over the map.

6. Click on the Probe icon to get out of the grid editing mode.

Corner Point Calculation

To compute the grid block elevations, we need to define the Grid Top property in Builder.

1. Click Specify Property button of the View Control tool bar. This will bring up the General

Property Specification spreadsheet dialog.

2. Select cell at row Layer 1 and column Grid Top. Right click and select Geological map from

the context menu. This will bring up the Property Specification dialog.

Figure 49: Defining Grid Top Property

3. On the Property Specification dialog, click the Values in file1 button and navigate to and

select the TopMap.msh file previously created.

Page 83: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 83 -

Figure 50: Specifying Map File for Grid Top Property

Figure 51: Selecting map type and file

4. Click OK to close the dialog.

5. Select cell at row Layer 1 and column Grid Thickness. Right click and select Geological map

from the context menu. This will bring up the Property Specification dialog.

6. On the Property Specification dialog, click the Values in file1 button and navigate to and

select the ThickMap.msh file previously created.

7. Change the edit box to the right of times from 1 to 0.1. This is the multiplicative values used

to split up the thickness over all the 10 layers, each layer having one tenth of the total

thickness.

Page 84: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 84 -

Figure 52: Specifying Map File for Thickness Property

8. Click OK to close the dialog

9. Copy the Grid Thickness specification of row Layer 1 to all rows from Layer 2 to Layer 10 as

shown below.

Figure 53: Defining grid thickness using thickness map

10. Click OK to close the dialog and click OK to the next dialog to actually compute the corners of

the grid. The picture below shows the resulting reservoir geometry in a 3D view with the

Page 85: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 85 -

thickness contour map floating above the grid. You can select the view properties and the

location of the contour maps with respect to the grid by going to the set/modify properties

window and select maps.

Figure 54: 3D View of the Simulator Grid and Thickness Property

At this stage, as a precaution, you can save the dataset before any further analysis.

11. Select the Save As option under the File menu and save the dataset in an appropriate folder

with a different name.

Defining Well Perforations

Well Perforations

1. Click on the Wells & Recurrent | Well Trajectories | Trajectories Perforations Intervals. The

Trajectory Perforation Intervals dialog will appear:

Page 86: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 86 -

Figure 55: Trajectory Perforation Intervals Dialog

2. Click the Quick Perf button. The Quick Perforation dialog will appear.

Figure 56: Quick Perforation Dialog

3. Click OK to close and accept the defaults. All grid layers will be perforated for all wells.

Page 87: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 87 -

Figure 57: Perforation Intervals Defined

4. Click OK to close the Trajectory Perforation Intervals dialog. The wells are perforated over

the entire reservoir thickness. The trajectories should be displayed in the view.

Page 88: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 88 -

Figure 58: 3D View of Trajectories after Perforations

We are now ready to associate log data such as porosity with the wells. It might be a good idea to

save the dataset at this point.

Populating Simulation Grid with Porosity Values

Geostatistical Objects

1. Open the dataset that was previously saved if not already open.

2. Click on Reservoir | Geostatistics. This will bring up the Create Geostatistical Objects dialog

as shown below:

Page 89: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 89 -

Figure 59: Geostatistics Dialog

The Create Geostatistical Objects dialog is very similar to the Create Map dialog. It does not

create maps however. Instead, it is used to populate the simulator grid with Builder pre-defined

properties such as porosity and permeability. It can be used as a stand-alone tool or in

combination with the scripting tool as we will see later in the tutorial. The main purpose of this

dialog is to create blue prints or specifications for using geostatistics in populating the grid with

properties. These geostatistical specifications are packaged together into geostatistical objects

that can be executed, saved, and recalled at will. As we will see later, the geostatistical objects

can be included in a script for automatic and iterative workflows. The dialog is actually empty

because this is a new dataset. We need to create a first geostatistical object.

3. Click the right pointed arrow next to the Name pull-down list at the top of the dialog and select

New (default).

4. Give a meaningful name such as PoroSim for this geostatistical object. We are going to use

this object for creating geostatistical simulations of the porosity. Click OK to accept the name.

The dialog is now active and can receive input data.

5. Select Add New Custom Property in the Output Property pull-down list, and add the suffix

PoroSim, and any comments you want. With this dataset, we cannot directly load the porosity

values into the Porosity property because these values are percentages instead of fractions.

We will later use a formula to create the Porosity property from the CMGLCustom_PoroSim

property.

Page 90: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 90 -

Importing Well Log Data in the Geostatistical Object

6. Click the Tools button and select Import logs or tables of measured depth values…

option. The Select Wells and Logs dialog will come up.

Figure 60: Importing Well and Log Information for Geostatistical Object

7. Click the Import Well Logs button. The Import well logs dialog will appear. This dialog can be used

to read LAS files.

8. Click the Open File(s)… button on the Import well logs dialog. This will open an open file

dialog window where you can navigate the tutorial folder and select all LAS files at once. Use

the Shift key to select all of the LAS files. As shown below, the wells and their logs will be

loaded into the Import well logs dialog.

Page 91: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 91 -

Figure 61: Imported LAS Information

9. Click OK to import all the logs and all the wells.

10. Back to the Select Wells and Logs dialog, click the Select Wells button. This will open the

Advanced Well Selection dialog.

11. Click the >> button to select all wells and OK to close the dialog.

Figure 62: Advanced Well Selection dialog

Page 92: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 92 -

12. Back to the Select Wells and Logs dialog again, select the DPHI log and click OK to close the

dialog. This will import the well log data and average the values if more than one point is

located in the same grid block.

Figure 63: Selecting Specific Log

13. Now the porosity values are loaded into the spreadsheet of the Create Geostatistical Objects

dialog which should look like this (note: the values in the Value column might be slightly

different depending on your grid):

Figure 64: Geostatistics Dialog with Value Information Defined for Porosity

We still need to set the geostatistical method and its parameters before we can use this object.

Page 93: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 93 -

Geostatistical Method

1. Select the Methods tab of the Create Geostatistical Objects.

2. Change the Calculation Method to Gaussian Geostatistical Simulation.

Figure 65: Methods tab and Gaussian Geostatistical Simulation Selected for Geostatistics Dialog

Similar to Ordinary Kriging which we have used to create the reservoir top and thickness maps,

Gaussian Simulation also computes an estimated value as a weighted average of the neighbouring

data with the weights based on a variogram model. Contrary to Ordinary Kriging which only retains

the weighted average, Gaussian simulation actually computes an error variance around the weighted

average and uses it to simulate a value in the error bracket around the estimated average.

Therefore, it is a simulation method as opposed to an estimation method which Ordinary Kriging is.

In so doing, the simulated values will reproduce the data histogram and the variogram model used.

The simulated values will display a more heterogeneous pattern as oppose to an overly smooth

pattern as the one that can be produced with Ordinary Kriging. The pattern obtained with simulation

is closer to what is expected for a property such as porosity. Another advantage of simulation is that

they can generate multiple versions of the porosity values on the grid. This allows for uncertainty

analysis. As a matter of fact, if one would do many Gaussian simulations of the same data and

compute their average, one would find a result very close to what would be obtained with Ordinary

Kriging. Thus, Ordinary Kriging can be seen as the expected value of Gaussian Simulation. As for

Ordinary Kriging, Gaussian Simulation calls for variogram modelling. With Gaussian simulation, the

Page 94: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 94 -

data is automatically transformed in normal scores. Therefore, it is the variogram of the normal

scores of the data that needs to be computed and modelled.

You may also have noticed that a Vertical Variogram option is now available on the Methods tab.

This is because we are populating data in 3D. The 3D variogram is modelled with the spatial

correlation within the geological layers (horizontal) and across them (vertical).

3D Variogram Analysis

1. Select the Bi-Directional option from the pull-down list of the Horizontal Variogram Direction.

We want to explore if the variogram presents anisotropy with the direction. Notice that three

angle parameters are now shown. These angles are used to orient the axis of the anisotropy

ellipsoid if an anisotropy does exist.

Figure 66:Methods tab for Bi-Directional 3D Variograms

2. Click the Click to match variogram button to display the variogram plot window.

Page 95: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 95 -

Figure 67: Variogram Plot for 3D Geostatistics Object

The plot shows that the horizontal variogram looks similar in all directions (you can repeat in

changing the Principal Axis Azimuth Angle parameter). The nugget effect appears to be quite

high. Usually, the vertical variogram will give a better estimate of the nugget effect because the

data values are closer to each other along the wells than between wells. Currently, the vertical

variogram cannot be seen because its scale is much smaller than the horizontal variogram scale.

The vertical variogram is actually squeezed against the vertical axis of the plot. The horizontal

variograms and the data variance curve need to be deselected in the tree view before we can

properly visualize the vertical variogram (shown below).

Figure 68: Vertical Variogram Plot

Page 96: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 96 -

By zooming in on the vertical variogram, we can see that the nugget effect should be smaller. To

adjust the nugget effect, we need to reselect the Principal Axis component of the Horizontal

Variogram in the tree view. The following adjustment with no nugget effect and no anisotropy can

be obtained. In this particular example, the vertical variogram component is very useful to fit the

beginning of the variogram. The horizontal component is used to fit the variogram maximum level

and possible horizontal anisotropies.

Figure 43: Variogram Plots with Different Variogram Component Information Selected

Page 97: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 97 -

3. Close the variogram plot window and reselect the Omni-Directional option for the Horizontal

Variogram Direction as we have no indications for using horizontal anisotropies, and make

sure the variogram is still matching, and make the necessary adjustments to it.

At this stage, we can save the geostatistical objects but we should Run the simulation and look at

the results in case we need to modify some parameters.

Simulating Porosity

4. Click the Run button to actually create the CMGLCustom_PoroSim property. The results will

be automatically displayed in Builder’s main view when the calculations are finished.

Figure 69: Porosity Property Simulated on the Simulator Grid

5. Click OK to save the newly created geostatistical object and close the dialog. This Gaussian

Simulation geostatistical object will be used again later in an automatic workflow. You can

save the dataset to keep a permanent copy of the geostatistical object with it.

You can notice that the porosity values from the well logs are in percent. The IMEX simulator

requests the porosity values to be fractions. We can easily create the Porosity property by

rescaling the CMGL Temp Prop1 property in using a formula.

Page 98: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 98 -

Creating Porosity Formula

1. We need to define a formula for rescaling porosity values from the CMGL Temp Prop1

property which is porosity in percents. Select the Formula Manager… option from the Tools

menu. The Formula dialog will appear.

Figure 70: Formula Dialog

2. Name the new formula “Porosity – Fraction” in the edit field next to Formula Name. Click the

button “Add Independent Variables”. Then “Select a property as a source property” dialog

will pop up.

Figure 71: Selecting Source Property for Formula Specification

3. Select the property CMGLCustom_PoroSim and click OK to close.

Page 99: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 99 -

4. Back to the Formula dialog, select the X0 variable (alias for CMGLCustom_PoroSim) that was

just created by the previous step, then click the button “Insert selected into formula” and type in “ /

100” at the right of the X0 variable. This simple formula will divide CMGLCustom_PoroSim (alias

X0) by 100, thus rescaling the porosity values between 0-1.

Figure 72: Formula Specification for Porosity

5. Click OK to exit and click OK after reading the message window.

Page 100: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 100 -

Creating Porosity Property from Formula

We also need to create the Builder’s Porosity property before we can use it in an equation for the

Permeability.

1. Click the Specify Property button on the view tool bar. The General Property Specification

dialog will appear. Click the cell at the intersection of the row Whole Grid and Porosity

column. Select Formula from the context menu (right mouse button).

Figure 73: Specifying Porosity Property

The Property Specification dialog will appear. Select the Porosity – Fraction formula and Click OK

to close the dialog. Click OK again to close the General Property Specification dialog.

Figure 74: Selecting Formula for Porosity

Page 101: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 101 -

2. The Block/Corner Value Calculation dialog will appear. Click OK on the General Property

Specification dialog to calculate the Porosity property as a rescaled version of

CMGLCustom_PoroSim property.

Figure 75: Porosity Fraction in 2D Reservoir View

With this dataset, the permeability values can be estimated in combining two different sources of

information; the regression equation from a cross-plot Permeability-Porosity from cores and the

well test data for a limited number of wells. We are going to define a first estimate of the

permeability values in combining the porosity model and the regression formula, and then, we will

create a geostatistical object from the well test data. The geostatistical object will combine the

porosity-calculated permeability values and the well test data into a final permeability model.

Page 102: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 102 -

Creating Permeability Formula

1. Repeat the Creating Porosity Formula steps to create another formula that will calculate the

first (soft) permeability values from the Porosity property. Name the formula PermFromPor

and use the following equation 3000 * (X0+0.1)**3 / ((1-X0)**2) where X0 is an alias for the

Porosity property.

Figure 76: Creating Formula for Permeability I

2. Create a new Custom property with the suffix PermFromPor by placing the mouse on top of the

Array Properties and select Add New Custom Property... and click OK.

Now you will be able to see the new custom property on the Array Properties tree.

Page 103: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 103 -

3. Repeat the Creating Porosity Property from Formula steps for assigning the PermFromPor

formula with the Whole Grid CMGLCustom_PermFromPor. Calculate the

CMGLCustom_PermFromPor property. (Shown with a logarithmic scale below)

Figure 77: Calculated CMGL Temp Prop2 Property Now we are going to define the Builder’s Permeability I,J,K, from well test data and CMGLCustom_PermFromPor.

Populating Simulation Grid with Permeability Values

Geostatistical Objects

1. Open the dataset that was previously saved if not already open.

2. Open the Excel document WellTest.xls.

3. Select Geostatistics… under the Reservoir menu. This will bring up the Create Geostatistical

Objects dialog as shown below. By default, the dialog loads in the first geostatstistical object

in the list which is the PoroSim, the object defined for porosity. We need to create a new one

for the permeability values.

Page 104: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 104 -

Figure 78: Geostatistics Dialog with First Object

4. Click the right pointed arrow next to the Name pull-down list at the top of the dialog and select

New (default).

5. Give a meaningful name such as WellTestSim for this geostatistical object. We are going to

use this object for creating geostatistical simulations of the permeability. Click OK to accept

the name. The dialog is now active and can receive input data.

6. Select Permeability I in the Output Property pull-down list.

Importing Well Test Data

7. Click the Tools button and select Import well test permeabilities… option. The Import Well

Test Permeabilities dialog will come up. Copy and paste the well test data from the Excel

spreadsheet into the spreadsheet control of the Import Well Test Permeability dialog, and

select CMGLCustom_PermFromPor as property for individual layer weighting values as

shown below:

Page 105: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 105 -

Figure 79: Importing Well Test Information for Geostatistical Object

8. Click OK to close the dialog. This will import the well test data. For each well test, the values

will be distributed on each grid layer (at the well location) according to the spatial distribution

of permeability values from CMGLCustom_PermFromPor.

9. Now the permeability values are loaded into the spreadsheet of the Create Geostatistical

Objects dialog which should look like this (note: the values in the Value column might be

slightly different depending on your grid and the geostatistical simulation of

CMGLCustom_PermFromPoro):

Page 106: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 106 -

Figure 80: Geostatistics Dialog Defined for Permeability I

We still need to set the geostatistical method and its parameters before we can use this object.

Geostatistical Method

10. Select the Methods tab of the Create Geostatistical Objects.

11. Change the Calculation Method to Gaussian Geostatistical Simulation.

Page 107: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 107 -

Figure 81: Method Information for Geostatistics Dialog

3D Variogram Analysis

12. Select the Bi-Directional option from the pull-down list of the Horizontal Variogram Direction.

We want to explore if the variogram presents an anisotropy with the direction. Notice that

three Angle parameters are now showing. These angles are used to orient the axis of the

anisotropy ellipsoid if an anisotropy does exist.

FIGURE 57: Updating Method Information for Bi-Directional 3D Variogram

Page 108: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 108 -

13. Click the Click to match variogram button to display the variogram plot window.

Figure 82: Variogram Plot for Calibrated Well Test Data

The plot shows that the horizontal variogram looks similar in all directions (you can repeat in

changing the Principal Axis Azimuth Angle parameter). The nugget effect appears to be quite

high. Usually, the vertical variogram will give a better estimate of the nugget effect because the

data values are closer to each other along the wells than between wells. Currently, the vertical

variogram cannot be seen because its scale is much smaller than the horizontal variogram scale.

The vertical variogram is actually squeezed against the vertical axis of the plot. The horizontal

variograms and the data variance curve need to be deselected in the tree view before we can

properly visualize the vertical variogram (shown below).

Page 109: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 109 -

Figure 83: Vertical Variogram Plot for Calibrated Well Test Data

By zooming in on the vertical variogram, we can see if there is need to adjust the nugget effect.

To adjust the nugget effect, we need to reselect the Principal Axis component of the Horizontal

Variogram in the tree view. The following adjustment with no nugget effect and no anisotropy can

be obtained. In this particular example, the vertical variogram component is very useful to fit the

beginning of the variogram. The horizontal component is used to fit the variogram maximum level

and possible horizontal anisotropies.

Figure 84: Plots with Different Variogram Component Information Selected for Well Test Data

14. Close the variogram plot window and reselect the Omni-Directional option for the Horizontal

Variogram Direction as we have no indications for using horizontal anisotropies, Make sure

you re-match the variogram if needed.

Page 110: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 110 -

Figure 85: Omnidirectional Variogram Plot for Calibrated Well Test Data

At this stage, we can save the geostatistical objects, and. Now we should Run the simulation and

look at the results in case we need to modify some parameters.

Simulating Permeability

15. Click the Run button to actually create the Permeability I property. The results will be

automatically displayed in Builder’s main view when the calculations are finished. Set the

color scale to Logarithmic:

Figure 86: Permeability Property Simulated on the Simulator Grid

Page 111: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 111 -

Click OK to save the newly created geostatistical object and close the dialog. This Gaussian

Simulation geostatistical object will be used again in an automatic workflow. You can save the

dataset to keep a permanent copy of the geostatistical object within it.

Permeability J and Permeability K properties can easily be defined by specifications relative to

Permeability I.

16. Click the Specify Property button on the view tool bar. The General Property Specification

dialog will appear. Click the cell at the intersection of the row Whole Grid and Permeability J

column. Select EQUALSI from the context menu (right mouse button). The property

Specification dialog will appear. Click OK to accept the default and create Permeability J as

equal to Permeability I.

Figure 87: Specifying EQUALSI for Permeability J

17. Back to the General Property Specification dialog, click the cell at the intersection of the row Whole

Grid and Permeability K column. Select EQUALSI from the context menu (right mouse button). The

property Specification dialog will appear again. Select the multiplicative sign * from the Equals I pull-

down list. Change the multiplicative factor from 1 to 0.1 as shown below. Click OK to close the

dialog and create Permeability K as one tenth of Permeability I.

Page 112: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 112 -

Figure 88: Specifying EQUALSI for Permeability K

Now, the General Property Specification dialog should show like this:

Figure 89: General Property Specification Dialog with Permeability Specified

Click OK again to close and click OK on the next dialog to calculate the Permeability J and

Permeability K properties.

We still have few steps to do in order to make the dataset ready for the flow simulator.

Page 113: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 113 -

Initial Conditions and Well Constraints

In this section of the tutorial, we are going to set the simulator initial conditions and well operating

constraints. This will allow us to initialize the dataset for initial oil in place. To have a simulator

ready dataset, we still need to add more engineering data.

Reservoir Pressures and GOW Contacts

1. Select “Initialization Settings…” from the Initial Conditions menu. The Initial Conditions dialog

will appear. Keep the default Water-Oil-Gas system and enter 27600 kPa for Pressure, -

190m for Depth, -185m for Water-Oil contact and -220m for Gas-Oil contact.

Figure 90: Initial Conditions Settings

This will complete the Initial Conditions section.

Page 114: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 114 -

Figure 91: Reservoir View after Initial Conditions Specified

Well Constraints

Wells now need to be defined as producers and bottom hole pressure constraints needs to be

added.

1. Select “Well Events…” from the Well menu. The Well Events dialog will appear. Select

Producer for the type in the “ID & Type” tab for well 01-12.

Figure 92: Well Events Dialog with Little Information Defined

Page 115: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 115 -

2. Select the Constraints tab. If asked to apply changes, say YES to save the previous change.

3. On the Constraint tab, check off the Constraint definition check box at the top of the tab.

Select the Constraint pull down list and select OPERATE, give it a value of 5000 kPa (as

shown below).

Figure 93: Defining Well Constraint Information

4. Click on the well 01-12 in the list of wells on the left of the dialog, say YES to save the

changes. This will expand the events for this well as shown below. (If prompted, say yes to

save the previous change.)

Page 116: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 116 -

Figure 94: Well Events Tree View copy events using filter

5. Select the Producer and constraint event and right click WELL event for well 01-12 and select

Copy events using filters… from the context menu. The ‘Select well-date pairs to copy

event(s): WELL’ dialog will appear.

6. Click the Select button to select all the wells.

Page 117: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 117 -

Figure 95: Selecting Wells for Copying WELL Keyword

7. Select the 2.- Dates tab and click the Select button to select all dates

Figure 96: Selecting Date for Copying WELL Keyword

8. Click the Search & Add button to fill the right hand side of the dialog with wells.

Figure 97: Wells and Dates Selected for Copying Information To

Page 118: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 118 -

9. Click OK to close the dialog and go back to the Well Events dialog.. All the wells will have the

same constraints as shown below.

Figure 98: Updated Well Events Dialog after Information is Copied

10. Click OK to close the dialog.

11. So far we have only one date for the wells. We need to add at least one more date if we want

initialize the reservoir for the static properties. Select “Dates…” from the Well menu. The

Simulation Dates dialog will appear:

Page 119: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 119 -

Click the “Add a new date” icon to add a date. The date value is not very important for the

purpose of this tutorial, one day (1991-01-02) will be correct for initialization. Select the last date

as the STOP and click close to close the dialog. This will complete the Wells & Recurrent section.

Figure 99: Dataset after All Main Information has been Defined

We are still having a warning in the reservoir section due to the use of the defaults for Rock

compressibility. This will not prevent us from running, but if desired double click in Rock

Compressibility under the Reservoir section and use the following values in the window:

Page 120: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 120 -

We now have a simulator ready dataset which can be used for iterative or automated workflows.

You can save it to disk if you want. The dataset has now reached a state where it can be sent to

the flow simulator. It is important to remember that the porosity and permeability values have

been simulated by geostatistical methods and therefore represent just one possibility among an

infinite number of porosity and permeability models for the reservoir. Uncertainty about these

properties can be explored by running the geostatistical methods multiple times. We are now

going to create a script that will help us to automate this process.

Creating Workflows with Script

Scripts are used for automatic execution of basic Builder’s actions. The sequence in which the

actions are performed defines the workflow. The ordering of the actions in the script is important as

some actions may depend on the results generated or updated by previous actions. At the time of

writing this tutorial, the available basic actions are: Repeat for looping, Geostatistical Calculation for

estimation or simulation of any Builder’s property, Calculation from Specification for general

calculation of Builder’s properties with formulas, Save Dataset for saving the current states of

Builder’s properties involved in the script, and Simulator Initialization for retrieving initialization

reservoir values in using the current state of the dataset. Altogether, these actions provide for very

general and flexible workflows. They can be used to automatically generate many different datasets

useful for uncertainty analysis or for testing various scenarios.

Creating a Script

1. Load the last saved dataset if not already open in Builder.

2. Select the Scripting … option under the File menu. The Property Calculation Scripting dialog

will appear. It has a spreadsheet where each row corresponds to a script action. Rows can

be added as more actions are needed. They can also be removed or moved up and down in

using these buttons .

Page 121: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 121 -

Figure 100: Empty Scripting Dialog

3. Click the right pointed arrow button and select new, to create a new script. Give it a meaningful

name such as PorSim. The purpose of the script is to generate multiple datasets by changing the

porosity values, and the permeability values, using geostatistical simulations. We also want to

initialize each dataset with the simulator.

Now the dialog becomes active for the input of actions into the newly created empty script. We

want to create a loop and for each iteration, we will simulate the percent porosity values using our

previously created geostatistical object PoroSim, we will rescale the porosity values between 0-1

and simulate the I permeabilities, we will calculate the J,K permeability values using EQUALSI

assignment, we will save the dataset, and finally run the simulator for initialization. (It might be a

good idea to write the steps down on paper before actually creating the script.)

4. Select (right click) the first empty row of the Scripting dialog and select Repeat Action (loop)

from the context menu (right mouse button). This will create a Repeat block of actions in the

script. The block is initially empty.

5. Change the Values cell for the Repeat action from 1 to 3. This will create a loop with 3

iterations.

Page 122: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 122 -

Figure 101: Script with Repeat Action

6. Select row 2 and select Geostatistical Calculation from the context menu. A pull down list of

geostatistical objects will be created in the Values cell of the geostatistical action. Select the

PoroSim geostatistical object from the pull down list (remember that this PoroSim object was

created earlier in this tutorial). The CMGLCustom_PoroSim property name will be displayed

in the Results cell of the geostatistical action to indicate that this action creates or updates

that property.

Figure 102: Script with Repeat Action and Geostatistical Calculation

Page 123: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 123 -

7. We need to add more rows in the Repeat block before we can add more actions to it. You

can do that by selecting the last action of the Repeat block and using the button a

number of times. We need 1 more row for rescaling the porosity values, 1 more row for the

permeability from porosity calculation, 1 more row for adding the well test permeability, 1

more row for saving the dataset, and 1 last row to initialize the dataset with the simulator for

initial volume estimation at the end of the loop.

Figure 103: Script with Extra Rows Added

8. Select row 3 and select the Calculation from Specification action from the context menu. The

Block/Corner Value Calculation dialog will appear. Check off the Porosity property only and

click OK to close the dialog. You may have to uncheck CMGLCustom_PermFromPor and

click OK few times to close a message dialog about the dependency of

CMGLCustom_PermFromPor on Porosity.

Page 124: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 124 -

Figure 104: Specifying Porosity Calculation for Script

This will add the Porosity calculation which is defined as a Formula using the

CMGLCustom_PoroSim property. Porosity will appear in the Results cell of the Calculation from

Specification action indicating that the Porosity property will be created or updated by this action.

Figure 105: Script with Porosity Calculation

Page 125: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 125 -

After the porosity, we need to add the calculations for the permeability values.

9. Select row 4 and select the Calculation from Specification action from the context menu. The

Block/Corner Value Calculation dialog will appear. Check off the

CMGLCustom_PermFromPor property only and click OK to close the dialog. You may have

to uncheck Porosity and click OK few times to close a message dialog about the dependency

of Porosity.

This will add the CMGLCustom_PermFromPor calculation which is defined as a Formula using

the Porosity property. CMGLCustom_PermFromPor will appear in the Results cell of the

Calculation from Specification action indicating that the CMGLCustom_PermFromPor property

will be created or updated by this action.

Page 126: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 126 -

Now we need to add the Perm I. Perm J and Perm K which both depend on Perm I are not

calculated in Builder. Instead, their EQUALSI specifications are directly passed on to the

simulator. Therefore, we don’t need to include them in the script.

10. Select row 5 and select the Geostatistical Calculation action from the context menu. A pull

down list of geostatistical objects will be created in the Values cell of the geostatistical action.

Select the WellTestSim geostatistical object from the pull down list (remember that this

WellTestSim object was created earlier in this tutorial). The Permeability I property name will

be displayed in the Results cell of the geostatistical action to indicate that this action creates

or updates that property.

This will add the Permeability I calculation previously defined as a geostatistical object using the

calibrated well test data.

Figure 106: Script with Porosity and Permeability Calculations Specified

The next action of the loop is to save the current state of the dataset, which will have been

updated for the Porosity and the Permeability values by the precedent actions.

11. Select row 6 and select the Save As Dataset option from the context menu. The Save As

action dialog will appear.

Page 127: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 127 -

Figure 107: Saving Option in Scripting Dialog

This dialog is used to define the names along with titles for the datasets that will be generated by

the script. Macros are used to insert sequence number, script name, date, and dataset filename

in any of the Title1, Title2, or Title3 in the dataset. The macros are accessible by clicking the right

pointed arrow buttons at the right of the Title’s edit field. Click OK to close the dialog. This will

create a series of datasets with the same base name; each appended with a sequence number

starting with 0. From the above picture, the first dataset generated will be tutorial_0000.dat, the

second will be tutorial_0001.dat and so on.

Finally, the last action of the script is used to send the current dataset to the flow simulator for

initialization and initial volume estimations.

12. Select row 7 and select the Simulator Initialization option from the context menu. The

Simulator Initialization dialog will appear.

Figure 108: Simulator Initialization Dialog for Script

Page 128: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 128 -

This dialog is used to create an ASCII file with initial pore volume estimates for each datasets

generated by the script. The file can be automatically opened in Excel when the script is finished

executing. The Timer option is used to set a number of milliseconds for cycle time when trying to

read the simulator outputs. Click OK to close, the Results value of the Simulator Initialization

action (script row 7) indicates where the Excel compatible file will be saved.

The script is now complete. The scripting dialog should look like this:

Figure 109: Final Script

13. You can run the script by clicking the Run Script button. You can also save it by clicking the

OK button. This script will be saved with the dataset on a Save or a Save As selection from

the File menu.

Page 129: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 129 -

Figure 110: Script with Output Messages from being Run

Running the script generates 3 versions of the dataset. The last dataset created by the script will

become the Builder’s current dataset showing the last property that was calculated by the script.

Figure 111: Reservoir View for Script Generated Dataset

Page 130: Advanced Builder and Results -Builder Tutorial (2013.10).pdf

Advanced Builder Course

- 130 -

The Excel compatible file will be automatically opened showing the initial volumes as estimated

by the simulator.

Figure 112: Excel Worksheet Created by Script