0% found this document useful (0 votes)
15 views74 pages

Geomodelling - Tutorial (2020.10)

Uploaded by

Tamires Soares
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views74 pages

Geomodelling - Tutorial (2020.10)

Uploaded by

Tamires Soares
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 74

Geomodelling for

Reservoir Engineers
Builder V.2020.10

Tutorial
Geomodelling for Reservoir Engineers

This tutorial will provide steps for building a simple reservoir 3D model using the features available
in Builder. It will also show how to use the geostatistical tools for populating the 3D grid with
porosity and permeability values. The tutorial aims at making the user more familiar with the
options available in Builder for the purpose of building and editing geological models.

A Black-Oil IMEX dataset with metric units well be used for this tutorial. Predefined fluid
components and rock-fluid data have been created as a starting point for the model build. For
interested users, the steps of loading the Rock Fluid and PVT data can be found in the Introduction
to CMGs Modelling Workflows material and will not be repeated in this class.

Loading Basic Dataset in Builder


1. In Launcher drag and drop the “Tutorial_Start.dat” file from the Required Data folder onto Builder.

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

1
Geomodelling – Builder Tutorial
Figure 1: Importing Well Trajectories

2. Select the Table Format for the file type and navigate to find “All_Wells.wdb”. The units will
automatically be set to “m”

3. Click Next twice and the Finish button to close the dialog

Figure 2: Well Trajectories in 3D view

Importing Top Data


1. Click on Wells & Recurrent | Well Trajectories | Import Formation Top File

2
Geomodelling – Builder Tutorial
Figure 3: Importing Formation Top Data

2. Select the file “TopTable.tdb”. Click OK to close the dialog

Note: 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 in the
Properties menu.

3. Right click and choose Properties from the list


4. Navigate to Wells | Well Trajectory Tops and adjust the disk size

Figure 4: Changing Well Tops Size

3
Geomodelling – Builder Tutorial
5. Click OK to close the Properties menu. The disks will appear bigger as shown below

Figure 5: Well Trajectories and Tops in 3D View

Creating a Top Map


1. Navigate to File | Create Map File to bring up the Create Map dialog

Figure 6: Creating a Top Map

4
Geomodelling – Builder Tutorial
1. Click on Tools | Import Tops from Trajectories

Figure 7: Importing Tops from Trajectories

2. The top file opened previously will already be selected. Click OK to close the window.

3. Browse to the desired save location using the button and change the name of the file to
“TOP_Map.msh”

Figure 8: Create Map Dialog with Populated Values

5
Geomodelling – Builder Tutorial
4. Select the Methods tab and change the Calculation method to Ordinary Kriging (OK) Estimation

Figure 9: Create Map Dialog with Methods Tab and Ordinary Kriging

5. Make sure the Assign data to cells option is checked

Checking for Anisotropies


Note: Variogram calculations are done by pairing 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 points 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.

6
Geomodelling – Builder Tutorial
When investigating anisotropy a control parameter for the Principal Axis Azimuth Angle and
a second control parameter to edit the variogram (in a perpendicular direction) will be added
to the options in Builder. 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.

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

Figure 10: Selecting Bi-Directional Variogram

2. Click on the Click to match variogram button which will compute the variogram for the given directions
and find a best match with the variogram models available in Builder

7
Geomodelling – Builder Tutorial
Figure 11: Variogram for Top Map

Note: The plot shows four variogram curves; actual empirical variogram curves computed for each
direction (black lines) and the variogram model (blue lines) automatically fitted to the
empirical variogram curves. The empirical variogram data points are computed for different
lag distances which are marked with green or red small squares. The green data points
identify values that were calculated with at least 30 pairs of data points. These data 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 less
reliable. Attention should be focused on the green points when matching the model curves
to the empirical data points.

The horizontal gray line 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 continue increasing above the data variance line. Very strong
trends should be removed before the use of interpolation methods. However, trends are
usually 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.
In such cases, the variogram function needs to be matched only for distances smaller or
equal to the search window.

8
Geomodelling – Builder Tutorial
Editing Variogram Data
1. Close the variogram plot window and click on the Click to edit variogram data button for the Horizontal
Variogram: Angle = 0.

