Vous êtes sur la page 1sur 34

ROCX User Manual

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.

DETAILED DESCRIPTION OF ROCX INPUT


6.1 GRID section
6.1.1 Radial grid
6.1.2 Rectangular grid
6.2 FLUID PROPERTIES section
6.2.1 PVT table approach
6.2.2 Blackoil approach
6.3 RESERVOIR PROPERTIES section
6.3.1 Porosity
6.3.2 Rock compressibility
6.3.3 Rock thermal properties
6.3.4 Permeability
6.4 Kr and Pc section

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

6.4.1 Residual saturations


6.4.2 Krw - relative permeability of water phase
6.4.3 Krg - relative permeability of gas phase
6.4.4 Kro - relative permeability of oil phase
6.4.5 Capillary pressure
INITIAL CONDITIONS section
6.5.1 Manual initialization
6.5.2 Automatic initialization
BOUNDARY CONDITIONS section
SIMULATION section
RESTART section

23
23
23
24
25
26
26
27
28
30
31

ROCX User Manual 2.0.3

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

ROCX User Manual 2.0.3

Page 2

overwritten by OLGA, using the pressure, temperature, composition (blackoil mode


only) and phase distribution information from the corresponding section.

2.2 Mathematical formulation


2.2.1 Conservation equations
The conservation equations for water, oil and gas flowing in a porous medium are:
Water equation
(

Sw )

So )

Sg )

vw )

(2.2.1)

qw

Oil equation
(

vo )

qo

(2.2.2)

Gas equation
(

vg )

qg

(2.2.3)

where the Darcy velocities are given by


D

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)

Capillary pressure relation


Pcow ( S w )

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)

ROCX User Manual 2.0.3

Page 3

2.2.2 Reservoir properties


The grid used in Rocx is either radial or rectangular. The gravity direction is specified within
the grid. The reservoir properties, like absolute permeabilities and porosities, are given
constant in time, but may vary from grid cell to grid cell. Permeabilities and porosities may be
given as constant in the whole near well zone, or may be given constant values in each zdirection layer. There is also the possibility to enter different permeability and porosity for
each individual grid cell.
2.2.3 Rock-fluid properties
In the ROCX model the relative permeabilities of each phase are defined relative to the
absolute permeability of the reservoir.
The relative permeability of water, Krw, and the relative permeability of gas, Krg, are defined
by the user as functions of their corresponding phase saturations. The so-called Stone II
model is then used for the relative permeability of the oil phase. The model extrapolates from
a set of user-specified relative permeability measurements to obtain the oil-phase relative
permeability. The formula used for the relative permeability of the oil phase is the following:
k ro ( S w , S g )

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

ROCX User Manual 2.0.3

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.

2.3 Numerical solutions


When solving the equations described in 2.2.1, a modified IMPES numerical scheme is used.
This means that in PVT simulation mode, one pressure equation and three mass equations
are solved at each time step. In addition, one energy equation is solved when temperature
calculation is requested by the user. PVT data are given in table form, where each physical
property is tabulated as function of pressure and temperature.

2.4 The Blackoil model


In addition to the three phase simulation mode that require a PVT table as input, ROCX offer
a blackoil model.
The blackoil model makes it possible to perform calculations with a minimum of information
about the production fluids. Specific gravity of gas and oil and the gasoil ratio (GOR) at
standard conditions are the only necessary data. If water is present, also the specific gravity
of water must be input. Compared to compositional tracking, a blackoil model is faster in
terms of CPU cycles, and it treats shut-in cases more accurately than does the standard PVT
table option.
A possible work flow that utilizes the blackoil simulation capability is this: During planning or
design one may use specific gravities and GOR typical of the geographical site. Later, when
production is established, one may insert the actual values and possibly make use of the
blackoil models tuning mechanism to improve the match between observations and
predictions made by ROCX.
A blackoil feed can consist of one gas, one oil and one water component. The gas
component consists of hydrocarbon gas, and optionally H2S, CO2 and N2 components. It is
possible to specify more than one blackoil feed, and for such a mixture each component of
each feed is tracked.
The same numerical scheme is used to solve the conservation equations in blackoil mode as
in the 3ph PVT-table mode. The equations in section 2.2.1 are representative also for the

15 Mar 2011

ROCX User Manual 2.0.3

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

Vasquez & Beggs


Glas

API>15
API>15

Area on which they are based


based on fluids from California
based on fluids from Canada, US and South
America
similar to Lasater
based on fluids from the north Sea

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.

2.5 OLGA-ROCX coupling


