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.
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.
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
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
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.
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
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.
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
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.
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
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
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
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
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
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
Advanced Builder Course
- 16 -
Figure 18: Step 4 of importing production/injection data
Figure 19: Step 5 of importing production/injection data
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
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).
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.
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.
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.
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).
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
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.
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.
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.
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.
Advanced Builder Course
- 28 -
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
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.
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
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.
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
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.
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
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.
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.
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
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).
Advanced Builder Course
- 40 -
Property calculation window.
Grid Display in 3D.
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
Advanced Builder Course
- 42 -
7. Click OK.
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.
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:
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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:
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.
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?
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
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.
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.
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.
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
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
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
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.
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:
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.
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
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
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
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
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).
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):
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).
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
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
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
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
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
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.
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.
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
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:
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.
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.
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:
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.
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.
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
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.
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
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.
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
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
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.
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.
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.
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
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.
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.
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.
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:
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):
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.
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
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).
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.
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
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.
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.
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.
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
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.)
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.
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
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:
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:
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 .
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.
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
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.
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
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.
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.
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
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.
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
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