Figure 12: Defining Variogram Data

Note: The dialog is divided into three sections


a. Calculation of the empirical variogram data points at various lag distances
b. Search parameters (used only at the interpolation time)
c. Variogram Model fitting.

2. Select Gaussian under Variogram type and click OK to close the window
3. Click the Click to match variogram button to redisplay the variogram plot
4. With the new Variogram type, adjust the model by dragging the handles (blue curve) to achieve the
best possible match. A match may look similar to the plot below:

9
Geomodelling – Builder Tutorial
Figure 13: Matching Variogram for Tops

Note: The variogram can be considered matched. Notice the variogram matches the actual curves
for a lag distance up to about 2500m. This information will be considered again when defining
a search window for the data interpolation.

5. Close the variogram plot.

Defining Search Window


1. Click on the Click to edit variogram data button for the Horizontal Variogram: Angle=0
2. Uncheck the Auto option for the Search Radius and input a value of 2500. This is the limit of validity
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

10
Geomodelling – Builder Tutorial
Figure 14: Editing the Horizontal Variogram Data

Note: WARNING: Notice that the variogram range (4691 m; values may vary depending on
variogram fit) is fairly large in comparison to the distances between the wells. This will likely
create issues with the Gaussian variogram type. It is well documented that the Gaussian
Variogram model 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. It should also be noted that only the Gaussian variogram
model requires such attention

3. Change the Nugget to 2


4. Click OK to close the variogram data dialog and open the Horizontal Variogram: Angle=90 data window
and change the Search Radius for the second horizontal variogram direction to be 2500 m.

Kriging the Top Surface


1. Click the Save File button to perform the kriging interpolation and save the results as a mesh file. The
kriged map will be displayed similar to the image below:

11
Geomodelling – Builder Tutorial
Figure 15: Top Map for Reservoir

Note: The map has been automatically meshed by using the default parameters in the Mesh tab of
the Create Map window. These parameters can be changed to refine or coarsen the
meshing. The interpolated map should cover the same area as the simulator grid which will
be created.

Building the Simulation Grid

Grid Definition
1. If no maps are currently displayed in Builder’s main view, navigate to File | Open Map File and select
the top map created in the previous steps - this helps to correctly position the simulation grid
2. Navigate to Reservoir | Create Grid | Orthogonal Corner Point to display the grid creation window
3. Define the grid with the values shown below:

12
Geomodelling – Builder Tutorial
Figure 16: Orthogonal Corner Point Grid Definition

Note: For an exact match with the previous maps, the grid definition can be found in the header of
the previously computed mesh maps if viewed in a text editor.

4. Click OK to construct a grid

13
Geomodelling – Builder Tutorial
Figure 17: Top Map with Grid Defined

5. Optional Step: The grid can be shifted (hold Shift + left mouse button) or rotated (hold Ctrl + left mouse
button) to align the grid with the displayed map

6. Click on the Probe button to leave the editing grid mode

Corner Point Calculation

1. Click the Specify Property button on the View Control tool bar
2. In Layer 1 under the Grid Top property, right click and select Geological Map to display the Property
Selection window

3. Click the Values in file1 button and navigate and select the “Top_Map.msh” file

14
Geomodelling – Builder Tutorial
Figure 18: Selecting Map Type and File

4. Click OK to close the dialog

Note: A predefined thickness map of the reservoir has been defined. This will be assigned to the
grid and subdivided by the number of vertical layers

5. Select Layer 1 of the Grid Thickness property, right click and select Geological Map

6. Click the button and navigate to the Required Data folder and select the
Thick_Map.msh
7. Change the edit box to the right of times from 1 to 0.05. This is the multiplier used to split the thickness
over all the 20 layers, each layer having one twentieth of the total thickness

15
Geomodelling – Builder Tutorial
Figure 19: 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 20 as shown
below:

Figure 20: Grid Thickness Definition

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

16
Geomodelling – Builder Tutorial
Figure 21: 3D View of the Simulator Grid and Thickness Property

11. Navigate to File | Save As and save the dataset as Geomodel1.dat