The Rocx near well model is considered as a plug-in to the pipeline model; hence it is only
started and used as determined by the input to the pipeline model. The dll containing the
reservoir model is then loaded automatically, and the required connections between the
pipeline model and the reservoir model are automatically created.
The flow from the reservoir model is defined by matching up the boundary conditions of
elements in the reservoir grid with inflow points in the pipeline.
At each inflow point, the pressure and the three phase mass flow rates constitute the
interface variables that couple the two models. There is a two way coupling between the
models, since the pressure in the pipe flow model will depend on the inflow mass rates, while
in the reservoir model the outflow mass rates will depend on the pipe flow pressure. This
two-way coupling is computed using an implicit solution method, and the beauty of the
method is that it is completely general with respect to different types of grid in 1, 2 or 3 space
dimensions.

3.

ROCX FILES

3.1 Input files


The ROCX engine reads input from files. Three input file types are read: case files,
PVT-files and restart files. Restart files are, however, only read in restart cases.

15 Mar 2011

ROCX User Manual 2.0.3

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

ROCX User Manual 2.0.3

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.

3.2 Output files


The ROCX engine writes output to files. Three types of output files are written: trend
data files, profile data files and restart files.
All output files from ROCX have names with the following structure:
case.ext
where case is the root of the ROCX input file name and ext is an extension string
indicating the type of file.
3.2.1 Trend data file
The trend data file is written in text column format and may be plotted with any general
plotting tool like Excel or Gnuplot.
The first column contains the time in seconds. Next comes the water, oil and gas mass
flow rates (kg/s) for the first output boundary. Next, the mass flow rates for the
subsequent output boundaries are written.
The last 4 columns contain the total (sum of all output boundaries) water, oil and gas
mass flow rates followed by the current ROCX time step.
Note that a multiplier may be entered in the GUI to change the unit of the time column
from s to any other unit. Likewise, a multiplier may be entered to change the mass flow
rate unit from kg/s to any other unit.
The name of the ROCX trend data file is:
case.prd

15 Mar 2011

ROCX User Manual 2.0.3

Page 8

3.2.2 Profile data files


The following files are Eclipse text files used for plotting with any kind of Eclipse
plotting tool like Floviz, Tecplot etc.
case.FEGRID
case.FINIT
case.FUNRST
The Eclipse files are also written as binary files with the names:
case.EGRID
case.INIT
case.UNRST
In addition, ROCX produces text files containing saturation, pressure and temperature
profile data. The data are listed for each grid block and may be plotted with general
plotting tools as Excel or Gnuplot.
case.sprf
case.pprf
case.tprf
3.2.3 Restart file
The ROCX restart files have .rrs as their extension. They are in ASCII format, and thus
readable.

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

ROCX User Manual 2.0.3

4.1 The Grid menu

The input parameters are described in section 6.1.

15 Mar 2011

Page 9

ROCX User Manual 2.0.3

4.2 The Fluid Properties menu

The input parameters are described in section 6.2.

15 Mar 2011

Page 10

ROCX User Manual 2.0.3

4.3 The Reservoir Properties menu

The input parameters are described in section 6.3.

15 Mar 2011

Page 11

ROCX User Manual 2.0.3

4.4 The Kr and Pc menu

The input parameters are described in section 6.4.

15 Mar 2011

Page 12

ROCX User Manual 2.0.3

4.5 The Initial Conditions menu

The input parameters are described in section 6.5.

15 Mar 2011

Page 13

ROCX User Manual 2.0.3

4.6 The Boundary Conditions menu

The input parameters are described in section 6.6.

15 Mar 2011

Page 14

ROCX User Manual 2.0.3

4.7 The Simulation menu

The input parameters are described in section 6.7.

15 Mar 2011

Page 15

ROCX User Manual 2.0.3

4.8 The Restart menu

The input parameters are described in section 6.8.

15 Mar 2011

Page 16

ROCX User Manual 2.0.3

Page 17

4.9 The Text Result view

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

ROCX User Manual 2.0.3

5.

Page 18

ROCX VIEW
No viewer for showing results is available in the current version of OLGA Rocx.

6.

DETAILED DESCRIPTION OF ROCX INPUT


The ROCX engine reads input from a case file (see section 3.1.1 of this document). It
is recommended to use the ROCX GUI to enter the input parameters and generate the
case file.
The input parameters are separated into eight sections. Below, these sections are
described in some detail.
All input parameters must be given in SI units except for pressures and permeabilities
which must be given in bar and mDarcy, respectively. Dimensionless parameters must
be given as fractions (not percent).
Items entered for each block or layer may be separated by blanks or commas. One or
more repetition factors n:value are allowed in all such lists. The item n:value means
that value is repeated n times. In all lists, the total number of items must correspond
exactly to the total number of blocks or layers.

