Professional Documents
Culture Documents
Volume I
Workflow/Solutions Training
Version 2.0
Disclaimer
Use of this product is governed by the License Agreement. Schlumberger
makes no warranties, express, implied, or statutory, with respect to the product
described herein and disclaims without limitation any warranties of
merchantability or fitness for a particular purpose. Schlumberger reserves the
right to revise the information in this manual at any time without notice.
Trademark Information
Software application marks, unless otherwise indicated, used in this publication
are trademarks of Schlumberger. Certain other products and product names
are trademarks or registered trademarks of their respective companies or
organizations.
Table of Contents Volume I
The feature Network Options shows you the wells and facilities
interaction at the surface level, as well as the facility to couple
more than two reservoir models to the network.
There are two optional modules – Gas Field Operation and Local
Grid Refinement. Gas Field Operation introduces further facilities
to mimic the gas contract and delivery capacity for these types of
fields, while Local Grid Refinement and coarsening are ways in
which horizontal and multi-lateral wells can be simulated using
ECLIPSE.
Learning Objectives
This training provides an explanation of how to model advanced
features in the simulation model. After completing this training,
you will know how to:
• Windows-based system
• Training data sets
• A graphic card compatible with Petrel
• Full ECLIPSE installation, including a full set of features
• Petrel with the latest patches, including the Petrel for
Reservoir Engineers license. (The license is needed for
some exercises.)
• Microsoft Excel or equivalent (for .xls spreadsheet
manipulation).
What to Expect
In each module within this training material, you will encounter the
following:
Course Conventions
Characters typed in Represent references to dialog box names
Bold and application areas or commands to be
performed. For example, "Open the Open
Asset Model dialog." or “Choose
Components.”
Used to denote keyboard commands. For
example, "Type a name and press Enter."
Identifies the name of Schlumberger software
applications, such as ECLIPSE or Petrel.
Characters inside <> Indicate variable values that the user must
triangle brackets supply, such as <username> and
<password>.
Characters typed in Represent file names or directories, such as
italics "... edit the file sample.dat and..."
Represent lists and option areas in a window,
such as Attributes list or Experiments area.
Identifies the first use of important terms or
concepts. For example, "compositional
simulation…" or “safe mode operation.”
Characters typed in Represent code, data, and other literal text the
fixed-width user sees or types. For example, enter
0.7323.
1. Click File menu > Save (the Save Asset Model File dialog
box opens.)
OR
Icons
Throughout this manual, you will find icons in the margin
representing various kinds of information. These icons serve as
at-a-glance reminders of their associated text. See below for
descriptions of what each icon means.
Summary
In this introduction, we have
NOTES
NOTES
Prerequisites
To successfully complete this training, you must have
Learning Objectives
After completing this module, you will understand how initialization
and end point scaling work, and you will know how to:
Lesson 1 Initialization
• Pressure (P)
• Saturation (S)
• Solution gas oil ratio (RS) and vaporized oil gas ratio (RV) for
black oil models
• Component mole fractions (XMF, YMF) for compositional
models
• Temperature (TEMPI) for thermal models.
Models with other special options are specified or calculated
during initialization, such as the initial solutions of tracer
concentration quantities for tracer models.
Enumeration
The first method of initialization in ECLIPSE is enumeration. In
enumeration, each primary variable is given a value for each cell
directly, and different primary variables are needed for the
different phases present in the model.
If three phases - oil, water, and gas - are present in the model, the
three primary variables are block pressure (PRESSURE), water
saturation (SWAT), and gas saturation (SGAS).
If only oil and water are present in the model, block pressure,
water saturation and solution oil gas ratio (RS) are needed to
specify as initial solutions. For gas/water models, block pressure,
water saturation, and vaporized oil gas ratio (RV) are the primary
variables.
Methods of Enumeration
Enumeration can be specified in several ways:
You can define values directly for each cell using the name of the
array for each variable.
PRESSURE
100*500 100*600 100*700 100*800 100*900 /
You can obtain the values of a variable from a restart file using the
keyword GETSOL in ECLIPSE 300, or GETDATA in ECLIPSE 100.
GETDATA
BASE.X0000 UNFORMATTED SWAT SWAT /
This is useful when some of the solutions are obtained from the
restart file, and others are specified using other methods. For
example, get the pressure and saturations from a black oil restart
file (BO.X0010) and specify the compositions explicitly in the
compositional model (9 components):
GETSOL
PRESSURE BO 10 /
SWAT BO 10 /
SGAS BO 10 /
/
XMF
500*0.0021 500*0.0294 500*0.6599 500*0.0869
500*0.0591 500*0.0967 500*0.0472 500*0.0153
500*0.0034 /
YMF
500*0.0021 500*0.0294 500*0.6599 500*0.0869
500*0.0591 500*0.0967 500*0.0472 500*0.0153
500*0.0034 /
A Function of Depth Using Tables
To obtain pressure and saturation from the black oil restart file,
say BO.X0012, specify:
GETSOL
PRESSURE BO 12 /
SWAT BO 12 /
SGAS BO 12 /
/
To define the fluid compositions, use
NEI
0.0021 0.0294 0.6599 0.0869
0.0591 0.0967 0.0472 0.0153
0.0034 /
In thermal models, ECLIPSE tries to match the oil, water and gas
saturations in each equilibration region. If the specified
compositions cannot match the phase saturations, the
composition of components with the highest gas phase mole
fraction are adjusted.
Phase Pressure
Phase pressures can be calculated based on the block pressure
(PRESSURE). This is calculated differently for black oil models
than it is for compositional models.
Compositional Models
For compositional models, a default technique named capillary
pressure splitting is used to calculate the oil and gas phase
pressures to overcome the discontinuity and, the resulting
possible convergence difficulties that can occur when oil is
changed into gas or vice versa, above the critical point.
Non-equilibrium Conditions
The initial conditions obtained by enumeration may not be in
hydrostatic equilibrium, as the phase pressures may not be
consistent with the initial saturations and/or the compositions.
Sometimes, this is what the initial condition should be.
For example, at the end of the history match of a black oil model,
you can start a compositional prediction run to simulate the effect
of compositional changes. In this case, you can obtain the
pressure and saturations from the restart file of the black oil model
and specify the compositions (XMF, YMF) by enumeration. To
achieve thermodynamic equilibrium, fluid compositions can be
specified by NEI, as described above.
Restart
The second method of initialization in ECLIPSE is a restart, and it
can be considered a special case of enumeration. In a restart run,
the initial solutions are read from a restart file that has been
generated by an earlier run. It can restart from any reporting time
step, so long as a restart has been written at that point.
BASE 25 / recorded
(Restart Run)
Time
Figure 1 Restart
Applications of Restart
A restart can be used in several ways:
Equilibration
In most of the simulation models, reservoirs are under initial
conditions in which gas, oil and water are in hydrostatic
equilibrium, and compositions are in thermodynamic equilibrium
(Figure 2) before any well is drilled.
Figure 2 Equilibration
In a model with only gas and water, the oil water contact depth
should be set to be equal to the gas oil contact depth; the oil-water
capillary pressure should be used to define the gas-water capillary
pressure; and oil/gas capillary pressure should be set to zero
EQUIL
--D P OWC Pcow GOC Pcog RSV/PBVD RVVD/PDVD N
7000 4000 7150 0 1* 1* 1* 1* 0 /
EQUIL
--D P OWC Pcow GOC Pcog
3700 4000 7150 0 3500 0 /
Phase Saturations
After the phase pressures are calculated, the phase saturations in
the gas, oil and water zones can be calculated based on the
saturation end points. Figure 4 shows that the connate water
saturation exists in all the three zones.
Pressure
G-O Rel Perm
GOC TZ
SGL SGU
Datum
So = 0.77 OIL ZONE:
Sg = SGL, usually zero
Sw = SWL
Sw = 0.23 So = 1 – SWL – SGL O-W Rel Perm
Kro SWU
TZ
Krw
Gas takes its maximum saturation in the gas cap and the value of
connate gas elsewhere, water takes the maximum water
saturation in the water zone and connate water elsewhere, and oil
saturation is the difference between 1 and the sum of the gas and
water saturations in all the three zones.
Pcow Po Pw
Pcog Pg Po
Similarly for gas, if the gas-oil capillary pressure is less than the
lowest capillary pressure value (corresponding to the connate gas
saturation SGL); the gas saturation is set equal to SGL. If the gas-
oil capillary pressure exceeds the highest capillary pressure value
(corresponding to the highest gas saturation SGU), gas saturation
is set equal to SGU and the oil pressure is adjusted to follow the
gas pressure gradient. The end points mentioned above, SWL,
SGL, SWU, and SGU, are explained in detail in the next lesson.
Multi-point Average
When N>0 is used, the procedures are the same except for the
averaging method; the horizontal cross-section area of the top of
each interval is used as a weighting factor when the arithmetic
averaging is used. In other words, the average saturation of a cell
is equal to the arithmetic average of (top cross section area X
saturation) of all the 2N intervals.
Non-equilibrium Conditions
The reason that non-equilibrium conditions resulted from option 2
or 3 is because the average saturation from the block center
equilibration (N=0) corresponds to the pressure at the center of
the cell. This results in steady state because the calculated
pressure is based on the hydrostatic equilibrium.
RPTSOL
QUIESC /
• Sw1 from block center equilibration
• Sw2 from fine grid equilibration
• (Pcow2-Pcow1) causes flow
To correct the mobile oil in place using the same formula in this
example, the critical oil with water saturation (SOWCR) should be
reset to B/PORV. MOBILE, defined in keyword EQLOPTS, turns on
the mobile fluid in place correction option in ECLIPSE.
The B correction is
Set SOWCR=B/PORV
RUNSPEC
EQLOPTS
‘MOBILE’ /
Threshold Pressure
After the equilibration, each EQLNUM region is in equilibrium state.
But there may be flow across adjacent EQLNUM regions if there is
potential difference between the two regions. In reality, flow may
occur only when the potential difference between the two regions
exceeds a threshold value.
RPTSOL
THPRES /
Such threshold values can be specified to prevent flow between
adjacent EQLNUM regions immediately after the equilibration. This
can be achieved by setting the threshold pressure to default for
item 3 of keyword THPRES.
THPRES
1 2 1* /
/
For gas condensate, the gas oil contact depth should be set to be
equal to the oil water contact depth. Gas oil contact may be
defined within the reservoir so that fluid above the GOC is labeled
as gas and fluid below the GOC is labeled as oil.
• Use EQUIL 10 = 1.
• Use ZMFVD to specify the initial composition variation with
depth.
• Use GOC = OWC to identify the gas condensate field.
• Use GOC within the reservoir to label the fluid as Oil below
GOC or Gas above GOC.
With a Distinct GOC
The second type of fluid changes from gas to oil with a distinct
gas-oil contact as shown in Figure 12. The saturation pressure
changes sharply and the dew point pressure meets the bubble
point pressure at the GOC. The methane content changes very
sharply near the gas oil contact. The gas-oil contact is well-
defined.
Figure 12. In both cases, the datum depth should be set at the gas
oil contact.
When option 2 or 3 is used for a fluid changing from gas to oil with
a distinct GOC, the pressure at the datum depth (= GOC depth in
this case) should be equal to the calculated saturation pressure at
this depth.
Questions
These questions are for discussion and review.
End point scaling can be used for different purposes and can be a
way to reduce the number of input saturation tables if they can be
transformed to a smaller number of generic curves based on
which the original tables can be reproduced with different end
points by scaling.
• sensitivity studies
• matching fluid distribution
• matching water/gas breakthrough
• making the initial solution stable
• effect of composition or temperature on saturation curves
• effect of miscibility
• effect of asphaltene deposition.
One example is that different curves for different rock types may
be normalized into normalized curves in ECLIPSE, with
normalized curves defined in the input table. The cells
corresponding to different types of rocks can be given different
end points, and ECLIPSE can scale the input curves using
different end points to get the curves for each type of rock that will
be used in the simulation.
As shown in Figure 14, the generic curve in red is the input, and
the curve for rock type 1 in brown and the curve for rock type 2 in
blue are obtained by scaling the generic curve using different end
points for the rock types.
End Points
There are 8 saturation end points in the saturation functions that
are used in horizontal end point scaling.
• Connate saturations
• Critical saturations
• Maximum saturations.
The oil phase has two critical saturation end points for scaling:
2-point Scaling
The scaled curves maintain the shape of the input curves but have
different end points, and the maximum and minimum Kr values at
the two end points are maintained. The minimum water relative
permeability point has been moved horizontally with SWCR, while
Normalization: Snorm=(S-Sl)/(Su-Sl).
3-Point Scaling
Krw (1-Sowcr)=
Krwscaled (1-Sowcr)
The scaling will change the shape of the water front, therefore the
oil and water production rates.
During 3-point scaling for the water phase, if the end points are
defined in such a way that (1-SOWCR) is very close to SWU, the
scaled Krw curve can be close to vertical (Figure 21), which can
cause convergence problems. To prevent this, set a limit to the
difference between SWU and (1-SOWCR) using the keyword
SCALELIM.
Kr Vertical Scaling
The relative permeability can be scaled vertically using different Kr
end points. This is required when the maximum Kr must be
adjusted.
where:
Krw
2-point scaling The unscaled curve
The scaled curve KRW
Pc Horizontal Scaling
The initial water saturation in the transition zone is determined by
the oil water capillary pressure curve. Any change in the capillary
pressure affects the initial fluid saturation in the transition zone.
Sometimes, the capillary pressure curves must be adjusted to
match the known initial fluid saturation in the transition zone. The
modification to the capillary pressure curves can be achieved by
end point scaling.
Horizontal scaling for Pcow is done between SWL and SWU. When
SWL is changed, Krow is also changed by the end point scaling. A
different end point from SWLPC can be specified for the capillary
pressure horizontal scaling only. SWLPC does not affect the
scaling of Krow.
Pc Vertical Scaling
Similar to vertical scaling for Kr, vertical scaling for capillary
pressure is applied to capillary pressure curves by multiplying a
ratio of the new Pc end point (PCW or PCG) over the Pc end point
taken from the input table (Figure 25). In addition, the Pc curve
can be scaled based on Leverett J function or user-defined water
saturations.
Composition Effects
For example, the critical oil saturation with gas may depend on the
mole fraction of a heavy component in oil. When the mole fraction
of the heavy component in oil is reduced, SOGCR may be reduced
as oil may be displaced more easily. This is implemented in
compositional models in which the end points are a function of the
molar density of the component, and a component is defined in
keyword EPSCOMP.
Temperature Effects
Miscibility Effects
During these processes, the surface tension between oil and gas
is also changing, which changes saturation end points, such as
the critical saturations. These effects can be simulated using the
miscibility options in compositional models.
where:
.
2. Scale to this end point the relative permeability curves from
the miscible and immiscible tables.
3. Calculate the relative permeability based on the two scaled
relative permeability curves using the weighting factor F:
.
where
F=(σ/σo)N
σo = reference surface tension, can be set by MISCSTR
imm = immiscible
mis = miiscible
N = exponent set by keyword MISCEXP.
When the surface tension is close to 0, the weighting factor F is
close to 0, the calculated relative permeability is close to the
miscible relative permeability. When the surface tension is close
to the reference surface tension, the weighting factor (F)
becomes 1.
The two phase oil relative permeability with water (Krow) and with
gas (Krog) should be equal at the maximum oil saturations since
both cases have the same saturations of three phases: connate
water, connate gas and maximum oil.
NOTE: Any end point not specified explicitly will be taken from
the saturation table.
BOX
1 10 2 5 1 3 /
SWCR
120*0.25 /
ENDBOX
OR
EQUALS
SWCR 0.25 1 10 2 5 1 3 /
/
If an end point is not given a value explicitly, its value is taken from
the saturation table. By default, ECLIPSE writes the endpoints
that have been changed from their original values defined in the
tables to the INIT file. The end points that are taken from the
tables are not written into the INIT file.
For example, KRWX- for cell (2,3,5) is the KRW end point for the
face between cell (2,3,5) and cell (1,3,5). Note that, when
directional and irreversible options are used, Pc end-point scaling
in the equilibration and for the well connections during simulation
still use the non-directional and the reversible end points – the end
points defined by keywords without a hyphen or X/Y/Z at the end.
Please note that only one of the three types end point scaling,
either the static, or the composition dependent, or the temperature
dependent, can be used in the same model.
There are two options in ECLIPSE you can use to improve the
water breakthrough for this case.
In the oil water transition zone, initial water saturation varies from
the connate to the maximum. The oil water capillary pressure
holds the water in place initially. During the development of the
reservoir, the water may move if the phase pressures are
changed.
This limit controls the amount of water that cannot move in the
transition zone initially. By changing this limit, you can change the
Figure 33 shows how this facility works for matching the observed
water saturation defined in SWATINIT. During equilibration, the oil
water capillary pressure (Pcow) is calculated for each cell. The
water saturation corresponding to Pcow – Sw – can be different
from the observed water saturation in SWATINIT.
Additional Notes
• If a cell is given a saturation corresponding to the minimum
capillary pressure, the Pc curve cannot be scaled to honor the
saturation, leaving the Pc curve unscaled.
• If the SWATINIT saturation is less than, or equal to, the
connate saturation for a cell, the capillary pressure is not
scaled to honor SWATINIT.
• The SWATINIT saturation cannot be exactly honored if the
fine grid block equilibration option is used in the EQUIL
keyword.
• The SWATINIT saturation is not honored if the capillary
pressure curve is a constant. The input capillary pressure
curve needs to be monotonically decreasing with increasing
water saturation.
• If the PCW keyword has been used, it is ignored in regions
where SWATINIT is set.
• If the Leverett J-function calculation for the water-oil capillary
pressure has been activated through the JFUNC keyword,
the J-function calculation is ignored in regions where
SWATINIT is set.
The debug file can be either in tabular form, which can be read
directly by opening the file, or in GRAF user data format, which
can be imported into GRAF or ECLIPSE Office.
In ECLIPSE Office, the input and the scaled curves in each cell
can be inspected. In SCAL, the input and scaled curves can also
be displayed.
SGOF
-- Table 1
--Sg Krg Kro Pc
0.00000 0.00000 1.00000 0.00000
0.0400000 0.00000 0.600000 0.200000
0.0800000 0.0146667 0.420000 0.400000
0.100000 0.0220000 0.330000 0.500000
0.180000 0.0844000 0.146000 0.900000
0.200000 0.100000 0.100000 1.00000
0.280000 0.212000 0.0360000 1.40000
0.300000 0.240000 0.0200000 1.50000
0.380000 0.320000 0.00400000 1.90000
0.400000 0.340000 0.00000 2.00000
0.500000 0.420000 0.00000 2.50000
0.580000 0.484000 0.00000 2.90000
0.600000 0.500000 0.00000 3.00000
0.700000 0.812500 0.00000 3.50000
0.780000 1.00000 0.00000 3.90000
/
End Point Scaling
ENDSCALE
NODIR REVERS /
To change the end points that are defined in the tables, you can
define new end points in the PROPS section, as follows:
EQUALS
SWL 0.30 6 10 1 7 1 3 /
SWCR 0.35 /
SWU 1.00 /
SGL 0.00 /
SGCR 0.12 /
SGU 0.70 /
SOWCR 0.25 /
SOGCR 0.42 /
SWCR 0.30 1 5 1 7 1 3 /
/
The 8 saturation end points of all the cells in the box (I=6-10, J=1-
7, K=1-3) will be changed, and the critical water saturation for all
the cells in the box (I=1-5, J=1-7, K=1-3) will be changed. All other
end points will remain the values from the above tables.
SCALECRS
YES / default is NO – 2-point scaling
To write all end points, including those from the input tables to the
INIT file:
FILLEPS
To check the input, scaled end points and scaled saturation tables
for cell (I=10, J=7, K=3), specify:
EPSDEBUG
10 10 7 7 3 3 0 /
The following will be written into the debug
file and includes the unscaled (input) end
--------------------------------------------
WATER/OIL END-POINT SCALING DEBUG FOR CELL ( 10, 7, 3) TABLE 1
Unscaled SWL 0.22000 Scaled 0.300
Unscaled SWLPC 0.22000 Scaled --------
Unscaled SWU 1.00000 Scaled 1.000
Unscaled SOWCR 0.20000 Scaled 0.250
Unscaled SWCR 0.25000 Scaled 0.350
Unscaled KRW 1.00000 Scaled --------
Unscaled KRWR 0.65000 Scaled --------
Unscaled KRO 1.00000 Scaled --------
Unscaled KRORW 0.77500 Scaled --------
Unscaled PCW 7.00000 Scaled --------
--------------------------------------------
---------------------------------------------
GAS/OIL END-POINT SCALING DEBUG FOR CELL ( 10, 7, 3) TABLE 1
Unscaled SGL 0.00000 Scaled 0
Unscaled SGLPC 0.00000 Scaled --------
Unscaled SGU 0.78000 Scaled 0.700
Unscaled SOGCR 0.38000 Scaled 0.420
Unscaled SGCR 0.04000 Scaled 0.120
Unscaled KRG 1.00000 Scaled --------
Unscaled KRGR 0.34000 Scaled --------
Unscaled KRO 1.00000 Scaled --------
Unscaled KRORG 0.60000 Scaled --------
Unscaled PCG 3.90000 Scaled --------
---------------------------------------------
1. Load the .EGRID and the .INIT files into the results viewer.
2. Show a 2D plot by selecting View > 2D.
3. Select the pick function by selecting 2D > pick.
4. Pick a cell from which the scaled curves are to be displayed
by clicking on the cell (2D > slice to select appropriate slice).
5. Open the saturation plot panel by selecting Line Plot >
Saturation Function > ….
6. Select the curves to display, and include both unscaled and
scaled curves.
1. Load the .EGRID and restart files into the results viewer.
2. Show a 2-D plot by selecting View > 2D.
3. Select the restart property to display by selecting 2D >
Property.
4. Select the pick function by selecting 2D > pick.
Without TZONE, the critical water saturation is well above the initial
water saturation, while with TZONE, the critical water saturation is
the same as the initial water saturation up to a limit (0.35).
Questions
These questions are for discussion and review.
However, the initial water above the oil water contact will never
move because it is connate water. The oil relative permeability
with water (Krow) is re-scaled based on the new SWL (the
maximum oil saturation is 1-SWL-SGL). The altered oil relative
permeability would change the oil mobility.
If you set SWL to SWATi for this cell, the Pc curve for this cell will
be re-scaled to the curve in blue. The water saturation
corresponding to the same Pcow on the scaled Pc curve at the
blue spot becomes SWATi in blue, which is larger than the initial
water saturation (the red SWATi).
If all the SWL is set to the observed SWATi (shown in red spots in
Figure 41) for all the cells, the Pc curves in all the cells are scaled
(from red to blue), and the resultant water saturation is moved to
the right (from red spots to blue spots). Obviously, the observed
water saturation is not ‘honored.’ In this case, the water in place
obtained from the equilibration is much larger than the observed.
1. Use the J function or the height above the free water level
(HAFWL) function to calculate the water saturation in the fine
geological model.
Pc ( Sw ) k
J ( Sw )
cos
Question
What are the commonly used approaches for matching the initial
water saturation? What are their pros and cons?
You have been provided with a black oil model INIT.DATA and its
INCLUDE files, as well as a compositional model OPT1.DATA in
the directory /Exercises/Initialization. This exercise gives you
practice in initialization based on the material presented in this
module.
For convenience, the names of the data sets you will generate are
suggested in brackets, such as (SUGGESTED_NAME.DATA).
Part 1: Equilibration
1. Work out how the model (INIT.DATA) is initialized.
• What method is used to initialize the model?
• What data have been used in the initialization?
• How is the solution gas oil ratio defined?
2. Run the model and answer these questions:
• What are the initial oil, gas and water in place? What is the
initial mobile oil in place?
• Is the model in equilibrium? Is the pressure (FPR, RPR)
changing with time and is there any flow between the fault
blocks (RGFT), even though there are no open wells?
Why?
You have been provided with a base model BASE.DATA and all
its INCLUDE files in the directory /Exercises/Endpointscaling.
Practice end point scaling based on the information you learned in
this module.
Review Questions
• What are the initialization methods available in ECLIPSE? In
what circumstances should they be applied?
• How many ways can the saturation function curves be
changed?
• If problems in the simulation are caused by saturation
functions, are the input curves or the scaled curves causing
the problems?
• Why is that the initial water saturation cannot be observed if
setting the connate water saturation to the known initial water
saturation when the oil-water capillary pressure is not zero?
Summary
In this module, you learned about the purpose, methodology,
implementation, and application of the workflow for:
• methods of initialization
• end point scaling
• honoring the observed initial water saturations.
NOTES
At the bottom level of the multi-hierarchy tree of the field are the
producers and injector wells with individual targets, limits,
economic limits and other controls imposed with keywords such
as WCONPROD, WECON, WCONINJE, and more.
Learning Objectives
After completing this module, you will know how to:
Child Parent
‘GR-A1’‘ PLAT-A’ /
‘GR-A2’‘ PLAT-A’ /
‘GR-A3’ ‘PLAT-B’ /
‘GR-A4’‘ PLAT-B’ /
NOTE: ECLIPSE 300 can have any number of levels in the
hierarchy, but group controls and guide rates can be
applied only up to a maximum of 4 levels down any
branch of the hierarchy, including the FIELD.
PLAT-A PLAT-B
GR-S1 GR-S2
When the wells are included (on levels 3 and 4), the hierarchy has
five levels in total.
If, subsequently, the well was able to produce oil at a rate of 1,000
stb/day or more (resulting for example from stimulation of the well
or the opening of an extra connection), the control mode
automatically switches back to the original target oil production
rate.
You can do nothing, which is the default option, or you can choose
to do one of the following:
If the guide rate phase in Item 10 differs from the phase under
control, the guide rate is translated into a guide rate for the
controlled phase using the group’s production ratios at the
beginning of each time step.
NOTE: The well guide rates are set by default equal to the
wells’ production potentials, but can be specified directly
by using the keyword WGRUPCON.
where
For example, a field has an oil rate target of 100,000 stb/day and
platforms PLAT-A and PLAT-B are required to produce equal
quantities of liquid. In this instance, PLAT-A and PLAT-B should
be given equal guide rates for the liquid phase.
The liquid guide rates are translated into oil guide rates by
multiplying them by each platform’s oil-liquid ratio from the
previous time step. Both platforms are then given oil rate targets in
proportion to their oil guide rates and placed under control from
the higher (field) level.
Scenario 1
• PLAT-A has an oil target rate of 50,000 stb/day.
• GR-A1 and GR-A2 have equal oil guide rates.
• GR-A1 has a liquid target rate of 30,000 stb/day.
The calculated oil rate shared by GR-A1 is 24,000 stb/day, based
on the group LRAT target and the oil-liquid ratio from the previous
time step.
Scenario 2
• PLAT-A oil target is reduced to 40,000 stb/day.
• GR-A1 oil rate will be 20,000 stb/day.
• GR-A1 and GR-A2 are now under oil rate control from PLAT-
A, and GR-A1 cannot meet its liquid target of 30,000 stb/day.
Scenario 3
GR-A1 is declared unavailable for control at a higher level. In this
instance, GR-A1 will produce according to its own target of 30,000
stb/day of liquid (item 8=NO in GCONPROD). Only GR-A2 is under
control from PLAT-A.
Prioritization Option
The prioritization option is an alternative means of applying
production rate limits to groups instead of the guide rate method.
In the prioritization option, wells are turned on in decreasing order
of priority, the well with the highest priority flowing first, until a
group production rate limit is exceeded.
The priority number for each well is calculated from its potentials
at regular intervals, according to a general formula with user-
defined coefficients. The keyword PRIORITY is used to select the
prioritization option and to set the coefficients of the priority
equation.
The equation allows the priority to be set equal to, for example,
the potential oil rate, or the reciprocal of the potential gas rate, or
the reciprocal of the water cut. Individual wells may also have their
(A+BQo+CQw-DQg)/(E+FQo+GQw+HQg)
The group production rate limits and actions must be set using the
keyword GCONPRI, and not GCONPROD, as in the guide rate
method.
Secondary Priority
In ECLIPSE Black Oil, the second priority equation may be used
instead of the first equation when prioritizing wells to cut back
production to obey specific rate limits.
For example, if a group gas rate limit is exceeded, you may wish
to close wells with a high GOR while, if a water rate limit is
exceeded, you may wish to close wells with a high water cut.
If two or more group rate limits are exceeded which use different
priority formulae, the lowest priority well is selected according to
the formula appropriate to the limit that is exceeded by the
Among other things, this means that no groups can use the guide
rate method if the field has a prioritization rate limit.
When the two group control strategies are mixed, the well rates
are allocated according to the following method.
If the group (or field) water cut, gas-oil ratio or water-gas ratio
exceeds a maximum value, the choice of workover options
described earlier for wells will be performed on successive worst-
offending wells in the group (or field). The economic limit values
are set using keyword GECON.
As with the well economic limits, the remedial actions for the
group and field economic limits are performed at the end of the
time step in which they were broken. However, if a limit is broken
by proportionately more than the tolerance fraction specified with
keyword WLIMTOL, the time step is repeated after the action has
been taken.
Questions
These questions are for discussion and review.
Groups, and the field as a whole, can be given targets and limits
which govern the injection rate of each phase. The injection
controls, set using the keyword GCONINJE, can be applied
independently of any production controls the group may have.
The third control mode gives the group a surface injection rate
target equal to its production rate of the phase (or alternatively the
production rate of another named group) multiplied by the user-
specified re-injection fraction.
If the group has a target set for reservoir volume injection rate or
voidage replacement fraction for a particular phase, that phase is
designated the ‘top-up’ phase for the run. It is used to top up the
total group injection rate to the required target. Its injection target
depends on the injection rates of other phases within the group
and, therefore, the ‘top-up’ phase must have its injection controls
handled last of all.
There can be only one ‘top-up’ phase at any given time in the
simulation; different groups cannot have different ‘top-up’ phases.
An example application of injection control is for a platform to re-
inject all its available gas (that is, produced gas minus gas
consumed for power) and to inject water so that the water and gas
injection together replaces the platform’s production voidage.
Water is the ‘top-up’ phase here.
One option sets them equal to the groups voidage production rate,
while the other option (available only to the ‘top-up’ phase) sets
them equal to the groups net voidage: the production voidage
minus the reservoir volume injection rate in the other phases.
Question
What type of injection control could be used with the GCONINJE
keyword?
For the group targets to be met exactly, the flow targets of the
wells under group control must be re-calculated at every Newton
iteration. When the well flow targets change at each iteration, the
convergence rate of the iterations is reduced. This is because the
Jacobian matrix calculation does not include the terms
representing the mutual dependency of the well rates.
When a group cannot achieve its target rate of the required phase,
ECLIPSE scans the drilling queue for a suitable well to open.
The time taken for each well to be drilled can be set individually
with keyword WDRILTIM, and the appropriate rig is not able to drill
any other wells for this duration. The drilling of a well is postponed
if all its available drilling rigs are already occupied until the end of
the time step. It is drilled during the time step in which a rig
becomes available.
When a group cannot achieve its target rate of the required phase
ECLIPSE, examines each open production well in turn, rejecting
the well if:
This scheme allows you to dictate the order in which the new
connections are opened in any given well (for example, from the
bottom up). However, ECLIPSE decides for itself which well to re-
perforate, on the basis of the combined productivity of the
connections remaining on AUTO.
Note that the procedure does not necessarily work over the ‘best’
connection each time. Consider a well whose first connection on
AUTO is in a layer with poor mobility, but which has additional
connections on AUTO in highly productive layers.
The artificial lift quantity (ALQ) is another variable you can use to
incorporate an additional lookup parameter, such as the level of
artificial lift.
When a group cannot achieve its target rate of the required phase,
ECLIPSE examines each open production well in turn, rejecting
the well if it:
Note that wells can also be made to switch to their secondary VFP
tables if their production rate falls below a specified value
(keyword WLIFT item 2), or if their water cut or gas-liquid ratio
exceeds a specified limit (keyword WLIFT items 7 and 9), or if the
well dies under THP control.
When a group cannot achieve its target rate of the required phase,
ECLIPSE examines each open production well in turn, rejecting
the well if:
The well with the highest estimated increase will have its ALQ
value increased by the next increment. If no increments are
specified for the well, or if its next increment would cross the
secondary ALQ value, the ALQ will be increased to its secondary
value. The lift switching process is treated as instantaneous, and
there is no limit on the rate at which wells can be switched.
Activating Compressors
This option is only available if the Extended Network model is in
use, as this model includes a special type of compressor that is
turned on automatically when a nominated group fails to meet its
production rate target. These compressors are defined with the
keyword NETCOMPA, and each compressor is located in a
specified branch of the network, its operation is modeled by
changing the ALQ value used to look up the VFP table associated
with the branch.
The group gas consumption and import rates are set with the
keyword GCONSUMP. The sales gas production rate is controlled
by re-injecting the surplus gas not required for sale. Sales gas
control can be applied independently of any other production
controls on the group or field, provided there is enough injection
capacity to inject the surplus gas.
The sales target may not be met exactly, however, because the
production rate calculation uses the injection rate from the
previous iteration, and the well rates will not be updated after the
first NUPCOL iterations of each time step.
The MAXR option will overwrite the group gas production rate limit
with a value equal to the sales gas target plus the injection rate
plus any gas consumption minus any import rate, while the group
is operating on gas production rate control. Any user-defined limit
on this quantity will be erased.
The RATE and MAXR options require guide rate group control;
they are not allowed if prioritization (keyword GCONPRI) is used to
control the group/field’s production.
If, on the other hand, the group or field is not producing enough
gas to fulfill its sales requirement, corrective action will be taken at
the end of the time step to increase its gas production rate, with
two provisions:
For example, as new wells are drilled, the target field rates
change; wells are converted from producer to injector, new
platforms and manifolds are added, and so on. Development
strategies also apply the same constraint to many wells, using
well folders, or different values of a particular constraint to
individual wells.
Groups are used to tell the simulator how to control many wells at
a time and, often, a group will represent a physical structure in the
field, as discussed during the course.
Questions
These questions are for discussion and review.
• What kind of actions can you take if the group target is not
met?
• When does ECLIPSE open a well in a drilling queue?
• EQUAL_GR.DATA
• ACTNUM_V1.GRDECL
• SNARK_GRID.GRDECL
• SNARK_PVT.INC
• SNARK_SCAL.RCP
• SNARK_SOL.INC
• SUMMARY.INC
• EQUAL_GR.SCH
This is a Black Oil model with dimensions of 24 x 25 x 12 with a
simulation that began January 1, 2005. Completion data and
group hierarchy are also provided.
For the group WEST, the water production rate must have a
maximum rate of 4,000 stb/day.
For the group EAST, set a guide rate of 4 applied to the oil
phase.
For the group WEST, set a guide rate of 1 applied to the oil
phase.
b. For the group WEST, the water production rate must have
a maximum rate of 4000 stb/day.
If is this limit is exceeded, shut the worst offending
connection in the most offending well.
c. For the group EAST, set a guide rate of 4 applied to the oil
phase.
d. For the group WEST, set a guide rate of 1 applied to the
oil phase.
6. A voidage replacement scheme will be applied for groups
EAST and WEST. Set group injection control such as each
injects 95% of the group’s voidage production.
Part 3: Comparison
1. Open the summary files of the generated cases in Petrel or
ECLIPSE Office.
2. Plot results for oil production rate at the field level.
3. Plot results for oil production rate for the groups WEST and
EAST.
4. Plot results for oil production for all the producers.
5. Plot results for water injection rate at the field level.
6. Plot results for water injection rate for the groups WEST and
EAST.
7. Compare results with your colleagues and discuss about the
effect of using constant and variable guide rate as a control.
Review Questions
• Which keyword is used for production control at group level?
• Which keyword is used for injection control at group level?
• Is it possible to mix guide rate control and prioritization?
• Which keyword is used to define a multi-level hierarchy tree
of the field?
• In the absence of production control at the group level, how
is the production distributed along the wells that belong to the
same group?
Summary
In this module, you learned about:
NOTES
NOTES
Learning Objectives
After completing this module, you will understand the purpose of
UDQs and know how to:
The well P1 is open, and you would like it to produce 4,000 bpd of
oil (but no more). If the water production does not exceed 2,000
bpd and the BHP does not drop below 3,000 psia, ECLIPSE will
try to produce 4,000 bpd of oil. However, if P1 produces more
water than the limit of 2,000 bpd, P1 will switch to a water rate
control of 2,000 bpd and produce less than 4,000 bpd of oil.
In the example in Figure 56, P1 starts under oil rate control (the
green line).
As the well produces more oil, the blue line showing the water cut
rises and the BHP (shown by black *) drops. After a while, the
BHP reaches its lower limit and P1 switches to BHP control and
the green line showing the oil production drops. The water
production initially drops by a small amount, then increases.
Questions
These questions are for discussion and review.
You can also use a wildcard asterisk (*) to specify multiple wells
for which this keyword will apply. For example, 'P*' means all the
wells with names that begin with the letter P,
WCONPROD
--nm status control Oil-rate W-Limit BHP-limit
'P*' OPEN ORAT 4000 2000 3* 3000 /
while 'WELL*' means all the wells with names beginning with the
letters WELL.
A well list is a more powerful way of defining the names of all the
wells on which you want the keyword to have an effect. A well list
begins with an asterisk (*), such as '*EAST.'
WCONPROD
--nm status control Oil-rate W-Limit BHP-limit
'*EAST' OPEN ORAT 4000 2000 3* 3000 /
In this case, the (*) as the first character does NOT mean a
wildcard; instead, it means that 'EAST' is a list of well names. This
list must be predefined using the WLIST keyword:
WLIST
'*EAST' NEW 'WELL_AD_3' 'B5' 'WELL_FX8' 'INJ2' /
In the example, you created a new well list named '*EAST' that
contains four wells named WELL_AD_3, B5, WELL_FX8 and
INJ2. You can define more than one list within one WLIST
keyword:
WLIST
-- name status names-of-wells-in-the-list
'*EAST' NEW 'P1' 'B3' 'B4' 'AD3' 'PROD2' /
'*WEST' NEW 'WELL_3' 'B5' 'WELL_FX8' /
'*NORTH' NEW 'WELL_A*' 'B6' 'WELL_FX9' 'INJ2'
/
In ECLIPSE 300, combined rates, totals and ratios for all wells in
a well list can be written in the SUMMARY file. Use the relevant
group SUMMARY keyword followed by the well list name.
For example,
WLISTDYN
'*HIGHGOR' '1*' WGOR > 100 /
/
creates a list of all wells whose GOR is greater than 100. The
wells in this list can change from time step to time step, as the
GOR of each well changes.
For example:
1. Choose three wells from group GRP1 with the highest water
cut.
WLISTDYN
'*HIGHWCT' 'GRP1' WWCT HIGHEST 3 /
/
2. Cut back the oil rate of the same three wells.
WTMULT
'*HIGHWCT' ORAT 0.95 /
/
You can disable the automatic updating of a dynamic well list at
the end of every time step by setting item 2 of this keyword to OFF
and leaving items 3 to 5 blank. The content of this well list become
static. To reverse this action, set item 2 to ON and leave items 3 to
5 blank.
Dynamic lists allow you to control wells in ways that are not
possible using conventional well keywords. For example, suppose
you want to control wells with a GOR greater than 100. You can
use the WECON keyword to say that “if the GOR of any well is
greater than 100, take one of the following actions”:
You must add the WCONPROD keyword every time you wished to
take that action.
Questions
These questions are for discussion and review.
if
(condition)
then
(do something)
if
(condition)
then
You can set a condition as simple as (WGOR > 6), but it could be
much more complex based on many SUMMARY quantities. The
ACTION keywords mark the start of a set of SCHEDULE section
keywords that are stored for later processing when a specified
condition is satisfied.
1. As ECLIPSE reads only the first 8 characters of a keyword, it is usual and acceptable
to type ENDACTIO instead of ENDACTION.
2. If you use the ACTIONX keyword, you can specify how many times you want the action to be
performed.
You can nest actions by including the definition of the inner action
within the keyword set of the ‘outer’ action (that is before its
ENDACTIO keyword). This offers great flexibility, but you must
exercise care.
ACTION
ACT1 FGOR > 3.0/
WELOPEN
PROD5 OPEN/
/
WELTARG
'P*' ORAT 5000/
/
ENDACTIO
The name of the ACTION is ACT1, and the condition is that
FGOR > 3.0
If the condition is true, well PROD5 will be opened and the oil rate
for all well whose names start with the letter 'P' will have their oil
rate set to 5,000.
IF
THEN
(actions).
Conditions may be set on the day, month and year the simulation
has reached. These conditions may be used to model the
seasonal availability of workover and drilling rigs, or to prevent the
ACTION from being triggered before or after a specific date.
The action will be repeated at the end of each time step if the
condition set is true.
Example 2
The action named ACT2 opens well PR-A5 when the combined
water cut of all the wells in list *LIST1 exceeds 0.7, and when the
water production rate of list *LIST1 exceeds the water production
rate of either list *LIST2 or *LIST3. Action ACT2 is performed only
once.
ACTIONX
ACT2 1 /
GWCT '*LIST1' > 0.7 AND /
Example 3
Dynamic lists can be used with ACTION keywords to define a list
of wells that will be controlled together.
WLISTDYN
'*HIGHWCT' '*' WWCT > 0.8 /
/
ACTIONX
WORKOVER 10000 /
MNTH .GE. MAR AND /
MNTH .LE. OCT AND /
GMWL '*HIGHWCT' .GE. 4 /
/
WECON
'*HIGHWCT' 2* 0.75 2* CON /
/
ACTIONX
WECONOFF 1 /
MNTH .GT. OCT /
/
WECON
'*' 2* 1.0 2* CON /
/
ENDACTIO
ENDACTIO
The dynamic well list *HIGHWCT contains all wells that have a
water cut exceeding 0.8. In any year between March and October,
the action WORKOVER is triggered if the list *HIGHWCT contains
more than four wells. This action sets an economic limit on the
wells in the *HIGHWCT list so they will be worked over.
Example 4
The action named DELAY opens well PR-A5 when the simulation
has advanced past September 31, 2020, and the FIELD water
cut exceeds 0.8.
ACTIONX
DELAY 1 /
GWCT 'FIELD' > 0.8 AND /
YEAR > 2020 /
/
WELOPEN
PR-A5 OPEN /
/
ENDACTIO
Example 5
The DELAYACT option allows you to delay the processing of the
keywords until after another action has been triggered.
The following example stops the run 30 days after the field GOR >
6:
ACTION
HIGHGOR FGOR > 6 /
DELAYACT
SHUTDOWN HIGHGOR 30 /
END
ENDACTIO
ENDACTIO
Questions
These questions are for discussion and review.
The first use of UDQs as new summary quantities allows you to:
UDQ
DEFINE WUSUM (WOPR P1 + WOPR P2) /
/
You could create and plot new summary quantities, such as the
WUSUM above, using Excel, Petrel RE, or ECLIPSE Office. The
advantage of UDQs is that they can be used within triggering
ACTION keywords and as arguments in well and group keywords.
These are the relevant UDQ keywords in the sections of the data
file.
RUNSPEC
SUMMARY
WUSUM
-- output the UDQ to the summary file
/
SCHEDULE
-- define the UDQ
UDQ
DEFINE WUSUM WOPR P1 + WOPR P2 /
UNITS WUSUM STBD /
/
Syntax of a UDQ
A UDQ has three arguments:
The third argument defines the value of the UDQ and depends on
the first argument:
Many of these functions have the expected definition, and a full list
of definitions can be found in the ECLIPSE Reference Manual.
If you wish to operate on well names, you can choose either the
union or the intersection of well names. Figure 60 shows
examples that should clarify binary intersection and union. The
examples use a model with four wells – P11, P12, P32 and P33.
Solution
UDQ
-- set up economic parameters
ASSIGN FU_OPRIC 50.0 / OIL PRICE
ASSIGN FU_INRAT 0.000136 / Discount RATE ~ 5% pa
ASSIGN FU_RCOST 0.1e6 / DAILY RUNNING COST
ASSIGN FU_NPV -10.0e6 / INITIAL SETUP COST
Results
WOPR WOPR
TIME STB/DAY STB/DAY GUSUM
DAYS PROD1 PROD2 STB/DG
1.000000 12000.00 0 12000.00
3.000000 12000.00 0 12000.00
7.000000 12000.00 0 12000.00
15.00000 12000.00 0 12000.00
30.00000 12000.00 7684.821 19684.82
45.00000 12000.00 7837.560 19837.56
60.00000 12000.00 7985.738 19985.74
75.00000 11573.71 7951.786 19525.49
96.00000 11795.39 8000.000 19795.39
130.0000 11681.08 8000.000 19681.09
180.0000 11640.65 8000.000 19640.65
230.0000 11637.02 8000.000 19637.02
280.0000 11653.08 8000.000 19653.08
330.0000 11677.54 6567.120 18244.66
380.0000 11701.71 8000.000 19701.71
430.0000 11721.34 0 11721.34
465.0000 11738.99 0 11738.99
500.0000 11750.77 0 11750.77
540.0000 11756.93 0 11756.93
590.0000 11765.27 0 11765.27
620.0000 11777.16 0 11777.16
650.0000 11776.54 0 11776.54
Results
WOPR
TIME STB/DAY GUSUM FUPR
DAYS PROD2 STB/DG
1.000000 0 12000.00 0
3.000000 0 12000.00 0
7.000000 0 12000.00 0
15.00000 0 12000.00 0
30.00000 7684.821 19684.82 0
45.00000 7837.560 19837.56 0
60.00000 7985.738 19985.74 0
75.00000 7951.786 19525.49 0
96.00000 8000.000 19795.39 0
130.0000 8000.000 19681.09 130.0000
180.0000 8000.000 19640.65 180.0000
230.0000 8000.000 19637.02 230.0000
280.0000 8000.000 19653.08 280.0000
330.0000 6567.120 18244.66 330.0000
380.0000 8000.000 19701.71 330.0000
430.0000 0 11721.34 430.0000
465.0000 0 11738.99 430.0000
500.0000 0 11750.77 430.0000
540.0000 0 11756.93 430.0000
590.0000 0 11765.27 430.0000
620.0000 0 11777.16 430.0000
650.0000 0 11776.54 430.0000
Results
Solution
UDQ
DEFINE FUWORSTW MAX(WZMF_1) /
/
ACTIONX
ACT1 10000 /
--if field molar percentage of H2S (1) > 0.2
--then the well with the worst rate will be
--cut back
FZMF_1 > 0.2 AND /
WZMF_1 '*' = FUWORSTW /
/
--reduce the gas rate by a 0.8 factor
WTMULT
'?' GRAT 0.8 /
/
ENDACTIO
Questions
These questions are for discussion and review.
• GECON • WAPI
• WALKALIN • WPOLYMER
• WELDRAW • WSOLVENT
• WFOAM • WTRACER
• WSALT • WTADD
• WSURFACT • WTMULT
UDQ
ASSIGN FU_RAT1 100000 /
ASSIGN FU_RAT2 80000 /
DEFINE FU_RAT3 MIN(WWIR) /
DEFINE FU_RAT4 MAX(WWIR) /
DEFINE FU_RAT5 SUM(WWIR) /
DEFINE FU_VRAT1 MIN(WVIR) /
DEFINE FU_VRAT2 MAX(WVIR) /
DEFINE FU_BHP1 WBHP 'I19' /
/
WCONINJE
'INJ2*' WAT OPEN RATE FU_RAT1 /
'INJ1*' WAT OPEN RATE FU_RAT2 /
'INJ9' WAT OPEN RATE FU_RAT4 /
'INJ7*' WAT OPEN RESV 1* FU_VRAT2 /
'INJ3*' WAT OPEN BHP 2* FU_BHP1 /
/
Examples of UDA
The examples that follow deal with adjusting fluid production
limits.
UDQ
DEFINE GUINJ GWIR FIELD /
DEFINE GUWPRL 100000 - GUINJ /
/
GCONPROD
-- GROUP MODE QOMAX QWMAX QGMAX QLMAX ACTION
'P3' 'ORAT' 12345 GUWPRL 1* 1* 'RATE'/
/
UDA/UDQ Implementation
UDQ
DEFINE WUWW (1+SUM(WUTPR))/(1+WUTPR) /
DEFINE WUWR 9000*WUWW/SUM(WUWW) /
/
-- WUTPR is a UDQ with tracer production
rates inserted into the elements
corresponding to the injectors. The injectors
are controlled using a UDA
WCONINJE
'I*' WAT OPEN RATE WUWR /
Solution:
UDQ
DEFINE FUINJ_MAX 10000+FWPR /
/
GCONINJE
-- GROUP PHASE CONTROL TARGET
FIELD WATER RATE FUINJ_MAX /
/
NOTE: The UDA is calculated at the end of the time step, so it
would be better to set the maximum using a value
slightly below the actual maximum.
Choose 9,500 bpd instead of 10,000 bpd and rerun the exercise.
Questions
These questions are for discussion and review.
100 55 67 82 93
Water
Rate
1000 38 48 58 68
10000 14 25 35 40
UDT
'TUCATH' 2 /
'LC' 4000 6000 8000 10000 /
'LC' 1 100 1000 10000 /
64 83 95 107 /
55 67 82 93 /
38 48 58 68 /
14 25 35 40 /
/
4. Define a UDQ to look-up the value from this table that can be
used in an ACTION keyword.
UDQ
DEFINE WUPRICE TUCATH[WOPR,WWPR] /
/
Result
WU_TAB=9.
Questions
These questions are for discussion and review.
Review Questions
• What do the initials UDQs, UDAs and UDTs represent?
• What are some of the advantages and disadvantages of
using well lists, ACTION keywords, UDQs, UDAs and UDTs?
• How many ways can you define well controls that limit
production based on the water cut of the well?
Summary
In this module, you learned about the purpose, methodology and
workflow of:
• Well lists
• ACTION keywords
• UDQs, UDA and UDTs
NOTES
NOTES
Learning Objectives
After completing this module, you will be able to:
The flow within the wellbore itself is modeled in two stages, flow
from the well connections to a reference depth (usually still in the
vicinity of those connections) and flow from the reference depth to
the surface. In ECLIPSE, this last portion is modeled by
interpolating pre-calculated vertical flow performance tables.
VFP Tables
The pressure loss from the well bottomhole reference depth to the
tubing head is calculated by looking up the Vertical Flow
Performance (VFP) tables. A VFP table is multi-dimensional and
provides BHP values versus flow rates, tubing head pressures,
water flow fractions, gas flow fractions, and artificial lift quantities.
BHP versus:
• FLO
• THP
• WFR
• GFR
• ALQ
For a producer, the VFP table is defined in keyword VFPPROD.
VFPINJ is used for the injector VFP tables. An example of
VFPPROP is shown in the example that follows.
• The first record defines the table number that will be referred
to in WCONPROD, the bottomhole pressure reference depth
used in the table, and the definitions of flow rates, water flow
fraction, gas flow fraction and the artificial quantity (ALQ).
• Record 2 defines the values of flow rates. Record 3 defines
the values of tubing head pressures.
• Record 4 defines the values of the water fractions. Record 5
defines the gas flow fractions. Record 6 defines the values of
the artificial quantities (ALQs).
• From record 7 onwards, a matrix indicating the order of the last
4 types (records 3-6) of data, followed by the bottomhole
pressures corresponding to the flow rates defined in record 2.
• For example, record 7 defines BHPs corresponding to the
first THP, the first water fraction, the first gas fraction, the first
ALQ, and those flow rates defined in record 2.
VFPPROD
--No. Datum Q Wfr Gfr Alq
1 7000 ‘LIQ’ ‘WCT’ ‘GOR’ ‘ ‘ /
2.0e3 5.0e3 1.0e4 1.7 e4 3.0e4 /à Qs
2.0e2 5.0e2 1.0e3 / à THPs
0.0e0 2.0e-1 4.0e-1 7.0e-1 9.0e-1/à Wfrac
7.7e-1 1.0e0 1.5e0 / à Gfrac
0.0e0 5.0e-1 / à ALQ
1 1 1 1 8.82e2 7.76e2 1.30e3 2.19e3 4.2e3 /à T1 W1 G1 A1 BHP@Q1, BHP@Q2 …
2 1 1 1 1.26e3 1.17e3 1.55e3 2.53e3 4.27e3 /à T2 W1 G1 A1 BHP@Q1, BHP@Q2
…
…….
The BHP reference depth in the VFP table (item 2 of record 1) can
be different from that defined in the well (item 5 of keyword
WELSPECS).
Pthp at Tubing
Pump or
Head
compressor
Frictional pressure drop and
Acceleration pressure drop
Hydrostatic
correction
from BHP
datum to
VFP datum
ll
Hydrostatic we
l to
correction Ce
l wn
wdo
from BHP a
dr
datum to
connection
The VFP curves, together with the well model, are used to
calculate the flow rate, the bottomhole pressure and the tubing
head pressure.
k – rock permeability
ro – drainage radius
rw – wellbore radius
S – skin factor
1. The derivation of this expression may be found in most reservoir engineering texts,
such as Dake (1978).
Before you can apply this expression in your well model, however,
it is important to realize that, in general, a single well will connect
to multiple grid blocks, not just a single one.
The magnitude of the correction term will be different for each well
connection, and will take into account the pressure difference in
the wellbore between the reference point and the connection.
The total flow rate of the well is the sum of the flows coming from
each connection (Figure 65).
where:
- Mobility
- Pressure drop
– constant (2)
Mobility
The second grouped term in the expression
The relative permeability terms are taken either form the grid
block saturation table or by means of a separate user-specified
table (COMPDAT, item 7).
Pressure Drop
The final term to note is the pressure drop, p. The term is used to
relate well connection pressure to bottomhole pressure:
Δpcon= pbhp+ Δp
where:
o,w,g,surf – surface density of oil, water and gas
qfo,g – surface flow rate of free oil and gas
qw – surface flow rate of water
Rs – solution gas-oil ratio
Rv – vaporized oil-gas ratio
Bo,w,g – formation volume factors of oil, water and gas
For even trivial horizontal well trajectories, the default method for
ordering connections may not be correct. In addition, neither a
user-specified order (keyword COMPORD) nor an order based on
connection depth may be correct, as shown in Figure 73.
• Segment pressure Pn
• Total fluid flow rate in the segment GTn
• Flowing fraction of water Fwn
• Flowing fraction of gas Fgn.
Like the standard well model, this calculation is performed
implicitly but, because the number of variables has increased, the
multi-segment well model is generally more computationally
expensive than the standard well model.
A flow path defines the connection between a node and the node
of its parent segment. When the multi-segment well model is
employed, you must define the physical position of each node,
together with some information about the flow characteristics of
each flow path:
• length
• diameter
• roughness
• volume
• area.
The gathering tree hierarchy means that, in general, a segment
may have multiple inlets, as shown in Figure 78. These may be
other segments but can also be grid blocks. The flow rate of a
specific phase along a segment’s flow path, Qpn, is the sum of the
flow rates coming into the segments minus any mass
accumulation that may occur.
As shown earlier, the standard well model passes the well through
the grid cell centers, resulting in spurious fluctuations in the
pressure along the well. Figure 80 shows the results for the multi-
segment well model. It is able to accurately reproduce a constant
pressure profile because it is not necessary for the nodal depths
correspond to the grid cell centers.
In the next lesson, you will see how the multi-segment well model
allows friction and acceleration components to be added to the
pressure drop. Figure 81 shows the pressure loss due to friction
for your simple example, using a wall roughness of 0.75 inches
and a homogeneous flow model.
Questions
These questions are for discussion and review.
L 2
p fric 2 f v
D
The acceleration pressure drop is calculated from the difference of
velocity heads into and out of each segment.
0.5C f w2
Hv
A2
vg = Coj + vd
where
Questions
These questions are for discussion and review.
vc 2
pcons cu 2
2Cv
where
pcons = pressure drop across the constriction
= fluid density
Cv = valve constant
Downhole Separators
Another facility capable of being simulated with the multi-segment
well model is downhole separation. This involves downhole
separation of a production stream and redirection of the
undesirable phase (water or gas) to an off-take lateral for re-
injection into the formation.
Figure 89 shows how the separator may be setup using the multi-
segment well model. It requires a gathering tree hierarchy, so the
separator segment must have two inlets (and not two outlets).
If the resulting off-take flow rate is too high, such as higher than
the flow rate of water into the separator, oil will be re-injected into
the formation. Alternatively, if the resulting flow rate is too low,
excessive water will be produced at the well head.
Questions
These questions are for discussion and review.
When the flow is through the tubing, the internal diameter (ID) is
that of the tubing.
where
- Area of annulus
L+ l - Wetted perimeter
- Casing circumference
- Tubing circumference:
COMPSEGS
--Wname
‘PROD’ /
-- I J K Brn Ls Le Dir End
2 5 2 2 40 1* ‘X’ 5 / Top branch
2 5 5 3 100 1* ‘X’ 5 / Middle branch
2 5 8 4 170 360 ‘X’ 5 / Bottom branch, partially perforated
/
Convergence Issues
The multi-segment well model involves four variables for each
segment compared to three variables for the entire well in the
default ‘standard’ well model. The increased complexity often
means that wells using the multi-segment well model are a little
more difficult to converge than wells using the ‘standard’ model.
Requesting Output
Output related to multi-segment wells is available in several
formats:
Questions
These questions are for discussion and review.
7. In the lower part of the dialog, click Import case into the
project directory and click OK.
8. If a dialog requesting change of units appears, click
CHANGE.
9. Repeat the procedure for the other cases.
Visualizing 2D Results
To visualize 2D results:
Specifications Value
TOPOLOGY
Depth of top segment 5,100 ft
Maximum segments 12
Pressure drop components Hydrostatic. Friction
and Acceleration
Phase slip included NO
TVD of segments 2 -11 (horizontal well) 5,125 ft (horizontal
well)
Length segment 2 50 ft
Length segment 3 80 ft
Length segment 11 70 ft
Length of remaining segments 100 ft
Tubing internal diameter 0.3 ft
Tubing absolute roughness 0.002 ft
COMPLETIONS
Length of completion 1 80 ft
Length of completion 10 50 ft
Length of remaining completions 100 ft
In any event, the choke design in this example always restricts the
flow upstream of the first segment to some degree. The result is a
reduction of productivity of upstream segments which, in turn,
reduces the gas cusping, extending the well life.
6. Look at the pressure and oil rate from the connections along
the wellbore in Petrel to see the effect of the choke.
7. Change the choke diameter to 8/64 and repeat the
comparison to MSW2.DATA.
8. Comment on the results.
14. Double-click the Well Segmentation set in the Input tab and
click the Setting tab to display the Node and Branch
Numbering.
8. Under Reports (PRT), change the option for Wells from Well
flows to Well and connection flows.
9. Click Apply and click Export.
10. Click the Advanced tab and click Keyword Editor. This
opens the Keyword Editor with ‘MSW1_CON_1-
ECLIPSE100’ dialog.
11. In the tree on the left of the dialog, expand the SCHEDULE
node. Note the WELSEGS and COMPSEGS keywords have
been generated and appear after WELSPECS and COMPDAT
respectively.
12. Examine the keywords by double-clicking on them in the
Keyword Editor dialog. This opens a text editor showing the
keyword settings.
13. Close the editor without saving your changes.
14. Save your changes in the text editor and close it.
15. Click OK to close the Keyword Editor dialog.
16. In the Define simulation case dialog, click Run to run the
simulation. A DOS window displays and the simulation runs.
17. When it is finished, the results are automatically loaded into
Petrel.
18. If the simulation encounters an error, the Simulation
messages for ECLIPSE 100 dialog displays.
Scroll through the list of messages and note any problem
messages about P1 not converging.
26. In the Define simulation case dialog, click Run to run the
simulation. This time it should run through successfully.
27. Click OK to close the Define Simulation Case dialog.
Review Questions
• Under what circumstances should the multi-segment well
model be used in preference to the ‘standard’ well model?
• What are the differences between the ‘standard’ well model
and the multi-segmented well model?
• What are the three methods available to determine the
pressure drop along a wellbore? Give examples of situations
where each might be appropriate.
• Why are inflow control devices used in some horizontal
wells? What facilities are available in ECLIPSE to model
these types of devices?
• Outline the process required to convert a well from using the
‘standard’ well model to the multi-segment well model. What
input data are required? What options are available to do this
interactively?
Summary
In this module, you learned about the modeling options for
deviated and horizontal wells in the ECLIPSE reservoir simulator,
and you can now:
NOTES
NOTES