Populating Simulation Grid with Porosity Values

Geostatistical Objects
1. Click on Reservoir | Geostatistics to bring up the geostatistics dialog

2. Click the button select New (default)


3. Input the name PoroSim for this geostatistical object
4. Click OK to accept the name
5. Select Add New Custom Property in the Output Property pull-down list

17
Geomodelling – Builder Tutorial
Figure 22: Geostatistics Dialog
6. Add the suffix PoroSim for the custom property name

Note: The porosity values cannot be directly loaded into the Porosity property because the values
are percentages instead of fractions. A formula will be used later to adjust the values

7. Click the Tools button and select Import logs or tables of measured depth value option

18
Geomodelling – Builder Tutorial
Figure 23: Importing Well and Log Information for Geostatistics

8. Click to open a new dialog

9. Click and navigate to the Required Data folder and select all the available LAS files

19
Geomodelling – Builder Tutorial
Figure 24: Imported LAS Information

10. Click OK to import all the logs and back to the Select Wells and Logs dialog

11. Click the button

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

Figure 25: Advanced Well Selection dialog

20
Geomodelling – Builder Tutorial
13. 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 26: Selecting Specific Log

Geostatistical Method
1. Select the Methods tab
2. Change the Calculation Method to Gaussian Geostatistical Simulation

21
Geomodelling – Builder Tutorial
Figure 27: Selecting Gaussian Geostatistical Simulation

Note: Similar to Ordinary Kriging, Gaussian Simulation also computes an estimated value as a
weighted average of the neighboring 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. The simulated values will reproduce the data histogram
and the variogram model used. The simulated values will also display a more heterogeneous
pattern as oppose to an overly smooth pattern observed 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

22
Geomodelling – Builder Tutorial
3D Variogram Analysis
1. To investigate anisotropy, select the Bi-Directional option from the pull-down list of the Horizontal
Variogram Direction
2. Click the Click to match variogram button

Figure 28: Variogram Plot for 3D Geostatistics Object

Note: The plot shows that the horizontal variogram looks similar in all directions (can verify further
by changing the Principal Axis Azimuth Angle). 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.

3. Deselect the horizontal variograms and the Data Variance in the tree view of the window

23
Geomodelling – Builder Tutorial
Figure 29: Vertical Variogram Plot

Note: By zooming in on the vertical variogram, it appears the nugget effect should be smaller. To
adjust the nugget effect dynamically from the curve, the horizontal variogram needs to be re-
selected. 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.

4. Enable the horizontal variograms and adjust the nugget to 0 using the handles on the model

24
Geomodelling – Builder Tutorial
Figure 30: Variogram with Adjusted Nugget

Note: It can be seen that the automated model is most likely Gaussian model is most likely not the
best fit for the empirical data. This should be adjusted.

5. Close the variogram window and change the Horizontal Variogram Direction back to Omni-Direction
as there is no indication of anisotropy
6. Click
7. Change the Variogram Type to Spherical

25
Geomodelling – Builder Tutorial
Figure 31: Selecting Spherical Model

8. Return to the Variogram plot and match the Horizontal and Vertical models

26
Geomodelling – Builder Tutorial
Figure 43: Vertical and Horizontal Variogram Plots

9. Close the Variogram window

Simulating Porosity

10. Click the 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 32: Porosity Property Simulated on the Simulator Grid

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

27
Geomodelling – Builder Tutorial
12. Save the dataset

Creating Porosity Formula


Note: Since the porosity values from well logs are in percent, these will need to be converted to
fractions in order to assign the property to the grid. This can be done using the Formula
Manager in Builder.

1. Navigate to Tools | Formula Manager

Figure 33: Formula Dialog

2. Click and change the Formula Name to “Porosity – Fraction” under Formula Name
3. Click the Add Independent Variables button and select the CMGLCustom_PoroSim property

28
Geomodelling – Builder Tutorial
Figure 34: Selecting Source Property for Formula Specification

4. Click OK to close the window


5. Highlight the X0 variable under Independent Variables and click the Insert Selected into Formula button
6. Type in the formula to divide the porosity by a value of 100

