Professional Documents
Culture Documents
1. Introduction
This example is an introduction to the basic features of Rubis. The exercise is by no means intended to
reproduce a realistic scenario. It is assumed that the user has installed the Kappa Generation5 Workstation to
follow this tutorial. An isothermal three-phase model, comprising a water injector and a producer, will be built
and simulated.
Before starting this session, the user is expected to have installed KAPPA-Workstation and started the NUM
(Rubis) module. The tutorial will use the six files (shown below) located in the Examples folder in the Installation
directory. Intermediate saved files are also available in the same location, allowing the user to start from a
specific point in the tutorial. They are named ‘NUMEX01_chapter_xx.kr5’, where xx refers to the tutorial chapter
from which the user may start using the file.
Rubis starts (below, left) and brings the user to the ‘File’ page. The active option is ‘New and recent’ and a
‘Blank’ icon can be seen towards the top left of the screen (below, right).
- Step 1: initialization of the main document options: reference time and location, general information,
units and general comments. Change the Reference time to 20-Feb-1992 and click .
- Step 2: Define PVT for the first run and control the level of complexity in the numerical model. Since
Rubis numerical models are always NL, ‘Use real PVT’ is always checked (below, right) and PVT definition
is required.
To define PVT for the first run, click on and define the fluid type as ‘Saturated oil’ and ‘Water’. Keep the
other PVT parameters as default (below). Click on to accept the PVT definition, and then click on
.
The document is only in the active computer memory and it is named ‘Untitled1’. Save it and call it ‘NUM
Tutorial 1’ using the Ctrl+S shortcut or select ‘Save’ in the File menu.
Click on the ‘Image’, , icon on the top ribbon to load ‘NUMEX01_FieldMap.jpg’ which is a 2D
representation of the reservoir.
The next step is to define the map reference and scale. It is recommended this be done before importing any
spatial data. To redefine the reference point (0,0), click on the ‘Local X/Y’, , icon in the ribbon at the top.
Make sure that the radio button ‘Change reference point’ is activated in the consequent dialog (below, left).
Click on the ‘black cross’ in the image to define this point as reference, which triggers an update of the X and
Y values displayed in the dialog. Validate the changes by clicking on OK.
Next, click on the ‘Contour’, , icon in the ribbon at the top. Starting anywhere on the contour indicated by
the field image, proceed around the reservoir by moving the cursor and clicking until the polygon of the
overlaid trace is complete. Finish with a double-click.
The sealing faults in the image are to be created next. Click on the ‘Fault’, , icon in the map ribbon, and
draw the two inner sealing faults symbolized by thick black lines on the reservoir bitmap. To connect a fault
node to a contour node, move the cursor close to the contour node till it turns green. A left click in this state
connects the fault node to the green contour node. Similar to the contour, finish with a double-click.
At this stage the image can be hidden. To do so, click on the ‘Show’, , icon, and untick the ‘Images’ node
in the ‘Display settings’ dialog (below, left) before validating with OK. We will display the image later when
creating wells.
To complete the definition of the reservoir geometry, the number of layers as well as the individual layer
horizon and thickness needs to be defined.
Click on the ‘Geometry’, , icon (in the control panel on the left or in the ribbon at the top) to open the
‘Geometry definition’ dialog. In this dialog, set the number of layers to 3 and rename (by double clicking on
the cell displaying the layer name) Layer #1 to ‘Sand’, Layer #2 to ‘Shale’ and the bottom layer (Layer #3) to
‘Bottom’ as illustrated below. To see a quick preview of the resulting grid, click on .
Different ways to define the layer geometry are offered in the ‘Geometry input’ drop down list. The default,
‘1-top + n-thickness’ will be used for this session.
This action automatically opens the spatial data dialog. In this dialog, create a new dataset by clicking
on and rename it to ‘Top Horizon’. Click on and in the consequent dialog, click on the icon to load
‘NUMEX01_TopHorizon.txt’ from the examples directory. This file contains tabulated data for the top horizon
of the reservoir in a {x,y, top_depth} format, in ft. Make sure that the columns format type and the units are
defined correctly (below, left).
After the data is loaded, they are displayed in the ‘Spatial data’ dialog as a table and spatial distribution of
the points displayed on the Map (above, right). Click on to validate and return to the ‘Geometry
definition’ dialog.
Next, set the Sand layer thickness definition to dataset and create a new dataset by clicking
on . Instead of loading the data from a file, thickness points will be interactively defined on the map. Enter
a value of 50ft in the ‘New value:’ field in the dialog, click on and click in a few locations in the south-west
corner of the map to assign a thickness of 50ft there. Repeat the process to define a thickness of 40ft in the
north-east and a maximum thickness of 70ft in the center, as displayed below. Call the dataset ‘Sand
Thickness’.
The new dataset is of type ‘thickness' and can also be assigned to any other layer.
Finally, change the shale layer thickness to 1 ft before validating all changes with OK:
Note that the numbers being displayed in the Value column of the table for datasets are a simple arithmetic
average of all points in the dataset. As a result, the same numbers for the Sand–top and Shale–thickness
should result as shown in the image above, whereas the value for the Sand-thickness will depend on the
number of points picked to define the thickness.
To define/edit the Reservoir properties, click on the ‘Properties’, , icon in the top ribbon or the control
panel on the left. By default, the entire reservoir carries the same petrophysical properties, initial state and
KrPc curves, as illustrated by a unique property set called ‘Default’.
The panels on the right define the properties/parameters/relationship curves for each property set.
A property set is a combination of petrophysical properties (k, phi, NTG etc.), KrPc curves, Initial state,
Unconsolidation relationship and Desorption isotherm. It is possible to define different property sets to
different layers or regions in the reservoir. In this tutorial, specific petrophysical properties for each layer will
be defined, but the KrPc curves and initial state will be unique to the reservoir. To achieve this, first change
the reservoir topology to ‘Layered’:
Right click on the cell labelled ‘Default’ for the ‘Shale’ layer and select ‘New’ from the list (inset below). In the
‘Property set definition’ panel on the right, change the name of the newly created property set from ‘PS #1’
to ‘Shale rock’.
To edit the default property set, select it in the list on the left. In the ‘Property set definition’ panel on the
right, change the type for ‘Permeability’ from ‘Constant’ to ‘Data Set…’. In the spatial data dialog, load
NUMEX01_DefaultPermeability.txt, located in the Examples directory. Call this dataset ‘Default k’. Repeat this
operation for porosity in the default property set - its values are stored in NUMEX01_DefaultPorosity.txt and
call the dataset ‘Default phi’ (bottom, left).
To finish, select the ‘Shale rock’ property set and change its permeability to 0.001 mD, its porosity to 0.05 and
its lower leakage factor (modeling a reduction of the layer to layer connection) to 0.01 (above, right). Keep
the parameters values for the ‘Sand rock’ property set at default.
Specific petrophysical properties have been defined for the ‘Sand’ and ‘Shale’ layers. The next step is to input
a unique description of the initial state and KrPc curves for the whole reservoir, although these properties
could be defined for each property set.
To edit the unique initial state, select the ‘Default’ property set in the list on the left and click on in the
‘Property set definition’ panel. In the following dialog, set a reference pressure of 5000 psia at 6000 ft,
change the Gas-oil mixture definition type to ‘Gas-oil contact’ and set the GOC at 5500 ft and a FWL at 6080
ft as shown below, left.
Click to accept the changes and close the ‘Initial state’ dialog. As a result of the initial state definition,
the bubble point pressure is modified, for same family of Black oil curves, to ensure Pb = P at GOC.
Finally, click on to access the relative permeability curves and capillary pressures. It is possible to define
KrPc curves using in-built correlations or load the points from an external file using the ‘Load…’ button at the
bottom left. For this session, we will use the default curves. Just check ‘No extrapolation’ at the bottom left of
the dialog (shown in the image above, right) and validate the definition with OK.
By default, the well is fully penetrating the three layers. Activate the ‘Edit perforation’ option by clicking on
the icon above the cross-section view, then click on the perforation nodes and shift them manually in
order to make the well penetrating through the top layer only (to snap the perforation interval to the top and
the bottom of the layer right-click on the perforation while the Edit mode is active). Change the well name to
P01 (below, left).
To define a well intake model for P01, check the ‘Define intake’ checkbox at the bottom-left corner of the
‘Well info’ dialog. A well intake definition dialog pops up (above, right). It is possible to define the intake
using a range of in-built empirical and mechanistic flow correlations or to load external lift curves in Eclipse™
format. A time dependent intake may also be set up to model changing wellbore conditions with time for
example. For this session, keep the default setup and validate with OK.
The ‘Intake conversion parameters’ section appears at the end of the ‘Well parameters’ table on the left. Set
the intake use to ‘only above reservoir’ in the drop-down list:
In practice, this setup implies that P01 will be produced at a constant surface pressure of 200 psia unless the
total bottomhole rate goes above 10000 B/D, in which case the production will switch to a constant rate
production fixed at the latter value (of 10000 B/D).
Multiple production (or injection) sequences can be defined using the ‘New’ button in the ‘Editing schedule
steps’ dialog. The drop down list at the bottom can be used to toggle through these sequences. For this
session, a single sequence would suffice.
Conditional constraints may be defined for the well based on Water Cut or GOR. This will not be done for this
session. Click on to accept the changes and close the well ‘P01’ dialog.
The producer well, P01, is now defined. The injector well, I02, will be created next.
Click again on ‘Well’, , icon and to interactively create the I02 well at the location displayed in the image.
In the following ‘Well info’ dialog rename the well as I02. Interactively edit the unique perforation by clicking
on the icon and restricting the perforation length to the lower zone only, as shown below:
No well intake model will be defined for this well. To define a unique water injection control, move to the
‘Schedule’ tab and click on . Change the mode to ‘Injection’ and keep the default starting time.
Define the target as a bottomhole water rate of -8000 B/D with a maximum bottomhole pressure constraint
of 10,000 psia (shown below):
Select the well ‘P01’ in the Well list at the top and click on the ‘Completion’, , icon to open the ‘Well
schematic’ dialog. Click on and load the well sketch contained in the NUMEX01.wellsketch file, located in
the Examples directory:
Select the well ‘P01’ in the Well list at the top and click on the ‘Load’, , icon to open the ‘Load’ dialog. Click
on the icon and select the file ‘NUMEX01_P01_Rates.txt’ in the installation folder to bring a preview of its
content (below, left). brings a dialog where the file information is interpreted line by line. The
collapsible panels on the left offer detailed load options. The top right section has a set of editable
information while the bottom left window gives the result of the format processing. In this case, set the first
columns to ‘Date’ (format: dd/MM/(yy)yy), second column to Time, third columns to oil rate and the last
column to water rate. Call the oil rate gauge ‘Oil q’ and the water rate gauge ‘Water q’, as shown below, right.
Click on to proceed.
After all the geometrical elements and input parameters have been defined in the model, it is possible to
preview the grid by clicking on the ‘Grid’, , icon in the top ribbon and change the grid settings if needed.
For this session, keep the default grid settings and preview the grid by clicking on or .
The 3D plot Display settings will be explained later in the tutorial. Click on to validate and exit the
dialog.
- Step 1: Define model start time, outputs and numerical settings. This step consists of an ‘Output’ tab with
three pages on the left. These allow the user to select the well gauge, production logs and global results
to output. Each output category has its own dedicated plot showing the simulation results. The
frequency of the output gauges and results fields can be defined either as a number or explicitly as dates
on which the output is required. In the ‘Numerical Settings’ tab, numerical solver and its settings may be
defined. For this session, in addition to the default parameters, export production logs calculated at P01.
Click on to proceed.
- Step 2: Define model time stepping, handling of targets and number of restarts. The times of restarts are
automatically calculated based on the total simulation duration and number of restarts specified by the
user. Set up the model to run for 25 years. Leave the rest as default and click on .
Once model initialization is complete, the 3D plot, well results plot and production logs plot are created.
Click on ‘Simulate’, , in the control panel to start the simulation. As the simulation proceeds, progress is
summarized in the activity log, which can be hidden/shown using the icon in the ‘Run’ ribbon at the top.
The verbosity of the activity log can be set in the application settings (accessed through located at the top
right of the Rubis window).
Although several processes are parallelized in KAPPA-Workstation, the simulation itself is still run on a single
thread. The well results, production logs and 3D plots are updated as the simulation progresses. Once the
simulation is complete, the global results plot is created.
When the simulation is complete, all results are displayed in the various plots created by default. Several
instances of those plots can be created using the ‘New plot’ icon in the ribbon at the top under the Run Tab.
This will be skipped for the purpose of the tutorial. Some of the plot options, however, are illustrated in the
following sections.
As the user navigates through different time steps, using the options in the ‘Navigation’ panel at the top, the
corresponding curves are highlighted in the tracks.
Maximize the Global Results plot, and bring up the ‘Show’, , options as for the well results plot. To take a
closer look at the evolution of the remaining oil reserves as a function of time, layer by layer, uncheck all the
channels and check ‘STOIP’ for each layer as shown in the image below, left:
7.5. 3D plot
This section illustrates a few of the new display options added to the 3D plot. Maximize this plot, and
increase the vertical gain by using the sliding bar at the bottom left of the plot. Superpose the background
scale grid by clicking on ‘Show scale grid’, , in the right hand tool bar.
In the bottom toolbar, from the Property menu select to display water saturation (Sw) (below, left). Next, click
on the ‘Data filtering’, , option in the ribbon at the top and enable filtering on Sw, keeping only cells
containing more than 25% of water (below, right).
The water saturation fields can be played back step by step by clicking on or in one go using (located in
the bottom tool bar) to track the time at which the water front reaches the producer.
To view the property values for a given cell, click on ‘Show value’, , in the tool bar on the right, hold the
Ctrl key and click on the cell. The 3D data inspector, shown below, will appear, showing the properties of the
selected cell:
8. Data store
The data store allows the user to create static copies of data or simulated channels for comparison or
reporting purposes. Before proceeding to tune our model to match the input data, let us drop some of the
simulated gauges into the data store to view later.
Click on the ‘Browser’, , icon in the ribbon at the top. Drag and drop the following channels onto the ‘Data
store’ node as shown below, left:
Once done, go to the ‘Data store’ tab. The dropped gauges have automatically been assigned to and
displayed on the correct pane types.
9. Improve
The file ‘NUMEX01_chapter_8.kr5’ may be used as a starting point for this chapter.
So far, we have only constructed and run our model in the forward direction. Let us now go back to the well
results plot. We see that our simulated oil and water rates do not match well with the loaded production data
towards the end of our simulated history. Let us try and regress on some model parameters to improve the
model behavior.
Click on the ‘Improve’, , icon in the control panel on the left. The improve dialog containing two tabs
defining the parameter controls and the targets is launched. Select ‘k multiplier’ and ‘phi multiplier’ for the
‘Default’ property set as regression variables (below, left) and oil and water rates and regression targets
(below, right):
Stop after 1-2 iterations. The simulated oil and water rates show better agreement with the loaded data:
The template stores the setting of the document and the active run PVT and numerical settings at the time it
was saved. The next time the user wants to create a new document, they will just have to select the template.
Notice that the wizard, which takes the user through the two initialization steps, has the settings of the
current analysis. This can be checked with the numerical settings (below left) and PVT definition (below right)
in Step 2 of initializing the first run.
However, you may also want at this stage, to explore the capabilities of Rubis a little further. In the session
above we had just created a simple model with some data sets and fairly simple PVT and reservoir
description. You may initialize the reservoir description from a GRDECL file, define complex EOS PVT, define
complex well geometries and schedules, use deviation survey to initialize well trajectory, define different
initial states or KrPc curves in different regions of the reservoir, etc.
KAPPA-Workstation also has a comprehensive contextual online help, including ‘How to’ topics and FAQs, to
assist the users whilst using the software. Users are encouraged to consult these.