Rocx GUI
Rocx GUI
Rocx GUI
Ver 2.0.3
Page i
TABLE OF CONTENTS
Page
1.
INTRODUCTION
2.
ROCX MODEL
2.1 General
2.2 Mathematical formulation
2.2.1 Conservation equations
2.2.2 Reservoir properties
2.2.3 Rock-fluid properties
2.2.4 Initializations
2.2.5 Boundary conditions
2.3 Numerical solutions
2.4 The Blackoil model
2.5 OLGA-ROCX coupling
1
1
2
2
3
3
3
3
4
4
5
3.
ROCX FILES
3.1 Input files
3.1.1 Case file
3.1.2 PVT file
3.1.3 Restart file
3.2 Output files
3.2.1 Trend data file
3.2.2 Profile data files
3.2.3 Restart file
5
5
6
7
7
7
7
8
8
4.
ROCX GUI
4.1 The Grid menu
4.2 The Fluid Properties menu
4.3 The Reservoir Properties menu
4.4 The Kr and Pc menu
4.5 The Initial Conditions menu
4.6 The Boundary Conditions menu
4.7 The Simulation menu
4.8 The Restart menu
4.9 The Text Result view
8
9
10
11
12
13
14
15
16
17
5.
ROCX VIEW
18
6.
18
18
18
20
20
20
20
22
22
22
22
22
23
15 Mar 2011
Page ii
6.5
6.6
6.7
6.8
15 Mar 2011
23
23
23
24
25
26
26
27
28
30
31
1.
Page 1
INTRODUCTION
In the OLGA simulator, the steady-state inflow performance relationships (IPRs) are
used to calculate the production and injection from and to the reservoir. This IPR
approach does not account for the dynamic properties of the near-wellbore reservoir,
and thus cannot provide reasonable reservoir response to the pressure transients in
the wellbore in many scenarios.
In addition, the IPR approach also has no memory on what have been injected back to
the reservoir thus cannot tell how the injected fluid will stay in the near-wellbore and
how they are going to be produced back.
To accurately account for the flow interactions between the wellbore and the reservoir
in the dynamic operations, one needs to couple OLGA with a reservoir simulator.
Fortunately, most of the wellbore transient flow scenarios can only affect a limited
region of the reservoir, a so called near wellbore region or near well zone. The near
well module ROCX in OLGA offers an easy-to-use, robust and stable numerical
solution to the coupled well - near well zone dynamic simulation problem. The coupled
runs are used for prediction and matching the dynamic interaction between well and
reservoir in the near-wellbore region. Both pressure-flow transients and temperature
effects may be modeled in the well and in the reservoir.
With OLGA Rocx at least the following phenomena can be properly simulated:
More accurate prediction of shut-in and start-up in terms of bottom hole
pressure and flow rate
More accurate prediction of the onset of flow instabilities
Dynamic gas and water coning in the near wellbore area
Liquid loading and back flow in gas wells
Cross flow among different layers through tubing
Transient phase behavior in the near wellbore region, e.g. condensate banking
2.
ROCX MODEL
2.1 General
The near well module ROCX is capable of simulating 3-phase fluid flow in porous
media. The flow equations are solved in 1, 2 or 3 dimensions, giving output saturations
and pressures varying in space and time. Two different simulation modes are available:
the PVT file approach and the blackoil approach. For the PVT file approach, the fluid
properties are entered in a separate OLGA PVT file. Its filename is given in the fluid
properties section of the GUI. For the blackoil approach the fluid properties are
computed by well known blackoil correlations.
Input data to the model are permeability and porosity of the porous medium and fluid
properties of the flowing phases. In case of thermal simulations, thermal properties of
the rock and fluids are also needed. Boundary conditions at the well and at the outer
near-wellbore reservoir must also be given as input. In addition, the initial condition has
to be specified, or a snapshot (restart file) from a previous run must be used.
Typical time-dependent boundary conditions are injection/production flow rates,
pressure and temperature at the specific well or outer boundary of the simulated
region. When coupled to OLGA, the well boundary specified in ROCX will be
15 Mar 2011
Page 2
Sw )
So )
Sg )
vw )
(2.2.1)
qw
Oil equation
(
vo )
qo
(2.2.2)
Gas equation
(
vg )
qg
(2.2.3)
vw
kr w
pw
po
pg
(2.2.4)
g)
w
D
vo
kr o
g)
(2.2.5)
g)
(2.2.6)
vg
kr g
Closure relations (volume balance for the phases and mass balance for the flash terms)
Sw
o
So
Sg
(2.2.7)
Po
Pw
Pcgo ( S g )
Pg
Po
(2.2.8)
Energy equation
(
t
S wuw
Q overburden
15 Mar 2011
hw u w
Souo
Sgug
ho u o
hg u g )
Q underburde
HS
(1
)
(kT
us )
T)
(2.2.9)
Page 3
k rowc
k row ( S w )
k rowc
k rw ( S w )
k rog ( S g )
k rowc
k rg ( S g )
k rw ( S w )
k rg ( S g )
The functions, Krg, Krw, Krow and Krog are defined by the user, along with the constant
Krowc. The meanings of these functions, and the permitted methods of specifying them, are
discussed in detail in Section 6.4. In short, however, the user-defined input may be given in
tables of values or in terms of standard Corey correlation formulae.
As an alternative to using the Stone II model, the user may choose to define each relative
permeability as a function of the saturation of the corresponding phase. If this option is used
then the relative permeability values may be given in a table or by using Corey correlations.
This option is also discussed in more detail in Section 6.4.
2.2.4 Initializations
The Rocx model may be initialized manually or automatically.
For manual initialization the required initial data for the Rocx model are saturations (volume
fractions) for each phase, water, oil or gas pressure and temperature defined for each grid
block. The data may be given constant for the whole near well zone, given constant for each
z-direction layer or given individually for each block. When blackoil simulation mode is used,
also an initial feed must be given.
Automatic initialization triggers computation of an initial state based on hydrostatic
equilibrium. For automatic initialization the required initial data are the true depths of the
water oil contact and the gas oil contact, pressure and temperature at a reference point
below the water oil contact, and the depth of the first grid cell.
If the case is restarted from another Rocx case, the above data are neglected.
2.2.5 Boundary conditions
In Rocx, two alternative types of pressure boundary conditions may be defined for a specific
grid block. The well type pressure boundary condition is used for boundaries connected to a
15 Mar 2011
Page 4
well, while the res (reservoir) type boundary condition is used for outer boundaries of the
near well zone. When no boundary condition is given, a no-flow boundary condition is
assumed for that block.
In addition to pressure being specified at the pressure boundaries, saturations, temperature
and feed (for blackoil) must also be given. Note that when the boundary pressure is zero, the
flow is set to zero and only heat transfer will be allowed through that boundary (when
temperature calculation is active). This functionality is used for simulating overburden and
underburden heat transfer.
All the data given at the boundary may vary with time. When a specific boundary is coupled
to Olga, the data are overwritten by Olga.
When simulating a well trajectory in a rectangular grid, the well grid block transmissibility is
calculated by using an expression originating from Peaceman. In this expression, the
directional anisotropy of the reservoir (for instance different permeabilities in the horizontal
and the vertical directions) is taken into account. In addition, a skin factor for the completion
has been implemented for radial and rectangular grids. The skin factor is a dimensionless
factor reducing the completion transmissibility due to formation damage in the vicinity of the
well.
15 Mar 2011
Page 5
blackoil mode, but in this case one mass equation is solved per blackoil component instead
of one mass equation per phase.
In the blackoil model, one of four correlations may be chosen for computation of bubble point
pressure for a given GOR and computation of equilibrium value of RSGO (<GOR) for any
P<Pb. The correlations use the pressure and the temperature, as well as the specific
gravities of gas, oil and water, and the GOR, at that position. In the case of multiple feeds,
the specific gravities and the GOR are mixture values. The mixture is the average taken over
the constituting blackoils weighted by volume at standard conditions.
The correlations that may be chosen and their recommended usage are:
Model
Standing correlation
Lasater correlation
API
API<15
API>15
API>15
API>15
If measured values for GOR and the bubble point Pb(Tb) are available, it is recommended to
tune the correlations for RSGO(P,T) and Pb(T).
The following assumptions are used for the blackoil model in ROCX:
1. An oil component cannot exist as gas in the gas phase. As a consequence, the
blackoil model is not well suited for studying gas condensate systems.
2. Gas can dissolve in oil.
3. Gas can dissolve in water.
4. Water vapor can exist in the gas phase.
3.
ROCX FILES
15 Mar 2011
Page 6
In the ROCX GUI, users can make case files from scratch, or they can open an existing
case file for inspection and modification. For a description of the ROCX GUI, see
chapter 4 of this document.
3.1.1 Case file
The ROCX case files have .rocx as their extension. The file is in ASCII-format.
The input parameters are separated into seven sections. These are:
Grid
This section contains input data for the grid system. Two types of grid are available,
radial grid (cylinder geometry) and rectangular grid. For radial grid, the well is directed
along the z-axis.
Fluid Properties
In this input section a choice of simulation mode must be made: either PVT table or
blackoil mode.
When PVT table mode is chosen, the name of an OLGA fluid table (.tab file) must be
entered.
When blackoil mode is chosen, blackoil options, blackoil component data and blackoil
feeds must be specified.
Reservoir Properties
The permeability and porosities for the near-wellbore zone must be defined in this
section in addition to rock compressibility and rock thermal properties.
Kr and Pc
This section contains residual saturations and tables for relative permeability and
capillary pressure. The ROCX GUI can assist in making the tables for relative
permeability (see chapter 6.4 of this document for a description of this).
Initial Conditions
The user has a choice between manual or automatic initialization. Manual initialization
requires that initial saturations, pressures, temperatures and possibly blackoil feeds are
given as input in this section. Automatic initialization requires input of true depths of the
water oil contact and the gas oil contact, pressure and temperature at a reference point
below the water oil contact, and the depth of the first grid cell. When ROCX reads a
restart file from a previous run, the initial condition input is not used
Boundary Conditions
Two kinds of boundary conditions may be specified:
Mass sources
Pressure boundary conditions
Mass sources may be given as functions of time in any grid block. Pressure boundary
conditions may be defined at the well boundary or at the outer near-wellbore zone.
Each boundary condition (denoted boundary) is identified by a user specified name
(label). This name (label) can be referred to in the OLGA input file, establishing a
connection between a NEARWELLSOURCE in OLGA and a boundary in ROCX.
15 Mar 2011
Page 7
For each boundary the user gives the pressure, temperature, saturations and possibly
blackoil feeds as a function of time. If the boundary is connected to OLGA, this
information is over-written at each time step by OLGA.
Simulation
Profile and trend plot data are defined in this section. In addition, parameters for the
numerical solution algorithm are given.
Restart
The input in this section defines how ROCX read and write restart files.
In chapter 6 each of these seven input sections is described in more detail.
3.1.2 PVT file
The ROCX PVT files have .tab as their extension. Only the three phase fixed format
equidistant or non-equidistant OLGA PVT table is allowed at the moment. And the PVT
table file should contain only one fluid.
3.1.3 Restart file
The ROCX restart files have .rrs as their extension.
15 Mar 2011
Page 8
4.
ROCX GUI
The GUI consists of eight main menus that handle different types of input for the ROCX
model, and a text result view. These menus will be shown on the following pages.
15 Mar 2011
15 Mar 2011
Page 9
15 Mar 2011
Page 10
15 Mar 2011
Page 11
15 Mar 2011
Page 12
15 Mar 2011
Page 13
15 Mar 2011
Page 14
15 Mar 2011
Page 15
15 Mar 2011
Page 16
Page 17
This view shows the case file which corresponds to the parameter inputs given through
the seven GUI menus. To update the text after entering new input, the user must press
the save button.
15 Mar 2011
5.
Page 18
ROCX VIEW
No viewer for showing results is available in the current version of OLGA Rocx.
6.
Before running ROCX, the user must define a coordinate system for the reservoir. The
grid blocks are counted in the positive direction of each coordinate axis. The
built-in block sequence is
(1,1,1), . . , (nx,1,1), . . , (1,2,1), . . , (nx,2,1), . . , (1,ny,nz), . . , (nx,ny,nz)
Hence the inner counting loop goes through all x-coordinate values, the intermediate
loop goes through the y-values and the outer loop goes through the z-values.
Having defined the coordinate system, geometrical and physical properties may be put
in. In ROCX, the gravity may have any direction within the coordinate system, meaning
that no a priori assumption about gravity direction is made. Instead, gravity is defined
in a flexible way by giving the components of the gravity vector in each coordinate
direction (see explanation below).
6.1.1Radial grid
Two options are available: Radial Log and Radial Variable. In case of Radial Log, a
logarithmic block size distribution is assumed in the radial direction. In case of Radial
Variable, each block may be given a specific length in radial direction.
15 Mar 2011
Page 19
gx
gy
gz
(2,1,1)
(1,1,2)
Z
Figure 6.1 Gravity vector parallel to the z-axis
In this case g is entered as (0, 0, 1). As seen from figure 6.1 this means that the first reservoir layer lies
at the top of the reservoir.
Example 6.2 Reservoir with gravity opposite to the z-axis
Z
(1,1,2)
(1,1,1)
(2,1,1)
r
Figure 6.2 Gravity vector opposite to the z-axis
In this case g is entered as (0, 0, -1). This means that the first reservoir layer lies at the bottom of the
reservoir.
15 Mar 2011
Page 20
g
Z
Figure 6.3 Reservoir with inclination
g is entered as ( cos
where
dy
const
j
dz
const
k
gx
gy
gz
The radial grid examples in figures 6.1 6.3 also apply in the rectangular case,
when substituting the coordinate r by x.
15 Mar 2011
Page 21
rsgo_bp_tuning on/off
oilvisc_tuning
on/off
If rsgo_bp_tuning is on, the following data must be given
gor
gas oil ratio
gasspecificgravity
Gas specific gravity
oilspecificgravity
Oil specific gravity
bubblepress
Bubble point pressure
bubbletemp
Temperature for bubble point pressure
If oilvisc_tuning is on, the following data must be given
gor
gas oil ratio
gasspecificgravity
Gas specific gravity
oilspecificgravity
Oil specific gravity
oilvisc
Measured oil viscosity
visctemp
Temperature for measured oil viscosity
viscpress
Pressure for measured oil viscosity
Blackoil Component data
ncomp
Each feed must contain no more than one oil component, one gas component and one
water component. For each feed the following must be given:
label
the label of the feed
oilcomponent
the label of the oil component
gascomponent
the label of the gas component
gor/ogr/glr or lgr
one of these ratios must be given
15 Mar 2011
Page 22
watercomponent
watercut
Porosity
Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir
Heat conductivity
const
k
ijk
Heat capacity
const
k
ijk
Density
const
k
ijk
6.3.4 Permeability
The absolute permeability should be specified as input.
15 Mar 2011
6.4
Page 23
permx
const
k
ijk
permy
const
k
ijk
permz
const
k
ijk
Permeability in z-direction
Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir
Kr and Pc section
k r woc
Sw
1
S or
S wc
nw
S wc
where Swc is the irreducible water saturation; Sor is the residual oil saturation, Krwoc is
the end point relative permeability for water at its maximum saturation (1-Sor), and nw is
the Corey exponent.
When using the Corey correlation, the ROCX GUI will calculate the Krw as function of
Sw, and write the results to the table.
Please be aware that when manually typing the table input, the following saturation
data points are always required due to numeric reasons: (0,0), (Swc,0) and (1,1). When
using the Corey correlation, the GUI will automatically add these points in the table.
6.4.3 Krg - relative permeability of gas phase
The relative permeability of the gas phase, Krg, is defined as a function only of the gas
saturation, Sg. Users can manually enter the Krg values as a table:
Sg_value Krg_value
15 Mar 2011
Page 24
k rgom
Sg
1
ng
S gr
S om
S gr
where Sgr is the residual gas saturation; Som is the minimum oil saturation achievable
when oil is displaced by gas at irreducible (or zero) water saturation; Krgom is the end
point relative permeability of gas at its maximum saturation (1-Som) in a gas-oil system,
and ng is the Corey exponent.
Please be aware that, for simplicity, in the ROCX GUI input Som is set equal to Sor.
When using the Corey correlation, the ROCX GUI will calculate the Krg as function of
Sg, and write the results to the table.
Please be aware that when manually typing the table input, the following saturation
data points are always required due to numeric reasons: (0,0), (Sgr,0) and (1,1). When
using the Corey correlation, the GUI will automatically add these points in the table.
6.4.4 Kro - relative permeability of oil phase
Two methods for entering the oil phase permeability are available in ROCX. In the
simplest formulation, the oil relative permeability, Kro, is assumed to depend only on
the oil saturation, So, and it can be tabulated as:
So_value Kro_value
.
Please be aware that when manually typing the table input, the following saturation
data points are always required due to numeric reasons: (0,0), (Sor,0) and (1,1).
The second method assumes the oil relative permeability, Kro, is dependent on both the
water saturation, Sw, and the gas saturation, Sg. In this method, the Stone II model is
used to evaluate the oil phase relative permeability internally in ROCX based on Krw,
Krg and two other curves.
The first curve is Krow(Sw) measured when only water and oil are flowing. The second
curve is Krog(Sg) measured when oil and gas are flowing at irreducible water saturation
(Swc). There are two methods of specifying these two curves:
The oil relative permeability for water-oil system, Krow, is specified by following function:
k row
k rowc
Sw
S or
S wc
S or
n ow
where the pre-factor krowc is the end point relative permeability of oil in water at
irreducible water saturation. The exponent now is another fitting parameter.
The oil relative permeability for a oil-gas system at irreducible water, Krog, is specified
by following function:
15 Mar 2011
k rog
k rowc
S wc
Page 25
Sg
S wc
S om
S om
n og
where the exponent nog is a fitting parameter. Note that the pre-factor krowc is same as
for the pre-factor for the water-oil system. Som is the minimum oil saturation achievable
when oil is displaced by gas at irreducible (or zero) water saturation. In the ROCX GUI
input, for simplicity, the Som is set equal to Sor.
In addition to using the above equations, Krow and Krog can be given in a table form.
Sw_valueKrow
and
Sg_valueKrog
When using manually typed tables for both Krow and Krog, the value of krowc must also be
specified manually. The value stated should be consistent with both the Krow table and
the Krog table.
Please be aware that when manually typing the Krow table input, the following saturation
data points are always required due to numeric reasons: (0,1), (1-Sor,0) and (1,0). It is
highly recommended that the point (Swc, krowc) also be included in the table to ensure
that the table is consistent with the defined value of krowc. When using the two
correlations above, the GUI will automatically adds these points to the table.
When manually typing the Krog table input, the following saturation data points are
always required due to numeric reasons: (0,krowc), (1-Swc-Sor,0) and (1,0). When using
the two correlations above, the GUI will automatically adds these points to the table.
6.4.5 Capillary pressure
The capillary pressure data are entered by the following data:
The oil - water capillary pressure Pcow as function of water saturation is entered as a
table:
Sw_value Pcow_value
The gas - oil capillary pressure Pcgo as function of gas saturation is entered as table:
Sg_value Pcgo_value
For Pcow the following two data points should be given: (Swc,
curve should decrease monotonously.
For Pcgo the following two data points should be given: (0,
curve should increase monotonously.
15 Mar 2011
) and (1,
). The
) and (1-Sor,
). The
6.5
Page 26
15 Mar 2011
Sw
const
k
ijk
So
const
k
ijk
Sg
const
k
ijk
Pi
const
k
Page 27
ijk
T
const
k
ijk
Initial temperature
Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir
If Black Oil is chosen as simulation mode, the initial feed must also be specified. In
the current version of ROCX only the const option is enabled for feeds. The format of
the initial feed specification line is this:
Feed const [feedLabel massfrac]/
feedLabel is the label of the feed, and massfrac is the fraction of this feed to all other
feeds. In the current version of ROCX only one feed can be specified, thus massfrac
must be 1.
6.5.2 Automatic initialization
When automatic initialization is selected, the user must specify the following:
Tref
Dgrid
Dref
Dwoc
Dgoc
Pref
All depths must be entered as true vertical depth (TVD) below the surface. The figure
below shows an example of how the input parameters relate to a near well domain.
surface
d= 0
At Block (1,1,1)
Depth:
d0 [m]
ROCX
g (gravity
OGC
vector)
WOC
Reference depth
15 Mar 2011
Page 28
radius
Label of the boundary condition (to identify coupling with OLGA and
for referring by ROCX trend plotting)
Grid block indices for the boundary
Main direction index for the well, either 1 (x or radial) , 2 (y or angular)
or 3 (z)
Note that iDir indicates the direction of the well itself. The correct
inflow transmissibility Tx, Ty or Tz is chosen based on this iDir
parameter. For radial grid the well direction is automatically set to 3
by the code, no matter what the user has put there. For rectangular
grid it is important to enter the correct main direction for the specific
well, see example in Figure 6.4.
radius of the wellbore
For each boundary, the boundary pressure, skin factor, well index factors for each
phase, temperature and saturations Sw, So and Sg are given with time. In blackoil
simulation mode also the feed label must be given. If the boundary is coupled to OLGA,
these data are overwritten by OLGA at each time step.
Note that ix, iy, iz may be given as a number or as an interval.
Example: 2 3 8 means the grod block (2,3,8)
while 1-2 1-3 7-8 means all blocks covered by ix=1,2 iy=1,2,3 iz =7,8
Figure 6.4 illustrates the meaning of the well direction index iDir in the rectangular case:
Y (iDir = 2)
Well
X (iDir = 1)
Figure 6.4 Well direction close to the x-direction, iDir = 1 is chosen
In ROCX the average inflow transmissibility is calculated based on grid block size and
permeability in the two directions perpendicular (or almost perpendicular) to the well,
15 Mar 2011
Page 29
2 Kl
log(
rav
where K
(6.1)
K yKz
rw
and
2
dx(
rav
c
(
Kz
K
rav
rw
Kz
K
0 .5
dz (
0 . 25
K
(
Kz
)
0 .5
0 .28
(6.2)
0 . 25
Kz
s
l
dx
dz
is the skin factor for the well, corresponding to formation damage effects
is the completion length which in present version is set to the ROCX block length
is the grid block dimension in x-direction
is the grid block dimension in z-direction
ix
iy
iz
iDir
For each outer boundary, the boundary pressure, temperature and saturations Sw, So
and Sg are given with time. In blackoil simulation mode also the feed label must be
given.
15 Mar 2011
Page 30
Figure 6.5 illustrates the meaning of the outer boundary direction index iDir (in the rectangular case):
Y (iDir = 2)
OUT1
X (iDir = 1)
OUT2
Figure 6.5 Example: iDir index for two outer boundaries in a rectangular case
Since the flow crosses the boundary OUT1 in x-direction, iDir is chosen to be 1 for this boundary.
Likewise, iDir = 2 for OUT2, since the flow crosses the boundary OUT2 in y-direction.
Sources:
ix
iy
iz
For each mass source, the mass flow rates (water, oil, gas) and temperature are given
with time.
Note that ix, iy, iz may be given as a number or as an interval.
Example: 2 3 8 means the grod block (2,3,8)
while 1-2 1-3 7-8 means all blocks covered by ix=1,2 iy=1,2,3 iz =7,8
In the current version of ROCX, sources cannot be used in combination with blackoil
simulation mode.
6.7
SIMULATION section
This section specifies the simulation parameters and outputs for ROCX.
Integration:
tStart
tStop
dtMin
dtMax
15 Mar 2011
Page 31
Coupling_level
Give implicit coupling level to ROCX
Screen_info
0 : no screen info
>0 : the higher the number, the more info
Trend plot/Profile plot:
Boundary
Unit Multiplier:
Time
Time conversion factor in .prd file, default unit is second
Mass Flowrate Conversion factor for production rate, default unit is kg/s
Tables giving plotting frequency as function of time:
Time
dt
.
.
Give the path and name of the restart file to be read (.rrs)
Time point for the record to be read, if given a large number, e.g.
10E9, then the last record will be read.
15 Mar 2011
Restart data are appended to the file when writing (all data stored)
Only the last written restart data are preserved
Time interval for writing restart data