6.1 GRID section


Geometry: radial or rectangular
nx
ny
nz

Number of grid blocks in radial direction (x-direction in case of


rectangular grid)
Number of grid blocks in angular direction (y-direction in case of
rectangular grid)
Number of grid blocks in z direction

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

ROCX User Manual 2.0.3

Page 19

Radial Log input data:


rw
Wellbore radius
R
Radius of the near-wellbore zone
Radial Variable input data:
rw
Wellbore radius
dr
Block size in radial direction
const
Constant block size in radial direction
i
Variable block size given for each block number i in radial direction
d
dz
const
k

Size of sectors in angular direction (deg)


Block size in z-direction
Constant block size in z direction
Give block sizes in z-direction for each block (layer)

gx
gy
gz

Gravity component in radial direction


Gravity component in angular direction (angle in degrees)
Gravity component in z-direction

meaning that gx and gz are given as in Cartesian coordinates, gy is an angle. Note


that (gx,gy,gz) may be given normalized to 1 or any other non-zero value.
Internally, the gravity vector is automatically normalized to 9.80665 m/s2.
Example 6.1 Reservoir with gravity along the z-axis
(1,1,1)

(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

ROCX User Manual 2.0.3

Page 20

Example 6.3 Reservoir with inclination

g
Z
Figure 6.3 Reservoir with inclination

g is entered as ( cos

, 0, sin ). Note that


reservoir with the horizontal line.

in this case is 90-

where

is the angle of the

6.1.2 Rectangular grid


dx
const
i

Grid block size in x-direction.


Constant block size (give one value)
Give block sizes in x-direction for each block

dy
const
j

Grid block size in y-direction.


Constant block size (give one value)
Give block sizes in y-direction for each block

dz
const
k

Grid block size in z-direction.


Constant block size (give one value)
Give block sizes in z-direction for each block

gx
gy
gz

Direction vector for gravity given in the x, y, z coordinate system

The radial grid examples in figures 6.1 6.3 also apply in the rectangular case,
when substituting the coordinate r by x.

6.2 FLUID PROPERTIES section


This section contains a choice of simulation mode; either PVT table or Black Oil
must be chosen.
6.2.1PVT table approach
If PVT table is chosen as simulation mode, then the path and name of the ROCX PVT
table file should be given. Only one fluid table is allowed in a case, and it normally
should be the same PVT table as used by the OLGA branch which the near well model
is coupled to.
6.2.2Blackoil approach
If Black Oil is chosen as simulation mode, then the following three parameter groups
must be given.
Blackoil Option data
gormodel

15 Mar 2011

choice between Beggs, Lasater, Standing and Glaso

ROCX User Manual 2.0.3

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

the number of blackoil components (the GUI automatically finds this


number based on component input).

For each oil component the following must be given:


Label
the label of this oil component
type = oil
type must be oil for an oil component
oilspecificgravity or apispecificgravity
specific gravity for this oil component
For each gas component the following must be given:
label
the label of this gas component
type=gas
type must be gas for a gas component
gasspecificgravity
specific gravity for this gas component
h2smolefraction
mole fraction of H2S
co2molefraction
mole fraction of CO2
n2molefraction
mole fraction of N2
For each water component the following must be given:
label
the label of this water component
type = water
type must be water for a water component
waterspecificgravity
specific gravity for this water component

Blackoil feed data


nfeed

the number of feeds (the GUI automatically finds this


number based on component input).

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

ROCX User Manual 2.0.3

Page 22

watercomponent
watercut

the label of the water component


the water cut

6.3 RESERVOIR PROPERTIES section


6.3.1 Porosity
The effective porosity of the reservoir rock should be specified as input.
Por
Const
k
Ijk

Porosity
Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

6.3.2 Rock compressibility


Crock
Pref

Compressibility of the rock


Reference pressure at which initial pore volumes are given

6.3.3 Rock thermal properties


Fluid enthalpies and other fluid properties are read from the OLGA PVT table file ( see
section 3.1.2.
The thermal parameters in this section are:

Temperature calculation switch

On: temperatures will be calculated


Off: temperatures will not be calculated

Heat conductivity
const
k
ijk

Heat conductivity for the rock


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

Heat capacity
const
k
ijk

Heat capacity for the rock


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

Density
const
k
ijk

Density of the rock


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

6.3.4 Permeability
The absolute permeability should be specified as input.

15 Mar 2011

ROCX User Manual 2.0.3

6.4

Page 23

permx
const
k
ijk

Permeability in radial (x-) direction


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

permy
const
k
ijk

Permeability in angular (y-) direction


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

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

6.4.1 Residual saturations


swc : connate water saturation
sor : residual oil saturation
sgr : residual gas saturation
6.4.2 Krw - relative permeability of water phase
The relative permeability of the water phase, Krw, is defined as a function only of the
water saturation, Sw. Users can manually enter the Krw values as a table
Sw_value Krw_value

or use the Corey correlation to estimate the Krw:


k rw

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

ROCX User Manual 2.0.3

Page 24

or use the Corey correlation to estimate the Krg:


k rg

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

ROCX User Manual 2.0.3

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

ROCX User Manual 2.0.3

6.5

Page 26

INITIAL CONDITIONS section


This section specifies the initial conditions for the ROCX simulation.
The user must specify the initialization mode, either manual or automatic. When
automatic is specified, rocx computes an initial state based on hydrostatic equilibrium
in the reservoir.

6.5.1 Manual initialization


When manually initializing the simulation, the user must specify the saturation for each
phase, the pressure for one of the three phases, and the temperature. This is often an
non-equilibrium initialization for pressure.
In the manual initialization, no datum information is needed.

15 Mar 2011

Sw
const
k
ijk

Initial water saturation


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

So
const
k
ijk

Initial oil saturation


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

Sg
const
k
ijk

Initial gas saturation


Give a constant value for all blocks
Give values for each z-layer
Give a value for each block in reservoir

Pi
const
k

Initial water, oil or gas pressure


Give a constant value for all blocks
Give values for each z-layer

ROCX User Manual 2.0.3

Page 27

ijk

Give a value for each block in reservoir

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

Temperature at the reference depth


Depth (of mid-point) of grid block element (1,1,1)
Reference depth, which must lie below the water/oil contact depth
Water/oil contact depth
Oil/gas contact depth
Pressure at the reference depth

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

Required input parameters:

At Block (1,1,1)
Depth:

d0 [m]

ROCX

g (gravity
OGC

vector)

Depth o/g contact: dogc [m]

WOC

Depth w/o contact: dwoc [m]

Reference depth

dref , pref [bara] and Tref [C]


d (depth below
surface)

15 Mar 2011

ROCX User Manual 2.0.3

Page 28

Automatic initialization is not enabled for blackoil simulation mode.

6.6 BOUNDARY CONDITIONS section


Three types of boundary conditions may be given: well, reservoir and sources.
The well type boundary condition is used for specification of pressures, temperatures
and saturations at well boundaries, and the reservoir type boundary condition is used
for specification of pressures, temperatures and saturations at reservoir boundaries
such as the outer near-wellbore boundaries. If no boundary condition is given for all or
parts of the external surface of the near well grid, it means no flow through those parts
of the surface. The sources type boundary conditions may be used to specify mass
sources.
Well boundary conditions:
Name
ix
iy
iz
iDir

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

ROCX User Manual 2.0.3

Page 29

using an expression developed by Peaceman. As the well direction in the example


case is relatively close to the x-direction, we would define Idir to be 1 in this case. The
consequence of this choice is that the inflow transmissibility calculation is based on the
permeabilities in the y and z directions, thus taking into account possible anisotropic
behaviour K y K z . The average transmissibility in this case is written:

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

is an average radius giving the position of the grid block pressure


is the well radius

K x is the permeability in the x-direction

K z is the permeability in the z-direction

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

Reservoir boundary conditions:


Name

ix
iy
iz
iDir

Label of the outer boundary condition (for referring in ROCX trend


plotting) must not be coupled to OLGA because it will result in a
transmissibility not suitable for wells
Grid block indices for the boundary
Main flow direction for the outer boundary, either 1 (x or radial) , 2 (y
or angular) or 3 (z)
iDir indicates in which of the three directions the flow crosses the
boundary. The transmissibility (being Tx, Ty or Tz) is chosen based
on this iDir parameter given by the user

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

ROCX User Manual 2.0.3

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

Grid block indices for the boundary

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

Start time for simulation (overwritten by OLGA when coupled)


Stop time for simulation (overwritten by OLGA when coupled)
Minimum time step
Maximum step

dtStart Initial time step


dtFac Multiplier used from one timestep to next when increasing time step
Inverse value is used when decreasing timestep
cflFac Multiplier for CFL criterion (within dtMin and dtMax limits)
Simulation:
Solver Profile: direct Gaussian linear solver routine is used
Linsolver: iterative linear solver routine is used

15 Mar 2011

ROCX User Manual 2.0.3

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

give label of the boundaries for which output is wanted

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

6.8 RESTART section


Reading restart file:
Restart file
Readtime

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.

Writing restart file:


Append
Overwrite
Writetime interval

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

Vous aimerez peut-être aussi