Figure 35: Formula Specification for Porosity

7. Click OK to exit and click YES and OK to the messages that appear

29
Geomodelling – Builder Tutorial
Creating Porosity Property from Formula
Note: If a correlation between Porosity and Permeability is determined, this can also be populated
in the model using formulas. However, the Porosity values need to first be assigned to the
grid blocks to use the equation for Permeability.

8. Click the Specify Property button on the view tool bar


9. Navigate to the Porosity property and right click on the cell for Whole Grid and select Formula

Figure 36: Specifying Porosity Property

10. Click the Formula button and select the Porosity – Fraction formula
11. Click OK twice to close the Formula Manager and Property Specification windows and to close the
dialog.

30
Geomodelling – Builder Tutorial
Figure 37: Selecting Formula for Porosity

12. Click OK again to close the General Property and one more time to calculate the Porosity property as
a rescaled version of CMGLCustom_PoroSim property

Figure 38: Porosity Fraction in 2D Reservoir View

31
Geomodelling – Builder Tutorial
Note: With this dataset, the permeability values can be estimated in combining two different sources
of information; the regression equation from a Permeability-Porosity cross-plot from cores
and the well test data for a limited number of wells. Cross-plot equation will be added in the
following steps to estimate permeability. In the Bonus section of this tutorial incorporation of
well test data to the estimated permeability for the cross-plot will be discussed.

13. Save the dataset

Creating Permeability Formula


1. Navigate to Tools | Formula Manager and click the New button to create a new formula
2. Name the formula as PermFromPoro
3. Add Porosity as the independent variable and assign the following equation:
a. 3000 * (X0+0.1)**3 / ((1-X0)**2)
b. Where X0 represents the Porosity property

Figure 39: Creating Formula for Permeability I

4. Click OK and exit the Formula Manager

32
Geomodelling – Builder Tutorial
Note: The formula created will be applied to the Permeability property of the reservoir. If the plan
is to complete the dataset using the steps outlined in the Bonus section, please create a
custom property (CMGLCustom_PermFromPor) at this point and assign the Permeability
formula. The following steps assume the well test data for permeability will not be
incorporated.

5. Click on Specify Property and select Add New Custom Property in the top drop down
6. Add the name PermFromPoro
7. Under Whole Grid right click and select Formula
8. Click the Formula button and select PermFromPoro
9. Click OK twice to return to the Specify Property window

10. Click OK twice to assign the Permeability to the custom property in the grid

Figure 40: Calculated Permeability I Displayed on Log Scale

11. Save the dataset

33
Geomodelling – Builder Tutorial
Completing the Dataset

Defining Well Perforations


1. Navigate to Wells & Recurrent | Well Trajectories | Trajectories Perforations Intervals

Figure 41: Trajectory Perforation Intervals Dialog


2. Click the Quick Perf button

34
Geomodelling – Builder Tutorial
Figure 42: Quick Perforation Dialog
3. Click OK to close and accept the defaults. All grid layers will be perforated for all wells.

35
Geomodelling – Builder Tutorial
Figure 43: 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.

Figure 44: 3D View of Trajectories after Perforations

Note: At this step it is possible to associate log data such as porosity with the wells. This would be
a good time to save the dataset. The Permeability in I,J,K directions will be assigned in
Builder from well test data and CMGLCustom_PermFromPor.

Populating Simulation Grid with Permeability Values

Geostatistical Objects
5. Open the Excel document WellTest.xls
6. Navigate to Reservoir | Geostatistics to display up the Create Geostatistical Objects dialog

7. Click the and select New (default)


8. Input a meaningful name such as WellTestSim and click OK to accept the name
9. Select Permeability I in the Output Property pull-down list

36
Geomodelling – Builder Tutorial
Figure 45: Geostatistics Dialog

Importing Well Test Data

1. Click the button and select Import well test permeabilities


2. Copy and paste the well test data from the Excel spreadsheet into the window and select
CMGLCustom_PermFromPoro as Property for individual layer weighting values:

37
Geomodelling – Builder Tutorial
Figure 46: Importing Well Test Information for Geostatistical Object

3. Click OK to close the dialog

Note: 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_PermFromPoro.

38
Geomodelling – Builder Tutorial
Figure 47: Geostatistics Dialog Defined for Permeability I

Geostatistical Method
1. Go to the Methods tab
2. Change the Calculation Method to Gaussian Geostatistical Simulation

3D Variogram Analysis
Note: As seen in previous examples the presence of anisotropy in the data can be explored by
selecting Bi-Directional in the Horizontal Variogram Direction. This case does not seem to
have anisotropy and the omni-direction will be selected.

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

39
Geomodelling – Builder Tutorial
Figure 58: Variogram Plot for Calibrated Well Test Data

Note: 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. The Nugget value should be adjusted.

4. Match both the vertical and horizontal curve

Figure 60: Omnidirectional Variogram Plot for Calibrated Well Test Data

40
Geomodelling – Builder Tutorial
Simulating Permeability
1. 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 48: Permeability Property Simulated on the Simulator Grid

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

Note. 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.

3. Click the Specify Property button on the view tool bar


4. Under Whole Grid and Permeability J right click and select EQUALSI from the context menu
5. Click OK to accept the default and create Permeability J as equal to Permeability I.
6. Repeat the process for Permeability K, but this time change “equal” to “*” and assign a value of 0.1
7. Click OK to close the dialog and set Permeability K as one tenth of Permeability I

41
Geomodelling – Builder Tutorial
Figure 49: General Property Specification Dialog with Permeability Specified

8. Click OK twice to calculate the Permeability J and Permeability K properties

Initial Conditions and Well Constraints


Note: 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.

42
Geomodelling – Builder Tutorial
Figure 50: Initial Conditions Settings

This will complete the Initial Conditions section.

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.

43
Geomodelling – Builder Tutorial
Figure 51: Well Events Dialog with Little Information Defined

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).

44
Geomodelling – Builder Tutorial
Figure 52: 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.)

45
Geomodelling – Builder Tutorial
Figure 70: 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.

Figure 53: Selecting Wells for Copying WELL Keyword

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

46
Geomodelling – Builder Tutorial
Figure 54: Selecting Date for Copying WELL Keyword

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

Figure 55: Wells and Dates Selected for Copying Information

47
Geomodelling – Builder Tutorial
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 56: 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:

48
Geomodelling – Builder Tutorial
Figure 57: Adding More Dates in Simulation Dates Dialog

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.

Note: 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:

Figure 58: Defining Rock Compressibility

49
Geomodelling – Builder Tutorial
Note: 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


Note: 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

50
Geomodelling – Builder Tutorial
Figure 59: 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.

Note: 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.)

51
Geomodelling – Builder Tutorial
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.

Figure 60: 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.

52
Geomodelling – Builder Tutorial
Figure 61: Script with Repeat Action and Geostatistical Calculation

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.

53
Geomodelling – Builder Tutorial
Figure 62: 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.

54
Geomodelling – Builder Tutorial
Figure 63: Specifying Porosity Calculation for Script

Note: 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.

55
Geomodelling – Builder Tutorial
Figure 64: Script with Porosity Calculation

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.

56
Geomodelling – Builder Tutorial
Figure 84: Specifying Permeability Calculation from Porosity

Note: 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.

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.

57
Geomodelling – Builder Tutorial
Figure 65: 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.

Figure 66: Saving Option in Scripting Dialog

58
Geomodelling – Builder Tutorial
Note: 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 67: Simulator Initialization Dialog for Script

Note: 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:

59
Geomodelling – Builder Tutorial
Figure 68: 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.

60
Geomodelling – Builder Tutorial
Figure 69: Script with Output Messages and Progress Bar

Note: 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.

61
Geomodelling – Builder Tutorial
Figure 70: Reservoir View for Script Generated Dataset

The Excel compatible file will be automatically opened showing the initial volumes as estimated by the
simulator.

Figure 71: Excel Worksheet Created by Script

62
Geomodelling – Builder Tutorial
Grid Up-Layering
Note: 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
should be able to run faster as there are fewer number of grid blocks; however, some vertical
resolution will be lost. In the current exercise the number of K layers will be reduced from 20
to 10. It is always good practice to compare the original and up-layered model results.

1. Open the original dataset in Builder

2. Click the Edit Grid button on the modes tool bar and OK to the message
3. Navigate to Reservoir | Edit Grid | Combine Layers
4. In the drop down menu select PERMK/POROSITY as the Guide Property for Grouping

Figure 72: Combining Layers Window

5. In the Divide Selection select Into Evenly Spaced Layers and click the Apply button

6. In the Combine Layers Dialog change the Lone Unit drop down from 3 to 10

63
Geomodelling – Builder Tutorial
Figure 73: Divided Evenly Dialog

7. Click Accept and observe the Mean, Std, and Relative Residual for the current combination
8. In the Divide Selection select Using Optimization Algorithm and click the Apply button
9. Highlight down to Layers 10 and click Accept and observe the combined layers and Residual

64
Geomodelling – Builder Tutorial
Figure 74: Optimization Algorithm Dialog

10. Choose the combination preferred and click Next

Note: For the purpose of this tutorial the Optimized Algorithm was used. Both scenarios could be
tested and the resulting models should be run and compared to the fine scale model for
validation.

11. Notice the default averaging routines for different grid properties and ensure that Arithmetic is selected
as the Average Type for CMGLCustom_PoroSim (will transfer to Porosity through the formula)

12. Click Finish to up-layer the model

13. A message may appear relating small porosity values in certain blocks. These blocks should be
investigated as they may impact simulation run time. Input a valid pore volume cut-off should alleviate
the issue. Click OK on the message

14. Save the dataset as “Geomodel2_Uplayering.dat”

Note: Well trajectories in this dataset should be updated for intersection with grid blocks anytime
there is a grid change (refinements, splitting combining layers, and submodel extraction).

65
Geomodelling – Builder Tutorial
15. Navigate to Well | Well Trajectories | Recalculate Intersections with Grid which will recalculate
block entries and exits for all trajectories.
16. Save the dataset

Note: It is always good practice to compare results before and after upscaling. Histograms of
property distributions could be compared before and after upscaling to verify the upscaled
model. If the dataset is complete, both models could be run in a flow simulator to compare
results and again verify the upscale method.

Figure 75: Original Porosity Distribution IK-2D X-Section

Figure 76: Upscaled Porosity Distribution IK-2D X-Section

66
Geomodelling – Builder Tutorial
Bonus Exercise: How the Thickness Map was Determined

Building the Reservoir Thickness


Note: 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).

67
Geomodelling – Builder Tutorial
Figure 77: Inputting values for thickness map

Kriging Method and Variogram Modelling


6. Select the Methods tab, all the selections used to build the Top Map should be selected.
7. Keep the Ordinary Kriging (OK) Estimation option selected.
8. Change the horizontal Variogram direction to Omni-Directional
9. Click on "Click to edit variogram data and reset all the variogram parameters to Auto.
10. Click on the Click to match variogram button. The following variogram plot will appear (assuming all
variogram parameters were reset to Auto):

68
Geomodelling – Builder Tutorial
Figure 78: Variogram Plot for grid thickness
Note: 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
11. 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).

69
Geomodelling – Builder Tutorial
Figure 79: Editing Horizontal Variogram Data for Thickness Map

12. Click OK to close the variogram data dialog and click the Click to match variogram button to redisplay
the variogram plot.
13. 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.
14. Make other adjustments to the curve until the fit is deemed acceptable like in the picture below:

Figure 80: Variogram Plot for Thickness Data

70
Geomodelling – Builder Tutorial
Note: 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.
15. 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 81: Editing search radius for thickness map

16. Click the OK button to close the Variogram Data dialog. We are now ready to compute the thickness
map.

Kriging the Thickness Surface


17. 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 Builder main view.
However you also will see the Top map in the view, so close the top map by going to the properties

71
Geomodelling – Builder Tutorial
window (click on the top icon ), select the maps option and uncheck the top
map. Click OK

72
Geomodelling – Builder Tutorial
Figure 82: Map for Reservoir Thickness

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

73
Geomodelling – Builder Tutorial

You might also like