Академический Документы
Профессиональный Документы
Культура Документы
Technical Description
2008.1
Proprietary Notice
Copyright 1982- 2008 Schlumberger. All rights reserved.
No part of this document may be reproduced, stored in a retrieval system, or translated in any form or by any means, electronic or
mechanical, including photocopying and recording, without the prior written permission of Schlumberger.
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.
Patent information
Schlumberger ECLIPSE reservoir simulation software is protected by US Patents 6,018,497, 6,078,869 and 6,106,561, and UK Patents
GB 2,326,747 B and GB 2,336,008 B. Patents pending. Schlumberger FrontSim reservoir simulation software is protected by US Patent
2004/0015295A1.
The Calculator, Charisma, ConPac, ECLIPSE 100, ECLIPSE 200, ECLIPSE 300, ECLIPSE 500, ECLIPSE Office, EDIT, Extract, Fill,
Finder, FloGeo, FloGrid, FloViz, FrontSim, GeoFrame, GRAF, GRID, GridSim, Nodal, NWM, Open-ECLIPSE, PetraGrid, PIPESIM,
PIPESIM FPT, PIPESIM GOAL, PlanOpt, Prodman, Pseudo, PVTi, RTView, SCAL, Schedule, SimOpt, VFPi, Weltest 200.
Trademark information
Silicon Graphics and IRIX are registered trademarks of Silicon Graphics, Inc. OpenGL and the oval logo are trademarks or registered
trademarks of Silicon Graphics, Inc. in the United States and/or other countries worldwide. OpenInventor and WebSpace are trademarks
of Silicon Graphics, Inc. IBM, AIX are registered trademarks of International Business Machines Corporation. Sun, SPARC, Solaris, Ultra
and UltraSPARC are trademarks or registered trademarks of Sun Microsystems, Inc. Macintosh is a registered trademark of Apple
Computer, Inc. UNIX is a registered trademark of UNIX System Laboratories. Motif is a registered trademark of the Open Software
Foundation, Inc. The X Window System and X11 are registered trademarks of the Massachusetts Institute of Technology. PostScript and
Encapsulated PostScript are registered trademarks of Adobe Systems, Inc. OpenWorks and VIP are registered trademarks of Landmark
Graphics Corporation. Lotus, 1-2-3 and Symphony are registered trademarks of Lotus Development Corporation. Microsoft, Windows,
Windows NT, Windows 95, Windows 98, Windows 2000, Windows XP, Internet Explorer, Intellimouse and PowerPoint are either
registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Netscape is a registered
trademark of Netscape Communications Corporation. AVS is a registered trademark of AVS Inc. ZEH is a registered trademark of ZEH
Graphics Systems. Ghostscript and GSview are Copyright of Aladdin Enterprises, CA. GNU Ghostscript is Copyright of the Free Software
Foundation, Inc. Linux is Copyright of the Free Software Foundation, Inc. IRAP is Copyright of Roxar Technologies. LSF is a registered
trademark of Platform Computing Corporation, Canada. VISAGE is a registered trademark of VIPS Ltd. Cosmo is a trademark and
PLATINUM technology is a registered trademark of PLATINUM technology, inc. PEBI is a trademark of Veritas DGC Inc./HOT Engineering
GmbH. Stratamodel is a trademark of Landmark Graphics Corporation. GLOBEtrotter, FLEXlm and SAMreport are registered trademarks
of GLOBEtrotter Software, Inc. CrystalEyes is a trademark of StereoGraphics Corporation. Tektronix is a registered trade mark of
Tektronix, Inc. GOCAD and JACTA are trademarks of T-Surf. Myrinet is a trade name of Myricom, Inc. This product may include software
developed by the Apache Software Foundation (http://www.apache.org). Copyright (c) 1999-2001 The Apache Software Foundation. All
rights reserved. MPI/Pro is a registered trademark of MPI Software Technology, Inc. The TGS logo is a trademark of TGS, Inc. POSC, the
POSC logo and Epicentre are registered trademarks of Petrotechnical Open Standards Consortium, Inc. Red Hat is a registered
trademeak of Red Hat, Inc. This product may include software developed using LAPACK (http://www.netlib.org/lapack/), which is copyright
of its authors. Scali is a trademark of Scali Inc.
Preface
Conventions
Data file, and directory names are shown in Courier, a fixed spaced font, for
clarity.
On some operating systems the file system is case sensitive for example
UNIX. Be aware of this and that the files may not appear as written on your
computer.
We also use the forward slash / as a directory delimiter. This is the standard for
UNIX; on PCs it should be replaced by the backslash \.
The convention for batch files containing groups of operating system commands
is also machine dependent. On PCs batch files will start with the character $, while
UNIX we uses @.
Typefaces used
All regular text is in Palatino font, and headlines at different levels are in different
levels of Helvetica Bold.
Equation variables in text are in Times Italic, for example e = mc2. This is the
same font as is used in formatted equations.
Links and cross-references to other pages in this manual or others are highlighted
in bright blue.
Keywords and other program code items are represented in Courier, a fixed-
space font similar to that seen on DOS and UNIX screens.
Menu items are distinguished from surrounding text by being in Helvetica similar
to settings often found on interactive program screens.
Program variables are in Courier like the keywords.
Apply
Applies the changes you have made in the dialog or panel. The dialog box or panel remains
open.
OK
Applies the changes you have made in the dialog box or panel and closes it.
Close
Closes the dialog box or panel.
Help
Opens the help page for the screen, dialog box or panel.
In case of problems
Should you find an error, an omission, or something that is not clear, or you simply wish to make
a comment about any part of the documentation, we will be pleased to learn about it so that we
can improve our product. Please send the details in an email to:
documentation@abingdon.oilfield.slb.com
giving full details, or contact your local Support Team who will be pleased to help.
Overview
Geometry options
The FrontSim corner-point geometry option is unique and allows extremely complex
geometries to be constructed to give a faithful representation of the reservoir geology. The
programs FILL, GRID or FloGrid can be used to prepare corner-point data for FrontSim or
ECLIPSE. GRAF, GRID or ECLIPSE Office may be used to display the grid in a variety of
ways. For example, in a large 3D study, you may request a number of XZ cross-sections to be
displayed simultaneously. Transparent areal overlays of the grid are useful for precise checking
against geological maps.
Corner-point geometry is especially useful for highly faulted reservoirs. The grid may be
distorted areally to fit along fault lines and displaced vertically to model complex scissor faults.
The resulting non-neighbor grid transmissibilities are computed automatically by FrontSim.
Flow across displacement faults is handled efficiency by the FrontSim solution procedures.
See "Transmissibility Calculations" on page 249 for further information.
Non-neighbor connections
In conventional grid systems each cell has only one neighboring cell in each direction (two in
each dimension). Thus in 2D grids, each cell can have up to four neighbors, and in 3D grids each
cell can have up to six neighbors. Flow only takes place between neighboring cells.
FrontSim will generate the non-neighbor connections arising from displacement faults
applications automatically, and calculate their transmissibilities. If you are using the Local Grid
Refinement, FrontSim will also handle the non-neighbor connections arising from the third
application automatically.
Non-neighbor connections give rise to off-band elements in the Jacobian matrix and these are
included in the procedure used to solve the linear equations.
Run-time dimensioning
All of the internal arrays in FrontSim are dimensioned at run time to minimize the use of
computer memory. Most of the data required for FrontSim to compute the size of its internal
arrays is deduced from the dataset. Space is saved by not storing unnecessary data for inactive
cells.
Tracer tracking
The Tracer Tracking option is a general facility to determine the movement of marked fluid
elements during a simulation run. It may be used, for example, to differentiate the movement of
water injected by different wells and initial aquifer water, or to predict the variation in salinity
or concentrations of other chemical species.
See "Tracer Tracking" on page 245 for further information.
Aquifers
Aquifers may be represented by a choice of two analytic models, a constant flux model and a
numerical model. The analytic models are the Fetkovich aquifer and the Carter-Tracy aquifer.
The constant flux model allows you to specify the flow per unit area at any time during the
simulation. The numerical model consists of a sequence of aquifer cells connected together in
one dimension. The innermost cell of the numerical aquifer sequence may be connected to any
number of reservoir cells. The depth, dimensions, porosity, permeability, etc., of each aquifer
cell may be specified separately, giving the user complete flexibility in defining each aquifer.
See "Aquifer Modeling Facilities" on page 29 for further information.
FILL
FILL generates unconventional grid systems based on corner point geometry. Grids may be
distorted to fit along fault lines. Sloping displacement faults, complex scissor faults, distorted
wedge shaped grids etc. may be generated easily using FILL.
As its name implies, FILL is specially designed to interpolate sparse data which may only be
known at a few points on the grid. Missing values are filled in to generate complete grid data
files for FrontSim. For example, rock properties such as porosity need only be specified at a few
points in each grid layer and FILL will provide the rest.
GRAF
GRAF provides an easy to use, menu driven graphics capability.
Typical uses of GRAF are:
Line graphics showing, for example, field pressure against time.
Grid graphics showing the reservoir grid including faults.
Dynamic solution displays showing animated color time displays of saturations or
pressures etc.
Line graphics are generated from SUMMARY files created by FrontSim at each report time. Each
SUMMARY file contains data relating to field, group, well, connection, region and cell quantities
recorded at intermediate timesteps. Thus the SUMMARY files (like the Restart files) may be used
to monitor runs in progress.
Grid graphics are generated from a GRID file created by FrontSim at the start of a simulation
run. GRID files contain the locations of the corners of each cell in the reservoir, and may be used
to display the grid in a variety of ways.
Dynamic solution displays are generated from RESTART files created by FrontSim at
prescribed times. RESTART files contain detailed information such as saturations and pressures
for each grid cell. Their main purpose is to enable FrontSim to be restarted at the prescribed
times. However, they may also be used in conjunction with the GRID file to generate color
displays of saturations and pressures. You can step forwards or backwards through color
sequences creating animated displays of water floods, gas coning events etc.
As well as color-filled solution displays, GRAF provides options for contours, arrow plots and
transmissibility displays. Hard copy output of GRAF can be generated on a a wide range of
plotters and printers.
FrontSim options
IOR tracer logic
The IOR tracer logic extension increases the modeling capability of the program. This special
extension may be purchased separately as required.
ECLIPSE Office
ECLIPSE Office provides an interactive environment for the creation and modification of Black
Oil and Compositional models, the submission and control of runs, the analysis of results and
report generation. Data sets may be created using a PEBI gridding module, correlations for PVT
and SCAL data, keyword panels, or input from other pre-processors. Panels exist for all
FrontSim keywords. Tools are provided for the management of cases within a project. Run
management is provided for submitting, monitoring and controlling simulator execution. New
interactive graphics are used to view results.
FloGrid
FloGrid is an interactive 3D product that constructs fluid flow simulation grids and properties.
FloGrid imports geological data in most popular map and 3D geological model formats,
including the POSC Rescue format. Simulation grids can be exported in FrontSim and other
formats. FloGrid provides full 3D visualization of the data - wells, maps, geocellular models,
faults and simulation grids.
FloGrid supports the generation of both structured and unstructured grids. Structured
(Cartesian) grids are optimized to fit to selected faults and the boundary, with remaining grid
nodes placed to minimize orthogonality errors. Faults that are not explicitly gridded may be
automatically zig-zagged. For 3D geological models, simulation layering can, optionally, be
determined using algebraic and flow based techniques to automatically identify simulation
layers that best capture the flow characteristics of the fine scale models.
Unstructured PEBI and tetrahedral (PetraGrid) grids can be tailored to honor all boundaries,
wells and faults. They support rectangular and radial refinements around wells, and general
refinements consisting of a rectangular, triangular or hexagonal grid within a specified
polygonal region.
FloGrid also provides a suite of algebraic and flow based single phase upscaling tools that
calculate appropriate simulation block properties from the fine scale geologic or stochastic
property grids.
GRID
GRID is an interactive program used to build reservoir models, design simulation grids and
produce input data for FrontSim. The basic geological model consisting of contours, faults, map
features and well locations may be digitized or input directly from industry standard map files.
The geological model is used as a background display to aid the construction of the simulation
grid.
Features include color graphics, corner-point or conventional geometry, sloping or vertical
faults, areal, cross sectional or three dimensional displays, contouring back of grid properties to
compare with original input data, flexible easy to use editing and comprehensive help facilities.
Locally refined and coarsened grids can be prepared and displayed, for use with the Local Grid
Refinement option.
The ECLMAP options in GRID provide facilities for handling seismic shot line data, volumetric
calculations and depth conversion of seismic horizons or map grids.
PlanOpt
PlanOpt is an interactive tool to assist you in choosing the potential locations of vertical
production wells during development. PlanOpt applies pre-defined screening criteria to each
column of grid blocks in a 3D simulation model to determine which could sensibly
accommodate a production well. A vertical well is completed in each column of cells that
satisfies the criteria. A simulation run is then used to rank the wells and the least effective wells
are eliminated. This cycle is repeated until the optimum well locations have been identified.
PVTi
PVTi is an interactive Equation of State (EoS) package used for the analysis of laboratory
measurements performed to determine the phase behavior of reservoir fluids. The quality of the
laboratory measurements can be tested through material balance checks. Laboratory
experiments can be simulated using a variety of cubic EoS, and any discrepancies between
calculated and measured data can be minimized by regression of one or more EoS parameters.
The EoS model can then be used to generate data suitable for use in FrontSim and VFPi.
Schedule
Schedule imports production data from a variety of common sources including PA, OilField
Manager and Finder, and generates the corresponding FrontSim production control keywords.
Production data can also be extracted from existing FrontSim models. The program has
advanced graphic display features which simplify the editing, validating and averaging of
production data. Timesteps on which rates are averaged are based on a user defined combination
of calendar periods and reservoir events such as well completions, shut-ins and simulations.
All the main categories of production data necessary for simulation can be handled by Schedule.
These typically take the form of well deviation surveys, historical production and injection
volumes and completion data. A key feature of Schedule is the capability to generate accurate
and representative COMPDAT keywords with time-varying connection factors calculated from
perforation data specified in terms of measured depths and formations. Corrections are made for
deviated wells, partial penetrations and multiple completions within a single cell.
Schedule has comprehensive facilities for creating prediction run controls for FrontSim.
Controls can be set for wells, groups and the field. Wells can be created by defining IJK
locations or by digitizing in the 3D Viewer, where simulation results can be used as a backdrop
to aid placement.
Schedule can also prepare data for input to the Multi-segment Well model. It can read data
describing casing, liner and tubing characteristics and locations of chokes, packers and inflow
control valves.
Introduction
If the ALLOC mnemonic in the RPTSCHED keyword is set, FrontSim will generate allocation
ECLIPSE 100
ECLIPSE 300
reports in the .prt file or a separate .alloc file. in ASCII-format. If the ALLOC mnemonic
SPECIAL is set to 1 - a simple report is generated including allocation factors and pore volumes (drainage
x FRONTSIM area) for wells and for injector-producer pairs. If you want an extended report that also includes
surface rates, surface volumes etc. the mnemonic should be set to 2 (.prt) or 3 (.alloc).
Examples
Example 1
Using RPTSCHED ALLOC = 3, for complete output
Introduction
This chapter describes the aquifer models available in FrontSim. These are:
x ECLIPSE 100
x ECLIPSE 300 Numerical aquifers
SPECIAL
x FRONTSIM Carter-Tracy aquifers
Fetkovich aquifers
Constant flux aquifers.
Numerical aquifers are represented by a one-dimensional row of cells within the simulation
grid. The other three types of aquifer, classed as analytic aquifers, are represented by
computed source terms in the reservoir grid cells with which they connect.
CDARCY-
TR = --------------------------- [EQ 3.1]
1 Ti + 1 Tj
with
2 PERMX i XSECT i
T i = -----------------------------------------------------
-
LENGTH i
where
PERMX i is the permeability of aquifer cell i
XSECT i its cross-section
LENGTH i its length.
This expression is used for transmissibilities between aquifer cells in both radial and cartesian
geometries. However, in connecting the first aquifer cell to a grid block, the appropriate radial
or cartesian transmissibility from the block edge to the centre is used (see the AQUCON
keyword).
If required, a transmissibility multiplier may be applied to the calculated transmissibility
between the first aquifer block and the nominated connecting face of the reservoir, using
keyword AQUCON, in order to aid history matching.
No multiplier is applied to the transmissibility of the inter-block connections within the one-
dimensional aquifer. The values of transmissibility multipliers for the grid (MULTX etc.) entered
in the GRID section do not apply to any numerical aquifer connections.
For the AQUNUM keyword, if the initial aquifer pressure is not entered (by choosing the default
value) or even if a negative value is specified, then the initial pressure is calculated to place the
aquifer as near as possible in equilibrium with the reservoir.
Summary quantities for a numerical aquifer may be obtained by defining each aquifer as a fluid-
in-place region. It is then possible to examine the aquifer inflow performance and pressure
support supplied to the reservoir.
where
h is the aquifer thickness
is the angle astounded by the aquifer boundary from the centre of the reservoir, in degrees
divided by 360
c2 is 6.283 (METRIC, PVT-M); 1.1191 (FIELD); 6.283 (LAB).
The time constant T c is used to convert time t into dimensionless time t D via
t-
tD = ---- [EQ 3.4]
Tc
The Carter-Tracy model uses tables of dimensionless time versus a dimensionless pressure
influence function. The default table is for an infinite reservoir with constant terminal rate as
given by van Everdingen and Hurst, but you may supply alternative tables using AQUTAB in the
PROPS section.
The Carter-Tracy model expresses the pressure drop at the aquifer boundary in terms of the
dimensionless pressure influence function PID by
Q
p a0 p = ------a PI D(tD) [EQ 3.5]
where
Qa is the aquifer inflow rate
where
p ai W a(t)PI D (t + t)D
1- ------------------------------------------------------------------------
a = ---- [EQ 3.7]
T c PI (t + t) t PI ( t + t )
D D D D D
and
b = ----------------------------------------------------------------------------------
- [EQ 3.8]
Tc [ PI D(t + t) D tD PI D ( t + t )D ]
where
p ai is the pressure drop pa0 + g ( d i da ) p i ( t + t )
PID is the derivative of PID with respect to t D
i is the area fraction for each connection.
Here, the area fraction for each connection is given by:
mi Ai
i = ------------------
-
mi Ai
where
Ai is the area of the block face communicating with the aquifer
mi is an aquifer influx coefficient multiplier.
The aquifer influx rates calculated from [EQ 3.6] contribute the residual for the implicit
equations solved by FrontSim at time t . The cumulative aquifer influx W a(t) used in [EQ 3.7]
is updated explicitly at the end of the timestep.
The aquifer properties (compressibility, porosity, initial pressure, depth, radius etc.) should be
defined using keyword AQUCT, and the aquifer connections to one or more faces of the reservoir
should be made using the keyword AQUANCON.
If the initial aquifer pressure is defaulted, it will be calculated from [EQ 3.11] such that the
aquifer is in initial equilibrium with the reservoir.
The aquifer should also be given a table number for the influence function table that it should
use. Influence function tables may be supplied with the AQUTAB keyword in the PROPS
section. FrontSim has a built-in default influence function table (table number 1), which
represents the constant terminal rate solution for an infinite aquifer as given by van Everdingen
and Hurst.
For Tracer Tracking runs, the initial concentrations of water phase tracers in the aquifer may be
supplied using the keyword AQANTRC in the SOLUTION section.
(For more information, see [Ref. 19].)
Q ai = d ( W ai ) = J i [ p a p i + g ( d i d a ) ] [EQ 3.9]
dt
where
Q ai is the inflow rate from the aquifer to the connecting grid block i
W ai is the cumulative influx from the aquifer to grid block i
J is the specified Productivity Index of the aquifer
i is the area fraction for the connection to grid block i
pa is the pressure in the aquifer at time t
pi is the water pressure in a connecting grid block i
is water density in the aquifer
di is the grid block depth
da is the datum depth of the aquifer.
The area fraction for each grid block connection is given by:
mi Ai
i = -----------------
- [EQ 3.10]
mi Ai
where
Ai is the area of the block face communicating with the aquifer
mi is an aquifer influx coefficient multiplier.
For vertical faces, the areas A i are multiplied by the net-to-gross ratio of the connecting grid
blocks. You may specify the influx multiplier mi to help with the history matching process.
The pressure response in the aquifer is determined by the material balance equation
Wa = C t V w0 ( p a0 p a ) [EQ 3.11]
where
Wa is the cumulative total influx from the aquifer
Ct is the total (rock + water) compressibility of the aquifer
V w0 is the initial volume of water in the aquifer
C t V w0
Tc = --------------
- [EQ 3.12]
J
and has the dimension of time.
Under the assumption of uniform reservoir pressure in the connecting grid blocks, and by
integrating [EQ 3.9] and [EQ 3.11], the average influx rate over the time interval t is expressed
as
1 exp ( t T c )
Q ai = i J ( pa p i + g ( d i d a ) ) ---------------------------------------
-
[EQ 3.13]
t T c
where
Q ai is the inflow rate from the aquifer to the connecting grid block i
Fa is the aquifer flux, entered by the user
A i is the area of the connecting face of grid block i, which is calculated directly from the cell
geometry
mi is the aquifer influx multiplier.
The aquifer should be defined with the AQUFLUX keyword in the SOLUTION section, and the
aquifer connections to one or more faces of the reservoir should be made via the keyword
AQUANCON. To achieve time-dependency, the flux may be modified during simulation by re-
entering the AQUFLUX keyword in the SCHEDULE section
For Tracer Tracking runs, the concentrations of water phase tracers in the aquifer may be
supplied using the keyword AQANTRC.
SUMMARY file quantities for the aquifer are output, named AAQR (influx rate) and AAQT
(cumulative influx) in the SUMMARY section. It is then possible to examine the aquifer inflow
performance and pressure support supplied to the reservoir.
Introduction
FrontSim supplies user time stepping control keywords to determine time step size at run time.
These keywords are in following three categories:
1 DATES or TSTEP
2 NEXTSTEP, MINSTEP, MAXSTEP
3 TSCRITFS.
The FrontSim time stepping controller prioritizes low category over high category keywords.
Specifically DATES or TSTEP are reporting step keywords, NEXTSTEP, MINSTEP, and
MAXSTEP are manual step keywords to control or sub-divide reporting steps.
Keywords are prioritized in the listed order (NEXTSTEP has higher priority than MINSTEP, and
MINSTEP has higher priority than MAXSTEP) within the same category.
TSCRITFS is an automatic time stepping control keyword which includes four methods. Any
number of these methods can be used at the same time. Each user-activated method computes
an autostep, and the FrontSim auto time stepping controller chooses the smallest autostep
among user-activated methods.
FrontSim can internally determine a Half Reporting step when the selected time step (from the
time step controller) is more than 50% of the current remaining reporting step. This Half
Reporting step is made to facilitate SUMMARY section reporting needs.
Reporting steps
DATES and TSTEP are standard keywords to specify reporting steps. Reporting steps define the
primary target dates honored during run time.
Time stepping control may shorten a reporting step, to allow pressure solution to converge, to
capture water cut, and to serve other purposes.
You can specify very large reporting steps, for instance on the order of 5 to 10 years. The time
step controller can compute appropriate manual and automatic steps suitable for the model.
where:
N
tFV is the estimated fluid volume step at the current time step N (days). The MIN is defined
as the minimum of oil, water and gas phases fluid volume time steps present.
MXFVCHG is the user input fraction limit (dimensionless); this ratio is the mnemonic
MXFVCHG in keyword TSCRITFS.
Resv
V Phase t is the estimated phase fluid volume throughput rate,
where
N
t PV is the estimated pore volume autostep for the current step N (DAYS),
MXTHRUPT is the user input parameter to set the model pore volume fraction change limit. This
is the mnemonic MXTHRUPT in keyword TSCRITFS.
N
PV Total is the phase pore volume sum at time step N,
MAX ( VInj t, V Prod t )
is the estimated maximum of total volume injection and total volume production throughput rate
at the time step N (in reservoir conditions).
Pressure time step control estimates a pressure rate of change ( dP d t) Est within time step N, to
limit the maximum change of average pressure change to MXDELPA PN within one pressure
step:
N
t Pressure = MXDELPA
N P
----------------------------------------- [EQ 4.3]
Est
( dP dt )
where:
N
t Pressure is the estimated pressure autostep for the current step N(DAYS),
MXDELPA is the user input parameter to set the model pressure change limit. This is the
mnemonic MXDELPA in keyword TSCRITFS,
N
P is the model average pressure at time step N,
Est
( dP dt ) is the estimated average pressure rate of change during current time step N.
N [EQ 4.5]
Composite
M = -------------------------------------
-
MXFLUXCHG
MXFLUXCHG
is the user input limit to scale the model flux change limit. This is the mnemonic MXFLUXCHG
in keyword TSCRITFS.
N
Composite is an estimate of composite model flux change as functions of:
cell flux change FluxN and pore volume throughput change PVN for the current time step N.
where:
This scales the difference in measure between model average cell flux and model pore volume
throughput:
N N N
Composite = PV Flux [EQ 4.6]
where:
N
PV is the relative pore volume change over two previous time steps,
N
Flux is the relative model cell flux change over two previous time steps.
Because flux time step control is based on computing flux changes NComposite between two
previous time steps, flux time step is only computed/enforced one time step after it is activated.
Other time stepping facilities are enforced on the same time step as they are activated.
Flux time step control may internally compute a control flux step with averaged flux time steps
during a previous report step. The control flux step appears as Estimated flux autostep within
the message prior to its use. The purpose is to even out variations of actual flux autostep during
a (large) reporting time step, and to improve pressure solve convergence speed. Slower
convergence can occur due to use of uneven flux autosteps.
Flux time step control is a second-order time stepping mechanism whose usage often increases
when some type of flux anomaly or instability occurs. Flux time step control makes an effort to
resolve this type of difficulty and to help continue the current run.
Note A simple converged model should not lead to complex auto time stepping decisions
like those described above.
Illustration
Here is a simple example of how the pore volume throughput and fluid change control can work:
A quarter five-spot, two-phase, one front (100%water / 100% oil) propagating from injector to
producer. 100% oil initially, in RESV conditions. Rates were set to 1%PV/day; injection rate is
equal to production rate.
With a 0.1 limit on pore volume throughput and 0.05 on fluid change, the fluid change would
initially govern timesteps, with the front displacing 5% of the PV for each timestep. This is a 5-
day time step. After breakthrough, the rate of change of fluid will be reduced because of the
water produced. Timesteps will increase until the watercut at reservoir conditions reaches 0.5.
At that time the timesteps will continue at 10 days, limited by the throughput of 0.1.
If one thinks of the reservoir as one cell:
Fluid volume change time step control limits the change of saturation in the cell in one
timestep, by 5% in the example above
Pore volume throughput time step control limits the amount of mass one can inject/produce
from this cell in one timestep, by 10% in the example above
Pressure change time step control limits the maximum change of pressure in the cell,
currently as a fraction of the current average pressure.
Examples
The following run time examples activate the respective time control facilities:
Example 1
Fluid volume step
Report 12 Time 791.00 --> 973.00 (01 Jul 1996) StopTime: 3348.00
@--Message at time 1 January 1996 step 32:
@ Estimated Flux AutoStep 46.00
Step 32 Time 791.00 --> 837.00 Reason: FluxStep
Pressure : 8 8.6e-006 1 4.4e-003
Pressure : 6 3.1e-006 2 3.6e-005
@--Message at time 1 January 1996 step 32:
@ Redo TimeStep with Flux AutoStep 28.43
Step 32 Time 791.00 --> 819.43 Updated Reason: FluxStep
Pressure : 8 3.7e-006 1 3.0e-003
Pressure : 5 4.8e-006 2 2.4e-005
Saturation : Generated 2216 starting points (SLN density 0.200000).
Memory for streamlines, allocated: 8.2MB Usage: 0.548
CPU Pressure : Asm 1.5 Sol 0.9 Vt 1.0 Tot 3.5
CPU Saturation : Tot 6.5
Mem heap(Mb : 146.9
CPU Cumulative : Asm 24.9 Sol 18.3 Vt 20.0 Sat 205.2 Tot 268.5
PV 3.448798e+009 at ref. pressure
PV 3.460583e+009 RC 5.78% PAV 6.1384e+003
WIP 2.912231e+009 CWF -5.681853e+006 WIIP 2.907015e+009 MW 0.01%
OIP 2.460903e+008 COF 1.510389e+007 OIIP 2.612205e+008 MO 0.00%
GIP 0.000000e+000 CGF 2.990566e+007 GIIP 0.000000e+000 MG 0.00%
@--Message at time 29 January 1996 step 33:
@ Pressure AutoStep 37.27
Step 33 Time 819.43 --> 856.70 Reason: Pressure
Pressure : 7 2.7e-006 1 2.8e-003
Pressure : 4 7.9e-006 2 1.6e-005
Saturation : Generated 2207 starting points (SLN density 0.250000).
Example 7
Fluid volume followed by HalfRep, MINSTEP and Report steps.
Note that MINSTEP is activated only during the REDO checking stage, followed by a HalfRep
step.
Introduction
This chapter describes the Fractured Reservoir option, which is a separately licensed extension
x ECLIPSE 100
x ECLIPSE 300
to FrontSim. The implementation uses a special 3-phase compressible, dual porosity
x FrontSim formulation suitable for streamline simulation as published in [Ref. 32].
SPECIAL
In a dual porosity reservoir, fluids exist in two interconnected systems:
The rock matrix, which usually provides the bulk of the reservoir volume
The highly permeable rock fractures.
If the matrix blocks are linked only through the fracture system, this conventionally could be
regarded as a dual porosity single permeability system, since fluid flow through the reservoir
takes place only in the fracture network with the matrix blocks acting as sources. Dual porosity
runs are specified by the keyword DUALPORO in RUNSPEC.
To model such a system, two simulation cells are associated with each block in the geometric
grid, representing the matrix and fracture volumes of the cell. In FrontSim the porosity,
permeability, depth etc. of these may be independently defined. A matrix-fracture coupling
transmissibility is constructed automatically by FrontSim to simulate flow between the two
systems due to fluid expansion, capillary pressure etc.
In a dual porosity run of FrontSim the number of layers in the Z-direction should be doubled.
FrontSim associates the first half of the grid (the first NDIVIZ/2 layers) with the matrix blocks,
and the second half with the fractures. In such runs NDIVIZ must therefore be even; FrontSim
checks that this is the case.
is a factor of dimensionality LENGTH2 , to account for the matrix/fracture interface area per
unit volume, that is the size of the blocks in the matrix volume.
Kazemi [Ref. 4] has proposed the following form for :
1 1 1
= 4 ----
- + ----- + ----- [EQ 5.2]
l 2 l 2 l 2
x y z
where lx, ly and lz are typical X, Y and Z dimensions of the blocks of material making up the
matrix volume. ( l x , l y and l z are thus not related to the simulation grid dimensions).
Alternatively, as acts as a multiplier on the matrix-fracture coupling, it may simply be treated
as a history matching parameter.
can be specified as a single value for the whole field or on a cell by cell basis using the
keyword SIGMAV. If is defined on a cell by cell basis then the values corresponding to the
first NDIVIZ/2 layers are used. If is printed out then the values in the first NDIVIZ/2 layers
are copied in to the lower NDIVIZ/2 layers.
The intrinsic permeabilities of cells in the fracture system are equal to the specified values
multiplied by the fracture porosities to yield effective fracture permeabilities. If the NODPPM
keyword is used then the intrinsic permeability is used rather than the effective permeability.
That is, when NODPPM is not specified, then within the fracture cells, the input PERMX, PERMY
and PERMZ are modified using PERMX ( fr ) = PERMX ( fr ) PORO ( fr ) .
If the dual porosity option is selected, the matrix blocks have no mutual transmissibilities.
1,1,1
Matrix Cells
Matrix Fracture NNC
1,1,3
1,1,1
Fracture Cells
1,1,3
Oil expansion
As the pressure drops in the fracture system, oil flows from the matrix to equilibrate the matrix
pressure with the surrounding fracture pressure. This production mechanism can be thought of
as expansion of the oil within the matrix block, either above the bubble point or by solution gas
drive below the bubble point.
Imbibition
In a typical water wet system the matrix rock has a positive water-oil capillary pressure. If water
is introduced into the fracture, the water flows under capillary forces into the matrix system,
displacing oil.
The water imbibition process is modeled in FrontSim by specifying different saturation table
numbers for the matrix and fracture cells respectively. The matrix cells typically have a water-
oil capillary pressure, while the fracture cells usually have zero capillary pressure.
In gas-oil systems the oil is the wetting phase and tends to imbibe into the matrix.
Fracture permeabilities
It is necessary to be clear about what the input fracture permeability represents. By default
FrontSim multiplies the input fracture permeabilities by the fracture porosity to generate an
effective permeability. If the input fracture permeabilities themselves represent the effective
value, then the NODPPM keyword should be used in the GRID section.
Z3 + E2 Z 2 + E1 Z + E0 = 0 [EQ 6.1]
with:
E2 = ( m 1 + m 2 1 )B 1 [EQ 6.2]
2
E1 = A ( m 1 + m 2 m 1 m 2 )B ( m 1 + m 2 )B
E0 = [ AB + m 1 m 2 B 2 ( B + 1 ) ] [EQ 6.3]
Table 6.1 Coefficients m1 and m2: variation with the equation of state
Equation of State m1 m2
Redlich-Kwong 0 1
Soave-Redlich-Kwong 0 1
Zudkevitch-Joffe 0 1
Peng-Robinson 1+ 2 1 2
The cubic equation for the Z-factor may be solved to obtain Z-factors for the liquid and vapor
phases. Generally three solutions are obtained.
The distinction between the liquid and the vapor phase is then made by choosing the smallest
root as Z-factor for the liquid phase, and the largest root as Z-factor for the vapor phase.
Fugacity coefficients are calculated using:
A 2 B Z + m 2 B B i
ln ( f i ( px i ) ) = ln ( Z B ) + --------------------------- --------i -----i ln -------------------
- + ----- ( Z 1 )
( m 1 m 2 )B A B Z + m 1 B B
i = Aij xj
j
n n
A = xjxkAjk
j = 1k = 1
n
B = x j Bj
j=1
Ajk = ( 1 jk ) ( A j A k ) 1 / 2
and jk are binary interaction coefficients, normally between hydrocarbons and non-
hydrocarbons.
These four equations express the mixing laws used in all the equations of state.
The variables are defined by the following equations:
P rj
Aj = a ( T, j ) ------
- [EQ 6.5]
T2 rj
P rj
Bj = b ( T, j ) ------
- [EQ 6.6]
T rj
a ( T, j ) and b ( T, j ) are functions of the acentric factor w j and the reduced temperature T rj .
For Redlich-Kwong:
b ( T, j ) = bo [EQ 6.8]
For Soave-Redlich-Kwong:
1 / 2 )]2
a ( T, j ) = ao [ 1 + ( 0.48 + 1.574w j 0.176w j2 ) ( 1 Trj [EQ 6.9]
b ( T, j ) = bo [EQ 6.10]
For Zudkevitch-Joffe:
1 / 2
a ( T, j ) = ao F aj ( T )T rj [EQ 6.11]
b ( T, j ) = bo F bj ( T ) [EQ 6.12]
For Peng-Robinson:
1 / 2 ) ]2
a ( T, j ) = ao [ 1 + ( 0.37464 + 1.54226w j 0.26992w j2 ) ( 1 Trj
b ( T, j ) = bo [EQ 6.13]
a ( T, j ) = A + B T 1 / 2 + CT [EQ 6.14]
The normal PR form can be optionally modified for large acentric factor, using the factor
( 0.379642 + 1.48503w j 0.164423w j2 + 0.016666w j3 ) rather than
( 0.37464 + 1.53226w j 0.2699w j2 ) for w j > 0.49 . This correction is invoked by use of the
PRCORR keyword.
a0 and b0 are constants depending upon the equation of state, as shown in Table 6.2.
Equation of state a b
0 0
In the program, these default values may be over-written if required by the use of the OMEGAA
and OMEGAB keywords.
The Zudkevitch-Joffe equation contains additional temperature factors, denoted F aj ( T ) and
Fbj ( T ) multiplying the usual RK temperature dependence. These are adjusted to match the
pure-component fugacity values along the vapor pressure line, and to observe the correct
component liquid density.
In the program the required variation of component saturation pressure and liquid density with
temperature are obtained using correlations of Reidel, and Gunn and Yamada. These
correlations require the input of the normal boiling point and the reference liquid density at a
specified reference temperature.
As described above, the fugacities are functions of temperature, pressure and composition:
f i = f i ( T , p, x i ) [EQ 6.16]
y
K i = ----i [EQ 6.17]
xi
The mole fractions of each component in the liquid and vapor phases are given as:
zi
x i = ------------------------------
- [EQ 6.18]
1 + ( K i 1 )V
K i zi
y i = ------------------------------
- [EQ 6.19]
1 + ( K i 1 )V
If K-values are used to specify inter-phase equilibria, these two equations are used to specify
the liquid and vapor compositions directly, with K-values obtained by table look-up as functions
of pressure.
Viscosity evaluation
In compositional mode the phase viscosity values are obtained using the Lorentz-Bray-Clark
method.
V mol, p = EoS
V mol ,p zi ci [EQ 6.20]
i=1
where
p = ( liquid, vapor ) represents the phase of the system
EoS is the molar volume of the phase predicted by the traditional 2-parameter EoS
Vmol,p
The component corrections are usually related to set of dimensionless shift parameters s i , by:
c
si = ----i [EQ 6.21]
bi
where:
b, i RT ci
b i = ---------------------
-
p ci
The shift parameters are entered in the dimensionless form using the keyword SSHIFT.
RT - ------------------------------------------------
P = ----------- A [EQ 6.22]
V B V(V + B) + B(V B)
In a typical reservoir simulation model, 4-8 components and pseudo-components are used to
define the mixture. Each component has a value of T c , Pc , Vc or Z c , , a , b and binary
interaction coefficients, ij (that increase or decrease the forces between component pairs), that
must be specified in the fluid characterization process.
These parameters for pure components, such as Methane or Nitrogen, and usually considered
fixed. Thus, the simulation engineer must alter the remaining component parameters so that the
resulting calculated phase behavior matches the experimental data. This phase behavior
matching process is carried out with the PVTi program.
Then, given z i and Ki , ECLIPSE 300 solves the Flash Equation for the molar fraction of vapor,
V. Details of this Flash Equation are shown overleaf.
nc
zi ( Ki 1 )
g(V) = 1------------------------------
+ V ( Ki 1 )
- = 0 [EQ 6.24]
i=1
y i = ( K i z i ) [ 1 + V ( K i 1 ) ] , i = 1, 2, n c [EQ 6.26]
AP -
a = -----------
2 2
R T
b = BP
-------
RT
The solution of the cubic equation gives, in a two phase region, three real roots. The largest root
is the compressibility factor of the vapor phase, and the smallest positive root is the
compressibility factor of the liquid phase.
With the current information, ECLIPSE 300 calculates the fugacity of each component in the
liquid and vapor phases.
When a grid block is in equilibrium at a given pressure and temperature, the fugacities of all
components must be the same in the liquid and the vapor. In other words,
f Li = f Vi .
A convergence criteria is then used to determine if a grid block is in equilibrium (if is very
small),
nc
fiL 2 <
-----
-1
fiV
. [EQ 6.28]
i=1
If equilibrium is not achieved, then a new estimate for the K-values are made and the iteration
process continues with a new solution of the Flash Equation, etc. Using successive substitution,
the new estimate of the K-value is:
After equilibrium is achieved, ECLIPSE 300 begins the next non-linear iteration.
Introduction
A number of files may be produced by FrontSim for each simulation run.
x ECLIPSE 100
x ECLIPSE 300 These are:
SPECIAL
x FRONTSIM PRT file Main printer output RPTSCHED and RPTPRINT
keywords
GRID file Grid geometry file GRIDFILE keyword
INIT file Initial Data file that contains grid INIT keyword
properties and saturation table data.
Can be read into the graphics packages.
RESTART file Restart runs / grid graphics file RPTRST, RPTSCHED and
RPTSOL keywords
SMSPEC file Specifications for summary file
SUMMARY file Line graphics file RPTLINFS keyword
SLNSPEC file Specifications for streamline file
STREAMLINE file Streamline output data RPTRST and RPTSLN
keywords
ALLOC file Allocation factors and pore volumes RPTSCHED
RFT file Data wells describing fluid conditions in WRFTPLT
the wellbore or the connecting grid
blocksat selected times in the run.
RSM file RSM (Run Summary) report in either OPTIONFS
EXCEL format, for Cougar for example,
XML format or ECLIPSE format.
Note If the data type is CHAR, then NEL is the total number of CHARACTER*8 elements.
The contents of the block follows the descriptor (on a new record). Each data block
must be read back in the same block structure as it was written out.
The header/record structure enables files to be converted from formatted to unformatted form,
or scanned for a specific item. For example, a RESTART file will contain a record header with
an identifier of PRESSURE, type REAL, with the number of elements set to the number of
active cells in the study.
In the formatted case the actual formats used for the data blocks are:
Integers 6(1X,I11)
Reals 4(1X,E16.8)
Double Precisions 3(1X,D22.14)
Logicals 25(1X,L2)
Character strings 7(1X,A1,A8,A1)
LOGIHEAD 20 LOGI
F F F T F T F F T F F F F F F F F F F F
ZGRP 1 CHAR
G
IWEL 72 INTE
1 1 3 3 1 1
3 2 2 0 1 0
1 2 0 2 0 -100
0 0 0 0 1 1
0 0 0 0 0 0
0 7 0 0 0 0
5 1 1 1 1 1
1 4 4 0 1 0
1 2 0 1 0 -100
0 0 0 0 1 1
-1 0 0 0 0 0
0 7 0 0 0 0
PRESSURE 15 REAL
.39684106+004 .39684106+004 .39684106+004 .39684106+004
.39684106+004 .39872349+004 .39872349+004 .39872349+004
.39872349+004 .39872349+004 .40060627+004 .40060627+004
.40060627+004 .40060627+004 .40060627+004
For further information on formats of specific files, please contact your Schlumberger Support
office.
Introduction
This chapter describes the application of the GEOFLOFS keyword.
ECLIPSE 100
ECLIPSE 300 The GEOFLOFS keyword encapsulates the functionality required to perform multi-phase fluid
x FrontSim flow simulation using an incompressible rock and fluid model. The transport phenomena
SPECIAL
modeled is limited to advection and gravity segregation. The purpose of these simulations is to
understand the impact of geology on flow in order to guide the 3D model building process or to
perform quick investigations on the geology in a given simulation model.
FrontSim is an extremely efficient tool for performing incompressible fluid flow simulations on
multi-million cell geologic models, both in terms of memory requirement and speed. Especially,
for two phase oil-water simulations the front tracking solution along streamlines can be 5-7
times or more fast than other methods.
The GEOFLOFS keyword consists of three records and provides a fast and easy method for
creating simple flow simulations. A suite of standard results commonly used for geologic
analysis are produced automatically. This output can be complemented by using any of the
standard reporting options. The simplest application of GEOFLOFS could be to produce
streamlines for visualization of connectivity or a tracer type simulation to estimate connected
volumes. The simulations can be extended to study the effects of fluid viscosity and relative
permeability, for example, to define cut off points or to screen multiple model realizations.
The experienced user of FrontSim will find that it is possible to model incompressible
simulations using a combination of existing keywords. However, it is much easier to use the
GEOFLOFS keyword. It is possible to conduct simulations or visualize streamlines as soon as
the geological grid and properties are created without the need for detailed fluid and rock
physics data. Additionally, it is possible to take existing simulation models and run them
incompressible mode with very little modifications to the keyword deck. Most keywords maybe
retained in the deck without invalidating the run. (See Table 8.1 for details).
where
= time of flight
= porosity
ut = Darcy velocity
s = distance along the streamline
PVi = Q i i [EQ 8.2]
where
Q = flow rate in streamline i
i = TOF atend of streamline i
Streamlines are traced using a numerical velocity field computed using the pressure solution and
Darcy's law on the geologic model grid. Details are given in "Streamline Tracing" on page 139.
An incompressible flow simulation will have a balanced injection-production scheme using
sources/injection wells and sinks/production wells. All fluid flow paths or streamlines will start
from sources/injectors and end in sinks/producers. Sources and sinks can be setup in various
configurations and as required to study specific connectivity issues related to a model. They
need not be restricted to the existing or planned well locations.
Streamlines are launched from the source or injection wells by distributing the injection rate
equally among a set of streamlines. The number of streamlines used depends on various model
factors. Each streamline has associated with it a certain amount of fluid flux that remains
constant at every point along the streamline as fluids are assumed incompressible.
The equation describing the flow of incompressible, immiscible fluids and ignoring gravity and
capillary pressure is given in [EQ 8.3]:
where
t = total mobility
p = pressure drop
n0
A difference form of [EQ 8.3]) with gravity terms added if required, is solved to compute the
pressure at each grid block on the geologic model. Using the pressure and the total mobility as
defined below the velocity at the interface between grid blocks is computed and used to generate
streamlines. Total mobility is defined as follows:
n0
t = j [EQ 8.4]
1
where
j = jth phase
np = total number of phases
k
j = ----j
j
We thus solve for incompressible 'tracer-type' displacement of oil ('red water') by water ('blue
water') to compute reservoir connectivity, floodable volumes, drainage volume, etc. The
reservoir is 'filled' with oil and water is injected through injectors. The total oil production for a
specific pore volume of water injected gives a measure of the connected reservoir volume
flooded for a given configuration of wells. If we applied the same experiment to many scenarios
or realizations of the geologic model for a reservoir we could discriminate between them based
on the oil production or breakthrough time etc. Alternatively, we could use such flow
experiments to compared fine scale models with their upscaled versions.
Boundary Conditions
For incompressible simulations it is essential that the fluid influx equals the efflux or injection
balances production. The most common method to achieve this condition is to let wells produce
at a fixed bottom-hole pressure and assign rates to injectors. Alternatively, both injectors and
producers can be controlled using bottom-hole pressure or an overall voidage replacement is
established by rate control. Setting rate controls on both injectors and producers should be
avoided especially if the connectivity between them cannot be ensured by some sort of static
analyses. Simulations can also be performed with pressure boundary conditions without the
need for wells.
The GEOFLOFS feature distinguishes between 'types' of flow simulations based on whether the
simulation uses wells or just pressure boundary conditions. The type of simulation must input
using GEOFLOFS and controls the how subsequent input data and output are handled. There are
currently 3 types of simulations as defined below
1 Simulations using wells to control flow behavior.(Type 2)
Type 2 simulations require the definition of wells as producers and injectors in the Schedule
section. The default well controls in GEOFLOFS assume that producers are on bottom-hole
pressure control and injectors on rate control. The total injection rate is specified in Record 2 in
terms of fraction of HCPV to be injected in a specified period of time.
It is possible to override the default injection controls in the GEOFLOFS keyword and opt to use
controls defined in the Schedule section. It will be the users responsibility to ensure that
conditions of incompressibility are honored.
Most geologic model screening applications will consider steady state operating conditions for
wells. However, GEOFLOFS will support rate changes corresponding to well events as long as
the incompressible flow conditions can be maintained.
Type 3 and 4 simulations do not use wells and instead use constant pressure boundary conditions
at opposite edges of the grid. The simulations are restricted to 2 phases (oil-water) only. In
general type 3 and 4 simulations are more restrictive than type 2 simulations.
Type 3 refers to a pressure gradient being applied from the left side of the grid towards the right
side, and Type 4 to a pressure gradient from back to front. The direction of flow can be reversed
by specifying a negative pressure gradient. Wells are not considered and will be ignored if
present in the SCHEDULE section.Type 3 and 4 simulations are strictly limited to one time step
and it is not possible to change the pressure boundary conditions during a run.
Type 3 and 4 simulation models can only be initialized using the default method (100% oil). The
pressure difference to be applied is entered in Record 2 of the GEOFLOFS keyword. By default
it will be taken to be 50% of the average pressure. The injected phase is water. The simulation
duration is controlled by the specified fraction of HCPV to be injected or a fixed time whichever
occurs earlier. The number of streamlines to be used for the simulation can be fixed
approximately around a given number.
Setting up a simulation
The process to set up a single GEOFLOFS simulation of type 3 or 4 is as follows:
1 In Petrel, create grid and populate with porosity and permeability.
a Add faults and fault property as required.
b Pinch out layers if necessary. If the model boundary is irregular consider extracting a
uniform grid.
c Perform a static connectivity analysis and inactivate those groups of cells that do not
include a source or sink.
2 Open the Define simulation case process window and create a new case using the grid
above.
3 Check the tick box in the Results panel to Run simulation even if validation fails.
4 Export/write the simulation case to file.
5 From the Advanced panel open the keyword editor and insert the GEOFLOFS keyword in
the RUNSPEC section.
a Enter 3 or 4 as the first parameter of the first record to define the type of simulation.
6 Run the simulation.
FrontSim executes a type 3 or 4 simulation using the grid and default values for all the other
parameters.
7 Visualize streamlines, grid cell values, line plots, etc.
Type 2 simulations
For type 2 simulations the following additional steps are required.
1 Create vertical wells or use the existing set of wells and completions.
a Group the wells into folders depending on whether they are injectors or producers.
2 Open the development strategy process and define the well controls for producers and
injectors. For example, add a rule for bottom hole pressure controls for producers and group
rate control for injectors.
3 Drop the development strategy into the case created in 2 above.
4 Continue with the rest of the steps in a similar fashion as documented in 3 to 7 above
making the appropriate inputs.
Restrictions
It is important to know the keywords / features that are supported or ignored when GEOFLOFS
is used together with other FrontSim keywords/features.
1 All compositional and IOR scaleup related features and keywords are not supported when
GEOFLOFS is used. Existence of these keywords in the data file will cause FrontSim to
issue an error message and stop.
The rest of the keywords are supported or ignored as follows:
Record/option
GEOFLOFS Record 2 Set Set Set Set Set Set
Parameter 2: HCPV Frac-
tion
GEOFLOFS Record 2 Set Set Set Set Set Set
Parameter 3 Simulation
Duration
SCHEDULE Section: Set Set Set Set Set Set
GCONINJE
SCHEDULE Section: Set Set Set Set Set Set
TSTEP
Error Error Error OK Error OK Error OK OK
Introduction
The initial reservoir conditions can be defined in one of three ways:
x ECLIPSE 100
x ECLIPSE 300 1 They can be read from a RESTART file generated by an earlier run (see keyword
SPECIAL RESTART).
x FRONTSIM
2 They can be set directly in each grid block, using the keywords PRESSURE, SWAT, SGAS,
RS or PBUB, and RV or PDEW.
3 They can be calculated by the equilibration facility.
The equilibration facility is a means of calculating the initial conditions on the basis of
hydrostatic equilibrium. If necessary, the reservoir can be divided into separate equilibration
regions in which hydrostatic equilibrium exists independently of the other regions. Within each
equilibration region all the grid blocks must use the same pressure table for their PVT
properties, but they can use different saturation tables.
Black oil
In black oil mode gas condensate problems, the vaporized oil concentration (Rv) in the gas can
be set in a similar manner. Either Rv or the dew point pressure (Pdew) may be entered as a
function of depth using the keywords RVVD and PDVD respectively. If a table of Rv versus depth
(or Pdew versus depth) is not referenced by a particular equilibration region, the vaporized oil
concentration in under-saturated gas is everywhere set equal to the saturated Rv value at the gas-
oil contact. At any position in the reservoir, the Rv value obtained from a table or the default
setting is subject to an upper limit equal to the saturated Rv value at the local pressure.
The datum depth for the pressure can lie anywhere in the equilibration region, unless the default
setting of Rs or Rv is required. If in a live oil problem an Rs or Pb versus depth table is not
referenced for the region, the datum depth must be set at the gas-oil contact. The same
restriction is imposed in gas condensate problems whenever an Rv or Pdew versus depth table is
not referenced.
In gas-water problems, instead of a gas-oil contact and a water-oil contact there is a gas-water
contact. There is no need to enter any data concerning the non-existent oil phase. But it is also
possible to have a gas-water contact in a three-phase problem; namely in a gas condensate
problem where all the oil is initially vaporized in the gas phase. In this case the water-oil contact
and the gas-oil contact should both be placed at the gas-water contact.
If P o P w exceeds the highest capillary pressure value in the SWFN/SWOF table (corresponding
to the lowest saturation value Swmin), the water saturation is set equal to Swmin.
If P o Pw is less than the lowest capillary pressure in the table (corresponding to the highest
saturation value Swmax), the water saturation is set equal to Swmax and the oil pressure is
adjusted to follow the water pressure gradient.
The gas saturation is similarly determined by inverse look-up of the gas capillary pressure table
(keyword SGFN, SGOF) for the grid block, such that
Pcog(S g) = P g P o [EQ 9.2]
If Pg Po is less than the lowest capillary pressure value in the table (corresponding to the lowest
gas saturation value Sgmin), the gas saturation is set equal to Sgmin.
If P g Po exceeds the highest capillary pressure in the table (corresponding to the highest gas
saturation value Sgmax), the gas saturation is set equal to Sgmax and the oil pressure is adjusted
to follow the gas pressure gradient.
In black oil problems, the R s value is simply interpolated from the internal table at the grid block
depth. However, if there is a non-zero gas saturation at that depth the R s value is re-set to the
saturated Rs value at the local pressure. The Rv value is obtained in a similar manner in gas
condensate problems.
Note If the saturation tables contain values of P cow for any value of Sw , FrontSim
automatically equilibrates taking account of the capillary pressure. However, FrontSim
currently ignores capillary pressure for the remainder of the simulation. An option to
set SWCR based on the initial saturation is available in OPTIONFS, parameter 37.
Introduction
The Local Grid Refinement option allows enhanced grid definition near wells. The local models
x ECLIPSE 100
x ECLIPSE 300
are 3D Cartesian. Local models may have more layers than the global model. Transmissibilities
x SPECIAL between the local models and the global model are computed automatically by FrontSim. The
x FRONTSIM properties of the cells in the local grid can be inherited from the Global grid or specified
explicitly for the refined cells.
Cartesian refinements
Cartesian refinements (the only type of refinement supported by FrontSim) are specified by
keyword CARFIN. For example, to replace layers 3 and 4 in column (2,3) of the global model
with a 5*5*8 Cartesian refinement with new porosities and permeabilities:
CARFIN
-- NAME I1-I2 J1-J2 K1-K2 NX NY NZ NWMAX--
'LGR1' 2 2 3 3 1 1 5 5 1 /
PORO
200*0.2 /
EQUALS
'PERMX' 500 /
'PERMY' 500 /
'PERMZ' 50 /
/
ENDFIN
This creates a refinement which looks like Figure 10.1 (in the areal direction).
Figure 10.1 Cartesian grid refinement
The primary purpose of ENDFIN is to revert FrontSim to reading data for the global grid
system.
WELSPECL
-- WELL -- GROUP -- LOCAL GRID -- LOCATION -- BHP -- PREF
-- NAME -- NAME -- NAME -- I J -- DEPTH -- PHASE
'PRODUCER' 'G' 'SOUTH' 1 1 8060 'OIL' /
/
COMPDATL
-- WELL -- LOCATION -- OPEN -- SAT -- CONN -- WELL
-- NAME -- IR JTH K1 K2 -- SHUT -- TAB -- FACT -- DIAM
'PRODUCER' 1 1 9 11 'OPEN' 0 -1 0.4 /
'PRODUCER' 1 2 9 11 'OPEN' 0 -1 0.4 /
'PRODUCER' 1 3 9 11 'OPEN' 0 -1 0.4 /
'PRODUCER' 1 4 9 11 'OPEN' 0 -1 0.4 /
/
Wells not completed in local grid systems should have their specification and connection data
set with the keywords WELSPECS and COMPDAT as normal. FrontSim checks that these wells
are not completed in a cell that is host to a refined grid system.
CARFIN
--NAME I1 I2 J1 J2 K1 K2 NX NY NZ
LGR2 3 4 1 2 5 6 4 2 4 /
Two global cells in x-direction to become 4 local cells, with three local cells in the first global
cell, 1 in the second.
CARFIN
-- NAME I1-I2 J1-J2 K1-K2 NX NY NZ NWMAX
'NORTH' 5 10 5 10 1 4 18 18 8 5 /
EQUALS
'PORO' 0.3 1 18 1 18 1 4 /
'PERMZ' 50.0 1 18 1 18 1 4 /
'NTG' 0.9 1 18 1 18 1 8 /
/
MULTIPLY
'PORO' 0.5 6 13 6 13 1 2 /
'NTG' 0.2 6 13 6 13 1 2 /
/
ENDFIN
This defines the porosities only in the top four layers on the local grid, and these are
subsequently modified for the top two layers with the MULTIPLY keyword. The porosities for
cells in the bottom four layers will be copied from their host cells in the global grid.
REFINE
'CARF882' /
SATNUM
125*1
125*2 /
ENDFIN
Transmissibility calculations
For Cartesian refinements, transmissibilities between the local and global grid are calculated
from the usual formulae.
Timesteps
FrontSim solves LGRs using the same timestep as the global grid. There is no local
timestepping option.
Transmissibility data
In general, if grid data are not specified for a local refinement (by inserting keywords between
CARFIN and ENDFIN) then they are derived from the properties of the host cells. The user
should note the following conventions used for default local permeability and transmissibility
data.
Transmissibility multipliers
Transmissibility multipliers (MULTX, MULTY, MULTZ) are applied to the X+, Y+ and Z+ faces
of each grid block. For a local refinement, multipliers can be copied from the host grid only if
the positive face of the local cell coincides with a host cell face; otherwise, a default value of
1.0 is used. If this is inappropriate, transmissibility multipliers should be explicitly defined for
the local grid.
Note For connections between local and global cells, the transmissibility multipliers for the
adjoining global block are used for flows in the X-, Y- or Z- directions. The local grid
block multipliers are used for flows in the X+, Y+ or Z+ directions.
Pore volumes
The pore volume of a refined global cell may differ from the sum of the pore volumes of the
local cells which it contains, either because the local porosities and net-to-gross ratios differ
from the values for the host cell or because of discrepancies in geometry.
After computing the local pore volumes, FrontSim replaces the pore volume of the host cell with
the sum of the refined pore volumes. Pore volume reports are produced after any modifications
have been made.
Keyword Description
ACTNUM Identifies active grid blocks.
ADD Adds specified constants to specified arrays in the current box.
BOX Re-defines the current box.
COORD Defines the lines which contain all grid block corner points for each (i, j)
and for each reservoir in the grid.
Keyword Description
COPY Copies data in the current box from one specified array to another.
DXV, DYV Vector of X direction, Y direction grid block sizes.
ENDBOX Re-defines the current box to encompass the whole grid.
EQUALS Sets specified arrays to specified constants in the current box.
MINPV Sets a minimum pore volume that each cell must have to be active.
MULTIPLY Multiplies specified arrays by constant values in the current box.
MULTX/Y/Z/ Transmissibility multipliers
X-/Y-/Z-
NTG Grid block net-to-gross ratios for the current box.
NXFIN, NYFIN, Sets the number of local cells in each global cell of a local grid refinement
NZFIN
PERMX, PERMY, Specifies the permeability in the X, Y or Z direction for the current box.
PERMZ
PORO Grid block porosities for the current box.
ZCORN Depths of grid block corners.
PROPS
PROPS
PVDO
304 1 4 /
PVTW
304 1 0 0.42 /
RSCONSTT
0 0 /
DENSITY
780 1014 1 /
SOF2
0.35 0
0.92 1 /
SWFN
0.08 0 0
1 0.36 0 /
REGIONS
SUMMARY
SCHEDULE
TUNEFSPR
1 5* /
TUNEFSSA
0 /
WELSPECL
P1 A LGR01 2 4 1* LIQ 3* 1* 3* /
/
WELSPECS
I1 B 1 1 1* LIQ 3* 1* 3* /
I2 B 10 10 1* LIQ 3* 1* 3* /
I3 B 1 10 1* LIQ 3* 1* 3* /
B 10 1 1* LIQ 3* 1* 3* /
/
COMPDAT
I1 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
I2 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
I3 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
I4 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
/
COMPDATL
P1 LGR01 1 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 2 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 3 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 4 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 5 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 6 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 7 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 8 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
/
WCONPROD
P1 1* RESV 4* 1500 /
/
WCONINJ
I1 WATER 1* RESV 2* 0.25 FVDG /
I2 WATER 1* RESV 2* 0.25 FVDG /
I3 WATER 1* RESV 2* 0.25 FVDG /
I4 WATER 1* RESV 2* 0.25 FVDG /
/
WECON
P1 1* 1* 1 1* 1* /
/
TSTEP
730 /
Introduction
A run can be restarted by supplying a complete data file, and taking the initial solution from the
x ECLIPSE 100
x ECLIPSE 300
RESTART file. It is possible to restart a run with, for example, altered permeability data; but in
SPECIAL general such changes are not recommended.
x FRONTSIM
To do a restart from (say) the 11th report time of run BASE, the procedure is:
1 Think of a new file name root - say R1.
2 Copy the data file BASE.DATA into R1.DATA.
3 Edit R1.DATA.
In the SOLUTION section, delete all equilibration or enumeration keywords, and any
analytic aquifer keywords. Insert the RESTART keyword to specify the restart file and
report number.
In the SCHEDULE section delete the well and time-stepping keywords up to and including
the restart time, at report number 11 in the example. Modify the SCHEDULE data after
report 11 as required.
4 Submit the run with R1 as the root filename.
RESTART
'BASE' 11 /
Alternatively the SKIPREST keyword can be used skip all keywords (except the ones listed
below) until the time of restart.
Introduction
Relative permeabilities are entered as tables (keywords SWFN, SGFN, SOF2 and SOF3 or the
x ECLIPSE 100
x ECLIPSE 300
alternative family SWOF and SGOF). Saturation values need not be specified at equal intervals,
SPECIAL and are used in the specified form, rather than being interpolated onto regular intervals.
x FRONTSIM
All the saturation functions may be entered in multi-table form; tables are associated with cells
using the SATNUM keyword.
There are two families of keywords that define the saturation-dependent properties of the
reservoir fluids. The difference between them is that the first family allows you to enter the oil
relative permeabilities in the same tables as the water and gas relative permeabilities, while in
the second family the oil relative permeabilities must be entered in a separate table versus oil
saturation.
Either family can be used; however, keywords from different families must not be mixed in the
same run.
Note FrontSim does not fully support capillary pressure. For compatibility with ECLIPSE,
values must always be supplied. If capillary pressures are supplied, FrontSim
automatically equilibrates taking account of the capillary pressure. However, FrontSim
currently ignores capillary pressure for the remainder of the simulation. See
"Initializing the Study" on page 85 for more information.
Family (i)
SWOF sets water relative permeability, oil relative permeability in water, and water-oil capillary
pressure as a function of water saturation. This is required for 2 or 3 phase systems with both
water and oil.
Family (ii)
SWFN sets water relative permeability and capillary pressure as a function of water saturation.
This is required for 2 or 3 phase systems with water.
SGFN sets gas relative permeability and capillary pressure as a function of gas saturation. This
is required for 2 or 3 phase systems with gas.
SOF3 sets relative permeability of oil in water, and oil in gas at the connate water saturation, as
a function of oil saturation. SOF3 is required for 3-phase systems.
SOF2 sets oil relative permeability as a function of oil saturation. This is required for 2-phase
systems with oil.
S wco The minimum water saturation value in the table. The Equilibration calculation (see
keyword EQUIL) sets the water saturation to this value in grid blocks that lie above the water
contact (or water transition zone). In this respect S wco is the connate water saturation. In the
example shown above, S wco = S wcr . If for any reason the connate water saturation is less than
the critical value, the table should begin with the connate value. For example, for Swco = 0.2 and
S wcr = 0.22 , the table should begin with the lines
.20 .0 7.0
.22 .0 7.0
.3 .07 4.0
etc.
S w max
The maximum water saturation value in the table. The Equilibration calculation sets the water
saturation to this value in grid blocks that lie below the water transition zone.
In the example shown above, S w max = 1.0 , which results in the water zone being fully saturated
with water.
The oil saturations must be entered in ascending order in column 1. Columns 2 and 3 contain
the corresponding oil relative permeabilities for oil-water systems, and for oil-gas-connate
water systems respectively.
Five saturation values in the table are of special interest:
S oco The minimum oil saturation value in the table. This is the connate oil saturation.
Normally, S oco = 0.0 , as in the example above.
S ocr The critical oil saturation. This is the highest saturation value for which both the oil-water
and oil-gas permeabilities are zero. At saturations above this value, oil is mobile in the three-
phase region. Note that a critical oil saturation must be defined (the SOF3 table must contain
an oil saturation for which both krow and krog are 0). In the example above, S ocr = 0.20 .
S orw The Residual Oil Saturation in the oil-water system. This is the saturation at which the oil
relative permeability in the oil-water system becomes zero (So at which k row = 0 ). In the
example above, Sorw = 0.20 .
S org The Residual Oil Saturation in the gas-oil system. This is the saturation at which the oil
relative permeability in the gas-oil system becomes zero ( S o at which krog = 0 ). In the example
above, Sorg = 0.38 .
where
is the oil relative permeability for a system with oil, gas and connate water (tabulated as a
k rog
function of S o )
k rowis the oil relative permeability for a system with oil and water only (also tabulated as a
function of S o )
0
Gas
Oil
Sg/(Sg+Sw-Swco)
Water
1-So So
where
k rocw is the value of the oil relative permeability in the presence of connate water only
SS o = ( S o S om ) ( 1 S wco S om ) when S o > Som
F w = k row ( k rocw ( 1 SS w ) )
F g = k rog ( k rocw ( 1 SS g ) )
where
SS w = ( S w S wco ) ( 1 S wco S om ) when S w > S wco
SS g = S g ( 1 S wco S om )
In these formulae S o , S w and S g denote block averaged values for the oil, water and gas
saturations in a grid cell. k rog denotes the oil relative permeability for a system with oil, gas and
connate water, and krow denotes the oil relative permeability for a system with oil and water
only. Both two phase oil relative permeability functions are tabulated as functions of oil
saturation in the input data. k rocw denotes the oil relative permeability in the presence of connate
water only.
S om is the minimum residual oil saturation. By default Som is taken to be the minimum of the
critical oil-to-water saturation and the critical oil-to-gas saturation, min ( Sowcr, S ogcr ) .
k row
------------ k rog- + k k k
k ro = k rocw k - + k rw ------------ rg rw rg [EQ 13.3]
rocw k
rocw
where krog denotes the oil relative permeability for a system with oil, gas and connate water;
k row denotes the oil relative permeability for a system with oil and water only. Both sets of two
phase oil relative permeability functions are tabulated as functions of oil saturation in the input
data. k rocw is the oil relative permeability in the presence of connate water only.
Note Note the values of kro produced by this formula can be negative. FrontSim
automatically changes any negative kro values produced to zero.
The calculation of three phase oil relative permeability using Stones method 2 is enabled by
means of STONE2 keyword in the PROPS section of the input data.
Sg = Sg max
GAS ZONE Sw = Swco
So = 1 - Sg max - Swco
Sg = Sgco
OIL ZONE Sw = Swco
So = 1 - Sgco - Swco
Sg = Sgco
WATER ZONE Sw = Sw max
So = 1 - Sgco - Sw max
Otherwise, phases can be mobile even at zero saturation and there is nothing to stop saturations
going negative.
FrontSim issues a warning if these conditions are not satisfied. When SCALECRS is used, this
would lead to an error because in an oil-water run, for example, K rw would be scaled between
S wcr and 1 S ocrw that is a null range if the first condition is not satisfied.
Water 100%
So=Sowcr
Sg=Sgcr
So=1-Swcr Sw=Swcr So
So
S =1-S
g wcr
Sw=Swco
Introduction
The FrontSim saturation table End-point Scaling option allows you to redefine values for the
x ECLIPSE 100
x ECLIPSE 300
connate, critical and maximum saturations in the saturation tables describing the flow of the
SPECIAL reservoir fluids. The scaling facility is useful for modeling reservoirs which contain an initial
x FRONTSIM depth variation of either the connate or critical saturations for one or more of the phases present.
It has applications in general cases where the saturation function data for the reservoir fluids
depend on a normalized saturation variable.
The End-point Scaling option is enabled by the ENDSCALE keyword in the RUNSPEC section.
Separate re-scaling is done on relative permeability pressure curves. Generally, each is a two-
point rescaling, two saturation values in the tables being moved to new positions. There is also
an option to apply a three-point rescaling to the relative permeability curves only.
In a three phase model there are eight saturation table end points which may be identified:
SWL - connate water saturation. This is the smallest water saturation entry in a water saturation
table.
SWCR - critical water saturation. This is the highest water saturation for which the water is
immobile.
SWU - maximum water saturation. This is the largest water saturation entry in a water saturation
table.
SGL - connate gas saturation. This is the smallest gas saturation entry in a gas saturation table.
SGCR - critical gas saturation. This is the highest gas saturation for which the gas is immobile.
SGU - maximum gas saturation. This is the largest gas saturation entry in a gas saturation table.
SOWCR - critical oil-in-water saturation. This is the highest oil saturation for which the oil is
immobile in an oil-water system.
SOGCR - critical oil-in-gas saturation. This is the highest oil saturation for which the oil is
immobile in an oil-gas-connate water system.
We shall refer to the saturation end points taken from the saturation tables in the input data file
as the unscaled saturation end points.
The K rw max(table) is taken to be the value at either the maximum saturation of the saturation
table or at SWU if this has been specified.
If the KRWR keyword has been used, then the scaling will honor the K r at the critical saturation
(SR) of the associated phase.
KRWR(grid block)
K rw ( S ) = K rw(S) ---------------------------------------------- [EQ 14.6]
K rw(S r)(table)
2 SR SW SWU
If the value of K rwmax = K rw ( SR ) , a linear function is assumed between KRWR and KRW. If the
table end points are the same, that is SR = SWU in the water case, then the action taken depends
on whether the alternative scaling method is being used (see the SCALECRS keyword). If the
alternative scaling is active, then both KRWR and KRW are honored with a linear function
between the two points. If the default scaling is used, then the KRWR is ignored.
The two-point scaling is illustrated in Figure 14.1:
Figure 14.1 Two-point scaling
Unscaled Scaled
KRW
Krwmax
KRW
Unscaled Scaled
Krw
KRWR
Krwr
The K rw max(table) is taken to be the value at either the maximum saturation of the saturation
table or at SWU if this has been specified.
When the alternative three-point end point scaling method is invoked using keyword
SCALECRS, the scaling uses the three nodes SWCR, SR and SWU where
SR = 1 SOWCR(grid block) SGL ( grid block ) in water/oil or gas/oil/water runs
ECLIPSE 100, FrontSim SR = 1 SGCR(grid block) in gas/water runs
In order to ensure that at least one fluid remains mobile in the three-phase ternary diagram,
FrontSim also checks for the following:
1 SOWCR + SWCR < 1.0
2 SOGCR + SGCR + SWL < 1.0
FrontSim issues a warning if these conditions are not satisfied. When SCALECRS is used, this
would lead to an error because in an oil-water run, for example, K rw would be scaled between
SWCR and 1.0 - SOWCR, which is a null range if the first condition is not satisfied.
SGL
50*0.00 50*0.00 /
SGCR
50*0.10 50*0.20 /
SGU
50*0.99 50*0.98 /
SOWCR
50*0.05 50*0.22 /
SOGCR
50*0.08 50*0.21 /
SWL
50*0.01 50*0.02 /
SWCR
50*0.20 50*0.22 /
SWU
50*1.0 50*1.0 /
SGFN
0.0 0.0 0.0
1.0 1.0 0.5 /
SOF3
0.00 0.0 0.0
1.00 0.8 0.8 /
SWFN
0.0 0.0 1.0
1.0 1.0 0.0 /
SGFN
0.0 0.0 0.0
0.1 0.0 0
0.99 1.0 0.5 /
0.0 0.0 0.0
0.2 0.0 0
0.98 1.0 0.5 /
SOF3
0.00 0.0 0.0
0.05 0.0 0.0
0.08 0 0.0
0.99 0.8 0.8 /
0.00 0.0 0.0
0.21 0.0 0.0
0.22 0.0 0
0.98 0.8 0.8 /
SWFN
0.01 0.0 1.0
0.2 0.0 0
1.0 1.0 0.0 /
0.02 0.0 1.0
0.22 0.0 0
1.0 1.0 0.0 /
REGIONS
SATNUM
50*1 50*2 /
Introduction
FrontSim is a three-phase, three dimensional black-oil reservoir simulator where the solution
ECLIPSE 100
ECLIPSE 300
mechanism is based on a streamline concept. This chapter briefly describes this concept in
SPECIAL general and, more specifically, how it is implemented in FrontSim. The objective is to describe
x FRONTSIM the process for a single timestep and some of the artifacts rather than the technical mathematical
details. For details the reader is encouraged to read some of the recent papers on the topic. See,
in particular, [Ref. 1], [Ref. 2], [Ref. 16] and [Ref. 17] in the Appendix C in the "FrontSim User
Guide".
Using streamlines for modeling subsurface flow has been in the literature for a number of
decades, dating at least back to the 1950s. The main motivation for using streamlines to solve
for the fluid flow is the computational speed, but it is also attractive that the streamlines forms
a natural grid for the transport equation where a choice of numerical method can be applied. In
the 1990s there were a number of new developments for streamline simulation that brought it
back into the limelight. Modern streamline simulators now include 3D irregular and faulted
grids, changing well controls, compressibility, and gravity segregation as well as multi-
component, multiphase flow.
Streamline simulators are particularly effective in solving fine scale, geologically complex and
heterogeneous systems, and water flooding studies are frequently carried out using streamline
simulation.
( b S ) + ( b v ) = q
t w w w w w
((b S + R b S )) + (b v + R b v ) = q
t o o v g g o o v g g o
((b S + R b S )) + (b v + R b v ) = q
t g g s o o g g s o o g
[EQ 15.1]
where the velocities vi (Darcys law) are defined as:
v o = o ( P w o GVD )
v w = w ( P o w GVD )
v g = g ( P g g GVD )
k
i = K ----i [EQ 15.2]
i
is the porosity
g is the gravity constant
qi is the source/sink term for phase i
p
v t + Q = C t +
t v i c i p
[EQ 15.3]
i = o , w, g
The total Darcy velocity vt is defined by (Pc=0)
v t = t P o +
jj j g [EQ 15.4]
[EQ 15.3] and [EQ 15.4] are used to find the pressure distribution for a given saturation
distribution. The pressure equation is solved implicitly with a finite-difference method.
The saturation/concentration equations read:
( n S n ) [EQ 15.5]
- + ( n Fn ) = 0
----------------------
t
Number of streamlines
The number of streamlines necessary to represent the computational domain varies with a
number of parameters. Most significantly are the number of grid cells in the model, the number
of wells and magnitude of flow. The number of streamlines in FrontSim will by default be
approximately 10% of the number of active cells plus a number associated with the number of
active wells. This is usually more than enough. Since the speed of the simulation partly depends
on the number of streamlines computed it can be scaled by a user-defined multiplier. For
experienced users the streamline density multiplier available in keyword TUNEFSSA is
frequently used to speed up the calculations by setting it to a number less than 1.0.
FrontSim also has new methods to automatically remove unnecessary streamlines by examining
how well the volumes in the grid cells are preserved by the streamlines.
These can optionally be activated. See keyword OPTIONFS.
Addlines
When all the streamlines through the generated start points have been traced, FrontSim will look
for cells that have not been visited by streamlines to add streamlines when appropriate. This
procedure can be switched off by setting parameter 5 of keyword TUNEFSSA to NO. The cells
in question are naturally cells with very low flow and usually do not contribute much to the
overall solution.
Mapping saturations
Front-tracking method
For the front-tracking method, the saturations for each segment on the streamline can simply be
picked up from the individual constant values in the actual cell in the underlying grid.
Finite-difference methods
Since the cells in the 1D grid for the finite difference methods does not necessarily coincide with
the cells in the underlying grid the saturations and other properties that is needed on the
streamline is averaged from the corresponding cells in the underlying global grid. The averaging
is described in "Three-Phase Saturation Solver" on page 233.
Front-tracking method
For two-phase cases the default solver is the front-tracking method. This method accurately
tracks movements of fronts on the streamline. The speeds of the fronts are calculated as a
function of the slope of the fractional flow curve. The method is very fast and accurate for
models with low compressibility such as water-oil cases. A similar approach is used for tracer
flow, and tracers in FrontSim can only be combined with two-phase models using the front-
tracking algorithm.
Introduction
Tracing the streamline is the process whereby we create the unique streamline passing through
ECLIPSE 100
ECLIPSE 300
a specified point in 3D space. From this starting point the streamline is traced backward and
SPECIAL forward to create the complete streamline. The algorithm is iterative and rests on calculating the
x FRONTSIM exit point in a grid cell given an entry point, repeated until a stop criterion is reached.
Streamline parameters
From the perspective of the saturation solver there are three properties needed to define the
streamline. They are time of flight (TOF), flow rate and a pointer to a unique grid cell in the
underlying numerical grid. The flow rate and TOF are defined in points along the streamline,
and the grid cell pointer is defined for each linear segment between the points defining the
streamline. For the grid cell pointer to be unique, there have to be points defined for every grid
cell face that the streamline passes through. The grid cell pointer is used for picking up relevant
information defined on the grid and to map solution variables between the streamline and global
numerical grid.
Figure 16.1 shows how points and segments are defined with respect to the grid.
Points
Segments
The streamline method does not require the boundaries of a streamtube to be calculated. The
streamline can be thought of as the center of a streamtube and the combination of the TOF and
flow rate is used to calculate the pore volume in any of the streamline segments.
For a segment i on the streamline the pore volume PV is calculated as:
PV i = dTOF i Q i
where dTOF is delta TOF and Q is the total flow rate into segment i at reservoir conditions.
The 3D space coordinates are not used for the simulation itself, but necessary for any
visualization of the streamlines. They are calculated for output purposes only.
v t = t P o + ( j j j )g [EQ 16.1]
v x = v x0 + m x ( x x 0 )
m x = ( v x1 v x0 ) ( x 1 x 0 )
[EQ 16.2]
where 0 and 1 denote the two cell faces in the x-direction. The y- and z-directions are analogous.
Figure 16.2 Streamline (red) through a single cell
Vy1
Y1
Vx0 Vx1
X0,Y0 Vy0 X1
Entry
(Xa,Ya,Za)
In Figure 16.2 the streamline enters the Y0 face of a single cell and exits the X1 face through
the exit point Xb, Yb, Zb .
Given the entry point ( Xa, Ya, Za ) , the exit point ( Xb, Yb, Zb ) , Vx = dx dt and integrating
equation [EQ 16.2], the dt (or delta TOF) can be expressed as
dtx = ln ( ( v x0 + m x ( x b x x0 ) ) ( v x0 + m x ( x a x x0 ) ) ) m x [EQ 16.3]
Due to the orthogonal unit grid cell the dt for each of the faces can then be calculated separately.
Since the streamline must exit the cell faces inside the cell, there is only the minimum of these
dt functions that applies.
Once the dt is known, the exit point coordinates can be calculated by the following equation.
x b = x x0 + ln ( v xa exp ( m x dt ) v x0 ) m x [EQ 16.4]
The y- and z- directions are analogous and can be obtained by substituting x with y and z in
the above equation.
Stop criteria
The tracing continues until one of the following stop criteria is reached:
1 An active well is positioned in the current cell. The streamline is traced to the center of the
cell and terminated.
2 The streamline exits through a boundary. This may be either an open boundary defined by
pressure/flux (PSIDE, FLUXSIDE) or an aquifer connected to this cell face.
For compressible flow we have two more criteria to consider:
1 Sink/source in grid cells not containing wells. In this case either all the faces in a grid cell
have flow rates into the cell (sink) or they have only flow rates out from the cell (source).
Any cell in the grid can act as a sink/source in compressible cases, but they are most likely
to be close to the closed boundaries of the grid. If the difference between the total inflow
and outflow in the model is large, many streamlines are likely to have one endpoint in this
type of cell.
2 Low flow. This is very similar to the situation for the sink/source cells. The flow rate
calculated along the streamline reaches a predefined minimum close to zero, and the
streamline tracing is terminated. This minimum flow rate can be scaled by the user,
keyword TUNEFSSA (option 7).
Introduction
The FrontSim IOR tracer logic is a tool designed to provide an efficient workflow for history
matching, predicting and optimizing Water Alternating Gas (WAG) injection processes for
improved oil recovery (IOR) at the field operation scale. IOR WAG injection is a complex
multiphase process influenced by complex physical processes. Complicated injection
procedures, such as optimizing lean gas and solvent injections in producing fields also add to
the complexity. A predictive tool such as the FrontSim IOR tracer logic allows practising
reservoir engineers to design and to manage quantified IOR projects at the IOR injector/
producer pattern level. The FrontSim IOR tracer model is built on existing production
knowledge, and on geologic and petrologic understanding of trapped IOR oil targets.
The dynamic modeling of the IOR WAG process typically requires fine scale 3D fully-
compositional models that can handle fast-changing gas dynamics and viscous fingering, driven
by a large number of injectors or complex horizontal wells. The fundamental idea of the
FrontSim IOR tracer logic is to use tracer logic to mechanistically quantify solvent gas injection
and displacement processes with an upscaled 2D and two-phase (oil and water) streamline
model. In this manner, the high resolution model is preserved due to the high resolution of the
streamline simulator, yet the model can still be in a reasonable time on account of the numerical
efficiency of the simulator.
This guide illustrates important aspects of the IOR tracer logic tool. Background material is
provided as needed. The aim is for users to understand the basic IOR tracer logic concepts, and
to effectively use this option. This guide treats the following elements of the IOR tracer logic:
"The workflow of building the IOR tracer and truth model" on page 145.
"IOR tracer logic concepts" on page 151. Includes the IOR tracer logic itself, the
mobilization curve, the solvent allocation logic, and the logic taking into account
limitations in the production facilities.
"Keywords and parameters for the IOR tracer model" on page 165. Includes usage
examples.
"Scaling the model to match the field IOR mechanisms" on page 176.
A Truth Model is used as a starting point for the modeling of the IOR recovery in the field. This
is a finite difference model, most probably a sector of a larger model, and is assumed to
represent the ideal IOR recovery. This Truth model incorporates the complete physics of the
process. The simulator is capable of solving for fully compositional phase behavior, three-phase
relative permeability, explicit shale treatment, etc. The truth model represents a best guess on
how the WAG process will actually perform without the complications of numerical artifacts
and pseudo representations.
The IOR tracer logic workflow models complex 3D IOR displacement processes by combining
two types of models. The first type is the truth model, and the second type is an up-scaled two-
phase, 2D layered IOR tracer model.
2 Vertically average the reservoir properties, and run a 1D FrontSim model in which the IOR
tracer parameters are tuned in order to match the IOR production to that of the ECLIPSE
compositional Truth model. Figure 17.4 illustrates the corresponding 1D FrontSim model.
3 Combine a series of these sector models in order to model the full field using a single 2D,
IOR tracer model. An example of the full field tracer model is shown in Figure 17.5. It also
illustrates how the 1D sector IOR model relates to this 2D field model.
Figure 17.5 Illustration of a 2D full field FrontSim tracer model.
2 Vertically average the reservoir properties and run a 2D IOR FrontSim model in which the
IOR tracer parameters are tuned to match the IOR production to that of the finite difference
truth model. Figure 17.7 illustrates the corresponding 2D FrontSim model.
As in the previous workflow, the tracer parameters represent the production from a single,
vertically averaged, streamline bundle which connects the injector and producer. The
parameters used in this model may be translated to the full field IOR tracer model, as with
previous workflow (Figure 17.5 above).
Although only two specific workflows and relationships between the Truth model and the up-
scaled IOR model have been described here, we may see a variety of combinations of models
in the future; for example, the Truth model may be a 3D compositional streamline model rather
than a finite difference model, and the up-scaled IOR model may also be a 3D model. These
possible workflows will not be treated here.
This allows the application of generic tracers to model all the IOR WAG mechanisms along
streamlines, and to compute the concentration for the master tracers and the slave tracers.
Figure 17.8 The effective solvent and IOR oil have a master-slave relationship
On the left, Figure 17.8 shows IOR oil initialized at Sorw at some point along a streamline. On
the right, it shows how subsequent trapping of solvent causes an equal volume of IOR oil to be
mobilized. In this example, some IOR oil remains trapped.
In the IOR tracer model, each grid block is initialized with immobile IOR oil equal to the
residual oil saturation after water flooding. Typically, Sorw is not zero in the grid block. Any
effective solvent tracer entering into this block is trapped as it mobilizes an equal volume of
IOR-oil. The trapping of effective solvent is an irreversible process with respect to the IOR oil,
and it is modeled by an adsorption/desorption mechanism. An adsorption isotherm table is
assigned for the (master) tracers. It is used to compute the amount of adsorbed solvent in the
cells traversed by the streamline. Only the trapped master or effective solvent is able to displace
IOR oil present in this cell.
The tracer concentration along streamlines provides a spatial distribution of tracer movements
from injectors to producers. These distributions allow the visualization and quantification of the
effectiveness of WAG injection. A similar description can also be given for the IWAG processes
before and after the MWAG process, by replacing the master and slave tracer pair with the
appropriate fluid types.
Fluid in solution
C1 = effective solvent in solution
C2 = IOR oil in solution
C3 = ineffective solvent in solution
C4 = effective lean gas in solution before solvent
C5 = return trapped solvent in solution
C6 = ineffective lean gas in solution before solvent
C7 = effective lean gas in solution after solvent
C8 = return trapped lean gas in solution
C9 = ineffective lean gas in solution after solvent
Fluid adsorbed
A1 = effective solvent adsorbed
A2 = IOR oil adsorbed
A3 = ineffective solvent adsorbed
A4 = effective lean gas adsorbed before solvent
A5 = return trapped solvent adsorbed
where
WF Oil = oil produced as a result of water flooding.
The total solvent concentration is:
Solvent Effective Solvent ( Mobile + Trapped ) + Ineffective Solvent ( Mobile + Trapped )-
------------------ = --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PV PV
The IOR mobilization curve has a characteristic shape, shown in Figure 17.9. The initial solvent
slugs contain mostly effective solvent, while the final slugs contain mostly ineffective solvent.
In a typical model, most of the trapped solvent is effective solvent, whereas most of the
produced solvent is ineffective solvent. The partitioning of injected solvent into effective and
ineffective portions is transparent to you, who simply needs to enter the total amount of solvent
injected. The partitioning based on the mobilization curve is accomplished internally in the
simulator.
Initial slugs are more efficient than later slugs. The overall process efficiency is the slope of the
line from the origin to the final point. The incremental efficiency of each injected slug is the
slope of the IOR Mobilization curve as shown in Figure 17.9.
The mobilization curve can be used to partition injected slug type (lean gas and water, or solvent
and water) for use with the tracer logic. You specify the pore volume of the injected slug and
the injected slug type (lean gas, solvent, or water).
The ineffective solvent concentration, C 3 , is the remaining portion of the injected slug:
C3 = 1 C1 .
The above concentrations are normalized in the sense that C 1 + C 3 = 1 . When solvent is not
injected, both the effective and ineffective solvent concentrations should be defaulted to zero at
the injector for the current simulator time step. Because injection occurs in discrete time steps,
the above concentrations are, in fact, averaged efficiency levels during the current time step,
(change in sweep between time steps) -
with the ratio of: ---------------------------------------------------------------------------------------------------------
(change in gas injection between time steps)
.
For lean gas injection, a similar efficiency level is defined by the lean gas sweep curve slope (or
lean gas efficiency) as a function of the cumulative lean gas injection slug. In general, the lean
gas sweep is less effective than the solvent sweep because solvent tends to be more viscous:
eff
Q lg
- = 4, 7 = slope of lean gas sweep curve
C 4, 7 = -------------
total
Q lg
The ineffective lean gas ( C 6, C 9 ) is the remaining portion of the injected slug:
C 6, 9 = 1 C 4, 7
Both effective and ineffective lean gas concentration is zero in the event of no lean gas injection.
( C i + A i ) V ( X s ) C i
------------------------ + -------------- -------- = 0
T ( X s ) X s
where C i is the tracer concentration, A i is the absorbed concentration, V ( X5 ) is the given Darcy
velocity at streamline coordinate X 5 , i ( X 5 ) is the accessible pore volume factor (APV) at X 5 ,
and T is the simulated time period. All these quantities are defined for a particular tracer.
The IOR mobilization curve depends on the floodrate. This dependency is obtained by running
the finite-difference truth model at various floodrates.
Each solvent injector in the tracer-streamline model has an associated mobilization curve that
dictates the dynamic solvent displacement efficiency of all streamlines connected to that
injector. The mobilization curve contains no information on the timing of solvent or IOR oil
production. Timing is handled by the accessible pore volume factors that are discussed later.
In order to use the mobilization curve efficiently in the simulator, the curve needs to be
parameterized and fitted to the following equation.
IOR V solv
ER = --------------------------------------
- [EQ 17.1]
1- + A ( V
--- )
B
C solv
where E R IOR is the produced IOR oil ( VREF fraction), Vsolv is the solvent slugsize ( VREF
fraction) and A , B and C are curve fitting parameters.
The floodrate-dependent mobilization curve also needs to be parameterized and fitted to the
following equation:
ER
IOR Q
= -------------------------
- [EQ 17.2]
1
--- D ( Q )
+
E
F
Trapped solvent
max max
The IOR tracer logic uses a linear adsorption isotherm, with S solvent, trap and S gas, trap to represent
the maximum linear trapping weights. These are parameters chosen by you, and it is possible to
use other types of adsorption isotherms.
The MWAG mechanism mobilizes IOR oil by trapping the injected solvents along fronts that
propagate in the streamlines. The amount of incremental solvent concentration trapped, At1+ 1 ,
at the next time step is always positive.
t+1 t max t
A1 = max ( C 1S solvent, trap , A 1)
t+1 t
A1 = A2 + IOR Oil Mobilized
t+1 t
C1 = C 2 + IOR Oil Mobilized .
The master in the MWAG mechanism is the solvent tracer, whereas the slave is the mobilized
IOR oil.
t+1 t
A4 = A 4 Lean Gas Mobilized
t+1 t
C5 = C 5 + Lean Gas Mobilized
t+1 t
A1 = A 1 Solvent Mobilized
In this case, a different mobilization curve from the one used in the MWAG process is typically
used in order to obtain the portion of effective and the portion of ineffective lean gas tracer.
The adsorption values are entered using the TAD, TADE and TBLK keywords in FrontSim.
Notes
1 In trying to match the timing of returned solvent (RTMI) with field data, reducing APV for
ineffective solvent tracer can lead to earlier breakthrough of (ineffective) solvent tracer.
2 Similarly, the APV for IOR oil determines the IOR oil breakthrough. Reducing the IOR oil
tracer APV can cause earlier breakthrough.
3 The APV for effective solvent tracer also impacts the shape of the IOR production curve.
Increasing the APV can cause the delay of IOR oil breakthrough or cause the oil recovery
to take place at a reduced rate. Reducing the APV for IOR oil can cause earlier IOR oil
breakthrough.
In general, the shape or the timing of the IOR tracer breakthrough curve can be adjusted by
modifying APV values.
The APV values are currently entered using the TPFA and TPFV keywords in FrontSim.
Notes
1 Gravity must be switched off in the IOR tracer model: set TUNEFSSA item 1 to 0. It is also
possible to use NOGRAV, but for 2D models only.
2 The TRACER keyword defines an ordinary tracer that does not involve tracer logic.
3 The UNIFOUT keyword offers a different way to output the .SUMMRY file, which could be
of importance to some third-party post-processing tools.
Most of the IOR tracer model keywords have to be used in the SCHEDULE section of the
simulator input data deck. Exceptions are found for those keywords used for setting up the tracer
logic and the tracer initial conditions.
5 Specify the adsorption and propagation mechanisms with the TAD, TADE, TPFA and TPFV
keywords.
The APV (accessible pore volume) values are entered for each tracer with TPFA.
APV values for each cell and for each tracer can be specified by using the TPFV keyword.
Use TAD and TIADS for specifying tracer adsorption. The IOR tracer logic supports the
specification of the adsorption isotherm definition by tracer only.
Note Horizontal injection wells are not supported for all thickness scaling modes.
You choose the truth model volume scaling methods. The scaling methods available are
dimensional scaling and dimensionless scaling. This type of scaling must not be confused with
the thickness scaling mentioned below. It is possible to have multiple RANKWELL listings for
the same well, with the purpose of specifying the parameters of the different perforations. This
is useful when a well spans multiple layers. However, this does not work for horizontal wells,
or with the injector layered model scaling (compare the RANKING keyword).
The mobilization curves are required to have separate names if multiple RANKWELL entries are
used for the same well. This means that the three curve names for each of the three WAG
processes need to be different for any two RANKWELL listings of the same well. Perforation
information is not used in predictive mode or with solvent allocation logic. In these cases, only
the last listing of the RANKWELL keyword is meaningful. This limitation is due to the fact that
solvent allocation in predictive mode is well based, not perforation based.
THK PERF
THKRATIO = ------------------------------------------------
-
THK TRUTH_MODEL
This is possible by specify ALMODE=0,1 in the RANKING keyword.
3 In a 2D layered model, THKRATIO is the ratio of the total layer thickness to that of the
truth model. This is the model that also supports horizontal injection well:
THKLAYER
THKRATIO = ------------------------------------------------
-
THK TRUTH_MODEL
This is possible by specifying ALMODE=2,3 in the RANKING keyword.
4 In a 2D layered model, THKRATIO is the ratio of current perforation thickness to the total
active perforation thickness:
THK PERF
THKRATIO = ------------------------------------------
-
THK TOTAL_PERF
This is possible by specifying ALMODE=4,5 in the RANKING keyword
You are advised to refer to the solvent allocation logic in "IOR tracer model in predictive mode"
on page 168 for discussion on the controls and behaviors of solvent allocation logic in the
predictive mode.
IOR V solv
ER = ---------------------------------
-
1
---- + A ( V solv )
B
C
For reference, the value of C is the initial slope of the curve, whereas the B parameter controls
the shape of the curve.
Figure 17.13 Decreasing the A parameter raises the mobilization curve.
Note In the tracer model, we view the solvent as being composed of two parts effective
solvent and ineffective solvent. The ineffective solvent is that portion of the solvent
that flows rapidly from injector to producer through previously swept zones. It is
therefore ineffective at recovering oil. Thus, the solvent breakthrough time is normally
controlled by the APV of the ineffective solvent rather than the effective solvent.
You can exert some control over the shape of the IOR oil production curve by adjusting the APV
value of the effective solvent. Increasing the APV of the effective solvent causes the IOR oil
production to occur more slowly. IOR oil production slow-down occurs because a large APV
means that the solvent advances more slowly through the reservoir, thus desorbing oil more
slowly. The TPFAT1 keyword is used to set the APV of effective solvent as described above.
Table 17.2 List of solvent allocation keyword parameters for the RANKWELL
injectors
Note You should be consistent in normalizing injection and production rates with VREF, and
the same reference volume should be used throughout the same tracer simulation
model.
IOR V solv
ER = --------------------------------------
- [EQ 17.3]
1
---- + A ( V solv )
B
C
where E RIOR is the produced IOR oil (VREF fraction), Vsolv is the solvent slug size (VREF
fraction) and A , B and C are curve fitting parameters.
ER
IOR Q
= ------------------------------
- [EQ 17.4]
1
--- + D ( Q )
E
F
where E RIOR is the produced IOR oil (VREF fraction), Q is the flood rate (TPV fraction) and D ,
E and F are curve fitting parameters.
All the parameters A , B , C , D , E and F have to input into the simulation data deck, and hence
you are responsible for fitting the mobilization curves to the above equations.
The above equation forces the IOR recovery to be zero as the flood rate approaches zero.
However, even at low flood rates, a finite amount of oil is likely to be mobilized in practice.
Thus, the IOR curve is extrapolated backwards based on the slope of 0.03 TPV/year.
MI IOR
MI IOR Oil MI IOR MI
HPV HPV
MMRVB MMRVB HPV HPV DEPV
after WF after WF
0.00 0.00 0% 0% 0% 0% 0%
0.20 0.13 3% 2% 6% 4% 11%
0.50 0.28 7% 4% 15% 8% 27%
1.00 0.44 13% 6% 29% 13% 53%
1.50 0.53 20% 7% 44% 16% 80%
2.00 0.59 27% 8% 59% 17% 106%
2.5% 0.63 33% 8% 73% 18% 133%
3.00 0.65 40% 9% 88% 19% 159%
3.50 0.67 46% 9% 102% 19% 186%
4.00 0.67 53% 9% 117% 20% 212%
IOR
Scaling basis MI injected IOR (MMRVB)
(Based on above table)
HCPV_field 1/(10*0.50)=20% HCPV 7% HCPV_field 0.07*10*0.50=0.350
HCPV_field after 1/(10*0.2)=50% HCPV after WF (water 16.3% HCPV_field after WF 0.163*10*0.20=0.326
WF flood)
TPV (MMRVB) 10 20
IOR
Scaling Basis MI injected IOR (MMRVB)
(Based on above table)
HCPV_field 1/(20*0.753)=6.64% HCPV 3.66% HCPV_field 0.0366*20*0.753=0.551
These two examples show that FrontSim will predict different results depending on the scaling
basis. Since only a handful of truth models are developed in most reservoir studies, FrontSim
will typically have to do some scaling of the mobilization curves to field conditions even when
multiple mobilization curves are entered. Thus, you must tell FrontSim which scaling basis to
use. The rationale behind the various scaling assumptions is discussed below.
Generalizing the above argument, the angle-open-to flow (AOF) should be used to set the VREF
parameter on the TREFFIC keyword as follows:
AOF FIELD
= ---------------------------------------------
-
AOFTRUTH_MODEL
Although one would expect most field injectors to be full injectors, an example of a injector
is an injector that backs up to a sealing fault. In this case, the injected fluid only contacts 180
degrees of the area around the well. Another example is when FrontSim is run to tune the tracer
parameters. If the original finite-difference truth model is a pattern, then one would create a
-pattern, vertically-up-scaled FrontSim version of that model. In that case, = 1 since both
injectors have a 90-degree angle open to flow.
A similar argument holds for entering TPV in TREFFIC:
TPV = TPV TRUTH_MODEL
The TPV value is used for impacting the flood rate on recovery, and is discussed later. FrontSim
uses the following equation to convert injected solvent volumes to dimensionless basis before
computing the efficiency. Dimensionless solvent injected into injector INJ is
INJ
Solv_Inj ( RVB )
Tracer_Slug = -----------------------------------------------------------------------------------
-
THK FIELD
VREF ( RVB ) ---------------------------------------------
-
THK TRUTH_MODEL
Since the truth model volumetrics are used in this equation, the scaling is equivalent to a
dimensional scaling of the truth model results to the streamline tracer model.
To align front locations, FrontSim internally scales VREF by the ratio of the reservoir thickness
at the injector in the streamline tracer model to the reservoir thickness at the injector in the truth
model. While FrontSim knows the reservoir thickness at each injector in the streamline tracer
model, the thickness of the truth model must be supplied as the THK parameter in the TREFFIC
keyword.
IOR rates
The IOR tracer model is a two-phase model, the simulations of which predict water flood oil
recovery using traditional techniques, that is relative permeability curves. The IOR tracer logic
superimposes tracer flow along the streamlines that were generated by water flood calculations.
These tracers represent the flow of IOR oil, solvent and lean-gas. Thus, the concentration of
these produced tracers must be converted to flow rates using the appropriate tracer formation
volume factors with the TPVT keyword. Note, converting these tracers to volumetric quantities
means that their volumes must be subtracted-out from the water flood calculations in order to
conserve mass. Thus, we treat water as the swing variable and subtract the produced tracer
volumes from this water in order to compute the actual water production rate. Formulas given
in this section are valid only for volume definitions for the reserved IOR logic tracers T1
through T9. A description of the key parameters and concepts as related to the IOR tracer logic
is given in the following sections.
OOIP
OOIP in IOR tracer model is no different from any other two-phase models, although the initial
trapped IOR oil is in the form of the adsorbed IOR tracer T2. This is initialized by default using
the TADE keyword, or explicitly by using the TIADST2 keyword.
Injection rates
In order to use water as a swing variable, the volume of MI solvent gas injection is converted
into equivalent water volume, which is added to the total water injection ( rvb
-------- ):
d
WWIR is the true water injection rate and WSIR is the rate of MI solvent injected. Injected MI
solvent is then split into effective and ineffective portions, whose concentrations are defined as
WTCTi = (------------------------------------------
WSIR B_ Ti_I )-
WWIR B w
with I = 1 or 3.
Hence the MI solvent injection rate (Mscf/d) is:
Production Rates
We first define the well total liquid production rate as
from WWPR .
The solvent production rate, both effective and ineffective, in gas units (Mscf/d), is given by
By using water as the swing variable, it is possible that the produced water rate becomes
negative if a large amount of tracer is produced compared with the produced water volume. This
is solved by thresholding negative values of water production to zero. However, in this case, the
water material balance will not be correct when integrated over the life of the process.
The volume of produced IOR tracers is expressed as a fraction of the total RVB rate. The IOR
oil production rate (stb/d) is
WTCT2 WVPR- .
WOPRIOR = -----------------------------------------
B_T2_P
FrontSim uses B w to convert all tracer volumes to standard conditions. The cumulative oil
produced (stb) is
WTPTT2 B w
WOPT + ----------------------------------- ,
B_T2_P
WTPTT1 ----------------------- B w .
- + WTPTT3
----------------------
B_T1_P B_T1_P
You may choose to compute additional IOR variables by adopting the above methods, and by
using the existing reporting variables listed the tables given in "IOR Reporting Rates" on
page 187.
Table 17.8 Rates reported in the SUMMARY file at the specified time steps
WTITTi Well Tracer Cumulative Injection for Tracer Number Ti SM3/D - STB/D
WTPTTi Well Tracer Cumulative Production for Tracer Number Ti SM3/D - STB/D
Note Variables in Red are treated as primary variables in the IOR formulas. Rates in Bold
(or Bold) are reporting in the group and field levels. PVT properties in Blue are IOR
only and read in through the TPVT keyword.
PVT properties are read in from the input data. You should be aware that using small values for
the B_T#_I and B_T#_P formation volume factors might lead to inconsistencies in mass
balance calculations.
Rs Solution-Gas/Oil Ratio from Water Flood Oil SM3/SM3 - MSCF/STB Defined in RSCONSTT
B_T#_I Formation Volume Factor for tracer T# when injected RM3/SM3 - RVB/MSCF Defined in TPVT
RS_T# Solution-Gas/Oil Ratio for tracer T# (only required for IOR SM3/SM3 - MSCF/STB Defined in TPVT
oil tracer T2)
Table 17.10 Formulae to be used for computing the total well rates of the IOR tracer variables
TOTAL RATES
Variable Description Units
WWPR Well Water Production Rate SM3/D - STB/D
WWIR* Well Water Injection Rate at reservoir RM3/D - RVB/D
conditions
WVPR = ( WOPR B o ) + ( WWPR B w ) Well Volume Production Rate at reservoir RM3/D - RVB/D
conditions (Oil + Water)
WVIR Well Volume Injection Rate at reservoir RM3/D - RVB/D
conditions (Oil + Water)
Table 17.11 Formulae to be used for computing the oil well rates of the IOR tracer variables
OIL RATES
Variable Description Unit
WOPR Well Oil Production Rate from Waterflood SM3/D - STB/D
Oil
WOPR IOR = WTC T2 WVPR ( B_T2_P ) Well Oil Production Rate from IOR Oil SM3/D - STB/D
WOPR TO = WOPR + WOPR IOR Well Oil Production Rate from all Sources of SM3/D - STB/D
Oil
Table 17.12 Formulae to be used for computing the gas well rates of the IOR tracer variables
GAS RATES
Variable Description Unit
WGPR Well Gas Production Rate from Solution Gas SM3/D - MSCF/D
from Waterflood Oil.
WGPRIOR = WOPRIOR RS_T2 Well Gas Production Rate from Solution Gas SM3/D - MSCF/D
from IOR Oil
WGPRRTS = ( WTCT8 WVPR ) B_T8_P Well Gas Production Rate from Returned- SM3/D - MSCF/D
Trapped-Solvent
GAS RATES
Variable Description Unit
WGPRES = ( WTCT1 WVPR ) B_T1_P Well Gas Production Rate from Effective- SM3/D - MSCF/D
Solvent
WGPRIES = ( WTCT3 WVPR ) B_T3_P Well Gas Production Rate from Ineffective- SM3/D - MSCF/D
Solvent
WGPRTS = WGPRRTS + WGPRES Well Gas Production Rate from All Sources SM3/D - MSCF/D
+ WGPRIES of Solvent
WGPRRTLG = ( WTCT5 WVPR ) B_T5_P Well Gas Production Rate from Returned- SM3/D - MSCF/D
Trapped-Lean-Gas
WGPRELG = ( WTCT4 B_T4_P + WTCT 7 Well Gas Production Rate from Effective- SM3/D - MSCF/D
B_T7_P ) WQR Lean-Gas
WGPRIELG = ( WTCT6 B_T6_P + WTCT9 Well Gas Production Rate from Ineffective- SM3/D - MSCF/D
B_T9_P ) WQR Lean-gas
WGPRTLG = WGPRRTLG + WGPRELG + Well Gas Production Rate from All Sources SM3/D - MSCF/D
WGPRIELG of Lean Gas
WGPRTG = WGPR + WGPRIOR + WGPRTS + Well Gas Production Rate from All Sources SM3/D - MSCF/D
WGPRTLG of Gas
WGIRES = WTCT1 WWIR BW B_T1_I Well Gas Injection Rate from Effective- SM3/D - MSCF/D
Solvent
WGIRIES = WTCT3 WWIR BW B_T3_I Well Gas Injection Rate from Ineffective- SM3/D - MSCF/D
Solvent
WGIRTS = WGIRES + WGIRIES Well Gas Injection Rate from All Sources of SM3/D - MSCF/D
Solvent
WGIRELG = ( WTCT4 B_T4_I + WTCT7 Well Gas Injection Rate from Effective-Lean- SM3/D - MSCF/D
BT_T7_I ) WWIR BW Gas
WGIRIELG = ( ( WTCT6 ) B_T6_I + ( WTCT9 ) Well Gas Injection Rate from Ineffective- SM3/D - MSCF/D
B_T9_I ) WWIR BW Lean-Gas
WGIRTLG = WGIRELG + WGIRIELG Well Gas Injection Rate from All Sources of SM3/D - MSCF/D
Lean Gas
WGIRTG = WGIRTS + WGIRTLG Well Gas Injection Rate from All Sources of SM3/D - MSCF/D
Gas
Table 17.13 Formulae to be used for computing the water well rates of the IOR tracer variables.
WATER RATES
Variable Description
WWPRCORR = WWPR WVPR Well Water Production Rate Corrected for SM3/D - STB/D
( WTCT1 + WTCT2 + ...WTCT9 ) BW Tracer Production
WWIRCORR = WWIR ( 1 W TCT1 Well Water Injection Rate Corrected for SM3/D - STB/D
W TCT2 WTCT9 ) Tracer Injection
In Table 17.15 variable reports are for the FacilityOut and PRT files, for each eligible
producer. The list includes all producers and could be used to analyze IOR recovery
performance.
Table 17.16 Reporting variables in each cell at specified reporting time steps
Hint You can use ECLIPSE Office as an alternative to GridSim while working with the
output.
Quality-checking results
Material balance errors
A source of mass balance error may originate from a fast traveling tracer. This can occur when
small APV values are used, resulting in the IOR tracer travelling from the injectors to producers
within a very short space in time. It is possible that the tracer could travel from the injectors to
the producers within one time step. You may choose to use smaller time step in order to reduce
this type of error.
Tracer Compressibility
IOR tracers were originally designed to work with incompressible FrontSim IOR tracer models.
However, most of recent runs are based on IOR tracer models that is compressible. This use may
cause errors in the tracer mass balance, when large compressibility is used.
Introduction
Full tensor permeabilities are often required to describe complex reservoirs. Given a detailed
ECLIPSE 100
x ECLIPSE 300
heterogeneous reservoir description at the geological scale, upscaling is normally carried out to
SPECIAL reduce the model size to one suitable for reservoir simulation. These upscaling procedures will
x FRONTSIM generally create full tensor permeabilities, even if the permeabilities in the fine geological grid
are not represented as tensors. Full tensor permeabilities also arise in complex cross-bedded
systems where the dip directions will not in general coincide with a local coordinate direction.
A further case for full tensor permeabilities is in the modeling of fractured systems.
Conventionally, reservoir simulators ignore the full tensor nature of the absolute permeability
and assume the permeability can be represented by a diagonal tensor whose principal axes
coincide with the local coordinate axes. This allows the construction of the usual 5 point
discretization in 2D or 7 point in 3D which can be solved efficiently in the simulator.
Introduction of a full tensor permeability extends the stencil of the discretization scheme to 9
points in 2D and either 19 or 27 points in 3D.
FrontSim allows a full tensor description of the absolute permeability. The permeability tensor
may either be supplied by a pre-processor by upscaling the properties on the geological model,
or else it may be entered by keywords PERMXX, PERMYY, PERMZZ (which describe the
diagonal components) and PERMXY, PERMYZ, PERMZX to describe the off-diagonal
components.
Only positive definite symmetric tensors are allowed in the simulator. The principal directions
of the tensor must also be supplied. At present, the options are
1 the directions for the components of the tensor are aligned with the Cartesian axes.
The permeability tensor can be expressed as
k xx k xy k xz
K = k yx k yy k yz [EQ 18.1]
k zx k zy k zz
where by symmetry
Note FrontSim also accepts non-symmetric tensors although this might not be physical. The
user can supply a PERMYX different from PERMXY. If only PERMXY is entered,
FrontSim will assume symmetry by setting PERMYX=PERMXY.
The flow equations arising from the permeability tensor description are constructed using a
Multipoint Flux Approximation (MPFA). The transmissibilities are calculated by the control
volume discretization due to Aavatsmark et al. - see [Ref. 31] for details. The MPFA can only
be used in corner point geometry, not block centered geometry.
The discretization scheme is selected by the FDM9PNT keyword. The MPFA is a rigorous
treatment of both cell non-orthogonality and tensor permeability. Even for a diagonal isotropic
tensor, the MPFA will generally lead to a 9-point discretization in 2D in order to remove the bias
of grid non-orthogonality and grid orientation effects.
C (i,j+1) D (i+1,j+1)
(i-1,j+1)
A B
(i-1,j) (i,j) (i+1,j)
E F
(i-1,j-1) (i,j-1) (i+1,j-1)
The standard two-point flow between cells A=(i,j) and B=(i+1,j) for the corner point grid in
Figure 18.1 can be written for a component c embedded in a phase p ( P = o, w, g ) as
c c
F pAB = T AB M pAB dP pAB [EQ 18.3]
where
TAB is the two-point transmissibility between cells A and B
c
M pAB is the generalized mobility of component c in phase p
and
dPpAB is the potential difference of phase p between cells A and B, given by
dPpAB = PA P B pAB G ( D A D B )
and where
Pcp is the capillary pressure for phase p
where the summation is over steering transmissibilities S between cells AC, AD, AE and SF.
c
The mobility M pAB is evaluated in the upstream cell (A or B) according to the direction of flow
in [EQ 18.4].
The steering potential differences dPAS are evaluated using pressures and capillary pressures
for cells A and S but using the density term AB for the primary flow coefficient, so that
The transmissibilities T AB and T AS are calculated following the procedure described in [Ref. 31]
when the permeability K is a full tensor.
Note that the flows between adjacent cells depend on steering terms from adjacent cells.
Similarly in 3D, the flow between any two cells may depend on up to 16 steering
transmissibilities and this leads to a 19 or 27 point scheme.
In the present version of FRONTSIM, the MPFA transmissibilities are not calculated across
faults, but the two-point connections are used instead (see "Transmissibility Calculations" on
page 249).
If the FDM9PNT keyword is used without supplying off diagonal tensor permeabilities PERMXY,
PERMYZ and PERMZX, these terms are taken to be zero and the MPFA scheme is applied with
the diagonal tensor K =diag(PERMX,PERMY,PERMZ) in the specified basis.
a2
K1 A K2
a1
Q
Consider an interface PQ between two cells 1 and 2. The permeabilities in each cells are K 1 and
K2 . The directed area normal on the interface is denoted by A . Let a 1 and a 2 be the vectors
joining the midpoints of opposite faces of the cells. We call a 1 and a2 the covariant basis
vectors. Define the contravariant basis vectors a1 and a 2 with the condition that
j
a i a = ij
j a
j
=
j=1
2
j
f = A K = j A K a
j=1
2
to a1 , such that AKa = 0 , then the flux depends only on the gradient in the covariant
direction a 1 and implies that a two point discretization can be employed.
The grid is said to be K-orthogonal (see [Ref. 30] and [Ref. 31]) when A K is parallel to a1 .
[ ( A K ) a 1 ]a 1
= A K -------------------------------------- AK
a1 a1
This is evaluated separately for each of the two cells adjoining the interface A . The maximum
of these two values provides a measure of the departure from orthogonality for the interface,
that is, the departure from a two point flux approximation for this interface.
( i S i )
- + ( i Fi ) = 0
------------------- [EQ 19.1]
t
i is the density of phase i
is the porosity
To account for the gravity, we need to rewrite the equation slightly by separating the gravity and
convective terms. For incompressible flow we can then rewrite the equation as:
( S ) + ( F ) + ( G ) = 0 [EQ 19.2]
t i i i
Fi = fi vt [EQ 19.3]
FrontSim Technical Description The Oil/Water Front Tracking Saturation Solver 199
The Front-Tracking Method
G i = fi i Ddg [EQ 19.4]
We can now use the operator splitting concept (Bratvedt et al. [Ref. 16]) for the following
equations:
S 1
-------i + --- ( F i ) = 0 [EQ 19.5]
t
S 1
-------i + --- ( G i ) = 0 [EQ 19.6]
t
[EQ 19.5] models the convective flow without gravity and is solved by the front-tracking
method as described below. [EQ 19.6] models the gravity segregation of the fluids. The gravity
vector in [EQ 19.4] is of course constant and known, so the counter-parts to the streamlines, the
gravity lines, always are defined. [EQ 19.6]can also be solved using the front-tracking method.
Assumptions
Piece-wise constant initial saturation.
One of the assumptions for the front-tracking method is that the initial saturation must be piece-
wise constant. This is always the case in FrontSim where the initial condition is saturations that
are constant for each grid cell.
Streamline solution
Let us first show two examples on how the front-tracking algorithm works.
The first example is for the flow-function along a streamline while the second is for a gravity
segregation step on a gravity line.
On a streamline the flow-function will basically be the fractional flow function. For a water-oil
case the fractional flow ( f w )is defined as:
200 The Oil/Water Front Tracking Saturation Solver FrontSim Technical Description
The Front-Tracking Method
fw = w ( w + o )
w = k rw w, o = k ro o
[EQ 19.7]
k ri is the relative permeability of phase i
Figure 19.1 Fractional flow function approximated by a continuous piece-wise linear function
V4-
V34
f V4 f
V23
V3-or
V12
Vfront
Vwc-1 V2-or
V1-or
In Figure 19.1, the fractional flow function is the blue dotted line. Five linear segments have
approximated this function as piece-wise linear. The relative permeability is defined in six
points (Swc, S1, etc.). This approximation yields a piece-wise constant saturation function, the
red line in the figure.
Figure 19.2 Initial saturation at time t1 Figure 19.3 Saturation at time t2 with flow from left to right
S S
Sor
Time = t2
Vt
S4
V4
S3
Time = t1
Vfront
X Swc X
For example, given the initial saturation as shown in Figure 19.2 and the fractional flow-
function shown in Figure 19.1, the saturation profile along a streamline would look like the one
in Figure 19.3 after a given time, if the flow direction (Vt) is from left to right.
FrontSim Technical Description The Oil/Water Front Tracking Saturation Solver 201
The Front-Tracking Method
Figure 19.4 Saturation at time t3 with flow direction from Figure 19.5 Saturation at time t4 with flow direction from
right to left right to left
S S
Sor
Time = t3 Sor
Time = t4
V1-or
S4 Vt S3 Vt
V34
S3 V23
V23
S2 S2
V12 V12
S1 S1
Vwc-1 Vwc-1
Swc X Swc X
If the flow direction (vt) changes at time t3 the saturation profile is shown in Figure 19.4. In this
case, the lower envelope decides the size of the saturation fronts and their velocity. Initially,
after the change of direction, the saturation profile breaks into fronts with the front between S2
and S3 moving with highest velocity. When this front catches up with the front between S3 and
S4 they merge into a saturation front between S2 and S4, but with a slower velocity than the S1
to S2 saturation front. Eventually the S2 to S4 front and the S1 to S2 front merge into a front
between S1 and S4, which moves faster than the Swc to S1 saturation front. This situation is
shown in Figure 19.7 at time t6.
Figure 19.6 Saturation at time t5 with flow direction from Figure 19.7 Saturation at time t6 with flow direction from
right to left right to left
S S
Sor
Time = t5 Sor
Time = t6
Vt V1-or Vt
V2-or
S2
S1
V12
S1 Vwc-1
Vwc-1
Swc X Swc X
From these examples, we can see that the shape of the fractional-flow function determines the
shape of the saturation profile over time. The concept can use any type of fractional-flow
function.
The approximation points on the continuous piece-wise linear approximation function can, of
course, be varied to suit the accuracy required. The smooth parts of the saturation distribution
can also be modeled with many small physical shocks, if needed.
202 The Oil/Water Front Tracking Saturation Solver FrontSim Technical Description
The Front-Tracking Method
Gravity line solution
For the gravity segregation problem, that is, along the gravity lines, the equation for oil water
segregation reads:
S w
--------- + G w = 0
t
where G is defined as:
G w = fw ( o w ) o g
w
g
Let us assume we have a initial situation where water sits on top of the oil (Figure 19.8). We
want to see how this situation will evolve using the front tracking method.
Figure 19.9 Linear relative permeability curves Figure 19.10 Linear flow function
kw ko fw
1.0 1.0
Viscosity of oil &
water = 1.0
Sw Sw
1.0 1.0
Figure 19.11 Linear flow function multiplied by linear oil relative permeability and negative density difference
Gw
1.0
Sw
1.0
-0.5
FrontSim Technical Description The Oil/Water Front Tracking Saturation Solver 203
The Front-Tracking Method
For simplicity, let us use the linear relative permeability curves shown in Figure 19.9, and
assume viscosities at 1.0 for both oil and water, which result in the flow function shown in
Figure 19.10. If we then assume the water density is 1.0 and the oil density is 0.5 the difference
is -0.5. Multiplying the linear flow function with the linear oil relative permeability and the
negative density difference will result in the gravity flow function seen in Figure 19.11.
Figure 19.12 Gravity flow function with negative density Figure 19.13 Gravity flow function with negative density
difference: initial fronts difference: after front collisions
Gw Gw
V06 V06
S1 S2 S3 S4 S1 S2 S3 S4
Sw Sw
1.0 1.0
-0.5 -0.5
V1 V5
V2 V03
V3 V4 V51 V52
V04
Initial fronts are shown in red New fronts after front collisions
are shown in blue
For the example we have divided the saturations into five equally spaced parts. As before, we
find the velocities for each saturation front.
Initial fronts are shown in red in Figure 19.12, and new fronts after front collisions in blue in
Figure 19.13. The X-axis is positive in the direction of gravity.
Figure 19.14 Gravity flow saturation, Figure 19.15 Gravity flow saturation, Figure 19.16 Gravity flow saturation,
distribution, initial distribution, snapshot after time t1 distribution, snapshot after time t2
Sw Sw Sw
1.0 1.0 V5 1.0 V51
S4 S4 V4 S4 V4
S3 S3 S3
S2 S2 V2 S2 V2
V04
S1 S1 V1 S1
X X X
204 The Oil/Water Front Tracking Saturation Solver FrontSim Technical Description
The Front-Tracking Method
Figure 19.17 Gravity flow saturation Figure 19.18 Gravity flow saturation Figure 19.19 Gravity flow saturation
distribution, initial distribution, snapshot after time t1 distribution, snapshot after time t2
Sw Sw Sw
1.0 V52 1.0 V52 1.0
S4 S4 S4
S3 S3 S3
S2 S2 S2
V03 V04
S1 S1 S1
X X X
When water starts moving up and oil down, there are fronts moving in both directions. In Figure
19.14 we can see the initial situation, water to the left (on top) and oil to the right of the initial
front. In Figure 19.15, a snapshot after time t1, the fronts are moving upwards and downwards
according to the gravity flow function in Figure 19.12 and Figure 19.13. When the first front
(V1 / V5) hits the no flow boundaries at the top and bottom, a front reflects back from the
boundary.
In Figure 19.17 we see a snapshot at the left when fronts V4 and V04 have collided and formed
the front V03. In Figure 19.18 is a new snapshot before the two main fronts collide, and in Figure
19.19 the oil is on top and the water is on the bottom.
If we have higher resolution of points on the saturation function, the saturation distribution will
be smoother.
Front events
The FrontSim two-phase front tracker can handle any initial saturation distribution and is not
restricted to the number of fronts or the number of points on the saturation function. Increasing
the number of points on the saturation function (relative permeability) might slow down the
simulation. During a timestep the front-tracking algorithm will handle a large number of events
of collisions of fronts and fronts hitting the wells. Each event can either increase or decrease the
number of fronts. The timing of these events is continuous through the timestep, and the solver
will continue until there are no more events for the remainder of the simulation timestep.
FrontSim Technical Description The Oil/Water Front Tracking Saturation Solver 205
The Front-Tracking Method
206 The Oil/Water Front Tracking Saturation Solver FrontSim Technical Description
The Front-Tracking Method
The Pressure Equation
Chapter 20
Introduction
FrontSim is an IMPES (IMplicit Pressure Explicit Saturation) simulator. That is, we solve a
ECLIPSE 100
ECLIPSE 300
pressure equation in which all the terms that depend on saturation are evaluated at the initial
SPECIAL saturation and where the spatial derivatives of the pressure are evaluated using the pressure at
x FRONTSIM the end of the time step.Although IMPES is potentially unstable, it may be used on easy
problems such as history matching applications where the timesteps are usually small.
The Implicit pressure is a non-linear equation and is solved using a Newton Raphson method.
The Newton Raphson itself results in a system of linear equations which are solved using
Algebraic Multi-Grid equation solver.
1 dB ( B g R v B o ) d R
c o = ------ --------o- + ---------------------------- --------s ,
B o dP ( 1 R v R s ) dP
1 dB ( B o R s B g )- d R
c g = ------ --------g- + --------------------------- --------v ,
B g dP ( 1 R v R s ) dP
1- d---------
c w = ------
Bw
- ,
B w dP
and
t = o + + g ,
and where for each phase p (that is, for subscripts o, w and g):
p = p ( P p g d ) and
kkrp
p = ---------
-
p
where:
k is the permeability of the rock
k rp is the relative permeability of phase p
p is the viscosity of phase p
p is the density of phase p
Bp is the formation volume factor of phase p
Rs and Rv are respectively the dissolved gas and vaporized oil
P is the oil phase pressure
is the porosity
CT is the rock compressibility
and
Q consists of the source and sink terms arising from wells.
f(P) -
Pn = P n + 1 ---------------------- [EQ 20.2]
df ( P ) dP
since we have one pressure value for each cell and each cell is coupled to its neighbor by the
flow, the gradient of the function df ( P ) dP is a n n matrix where n is the number of active
cells in the model, and P and f ( P ) are vectors of length n .
The linear solver for the pressure equations is based on the SAMG solver developed by the
Fraunhofer Institute of Algorithms and Scientific Computing (SCAI). It is a Krylov subspace
method (conjugate gradient, GMRES, or Bi-CGSTAB) preconditioned by an algebraic
multigrid method. Algebraic multigrid works by combining two basic processes with
complementary properties. The first process smoothing is achieved by applying a classical
iterative scheme, such as Gauss-Seidel or incomplete LU factorization, to the system of
equations. The second process coarse grid correction is implemented by solving the defect
equation for a subset of the unknowns, and then interpolating the error to the full set of
unknowns. If the initial error was already smooth this process is highly effective. In fact the
combination of both processes yields a convergence rate independent of the number of
equations and is optimally efficient. The algorithm is implemented recursively, with the reduced
set of equations itself being solved by smoothing and coarse grid correction.
In SAMG the definition of the required sequence of reduced unknown sets, and the operators to
transfer data between them, are all generated automatically. These are based on the coefficients
of the original matrix, represented in sparse compressed-row format.
Convergence Criteria
The convergence criteria for both the linear and the non-linear solver are controlled by the
keyword TUNEFSPR. These controls fall into two categories.
First, the user can set a maximum number of iterations for both the linear and the non-linear
solver beyond which FrontSim will accept the solution. Care should be taken when accepting
un-converged solutions, as the results may not be accurate.
L = ( 100 Abs ( p ) ) ( p )
where p is the sum of the absolute changes in the pressure estimate as a result of the current
linear iteration, divided by the sum of the current estimate of the pressure.
The non-linear norm is given by
NL = ( 100 Abs ( P ) ) ( P )
where P is the sum of the absolute changes in the pressure estimate as a result of the current
non-linear iteration, divided by the sum of the pressure at the beginning of the time step.
Introduction
This chapter describes the Parallel Multicore option, which is a separately licensed extension to
ECLIPSE 100
ECLIPSE 300
FrontSim.
SPECIAL
x FRONTSIM
Note From the 2008.1 version of FrontSim the following modifications to parallel multicore
licensing is in place:
A new keyword GEOFLOFS for conducting incompressible simulations using parallel
multicore without requiring parallel multicore licenses is available. For all other
parallel simulations on more than 2 cores require additional parallel multicore licenses.
The base FrontSim license will automatically support up to 2 cores in parallel.
The Parallel Multicore option allows the simulation of a single data set to be explicitly split up
into multiple threads on a single shared memory parallel architecture computer with multiple
processors and/or cores. This implies that all the processors access the same physical memory.
Typically, such machines include the new multicore laptop computers, desktop PCs and high
performance workstations. The availability of 64-bit operating systems and large amounts of
installed memory means that fairly high resolution models can be simulated on simple personal
computing hardware.
Note The parallel multicore option is by design not available for cluster computing using
multiple processes and process interconnect.
Note One consequence of multithreading is that there will be minor differences in results
between serial and parallel runs.
The Multicore Parallel option is easy to use and requires a single keyword THREADFS in the
RUNSPEC section. The user needs to specify the number of threads to be used. Corresponding
number of parallel multicore licenses must be available.
Note The run stops if the required number of licenses is not available.
Ideally, the number of threads specified should equal the number of physical processor cores for
best performance. For further improvements in speed the recommended tuning options for serial
runs is still relevant. In particular, the sensitivity of the solution to number of streamlines used
should be analyzed using the TUNEFSSA keyword.
During the simulation streamlines will be distributed to the available cores for parallel
processing. Load balancing is automatic and no user interaction is required.
You may change the number of processors during a restart run.
Note The keyword is not currently supported via the GUI in Petrel and has to be introduced
via the keyword editor.
Depending on the nature of the problem the proportion of time spent on either of the solvers will
differ. In the example report above, the cumulative time spent on the pressure solution is 17.4
seconds while the saturation solution takes about 1000 seconds. Here time for saturation
solution includes the time to solve streamlines and gravity lines. The time taken to generate
streamlines should not be counted. Thus, about 98% of the total CPU time is taken by the
saturation solver. Such a model will benefit tremendously from using multicore parallel
processing. For example, a dual socket quad core workstation with a total of 8 CPUs will run
this problem in about 145 seconds (17.4+1000/8).
High resolution models often require a large number of streamlines so they make a perfect
candidate for parallel multicore processing. Fractured dual porosity models are another
candidate. The high throughput along streamlines passing through fracture cells require shorter
time steps due to stability considerations resulting in longer computation times for the saturation
solver.
Introduction
Streamline simulation is being increasingly used for managing waterflood operations in some
ECLIPSE 100
ECLIPSE 300
of the largest fields in the world (SPE 54616, SPE 63152, SPE 105393). Underpinning the
SPECIAL analyses of a waterflood is the relationship between injection and production wells. This
x FRONTSIM relationship can be directly and fully quantified on reservoir models through streamline
simulation as is clear from Figure 22.1. This ability of streamline simulation is unique. In the
past, engineers have used time consuming trial and error methods to optimize waterflood
simulations using streamline data. In this chapter we discuss the use of the Pattern Flood
Management (PFM) option which is a separately licensed extension to FrontSim. This option
provides an automated way of optimizing streamline waterflood simulations. The techniques
currently used are standard reservoir engineering methods and not black box optimization.
Figure 22.1 Comparison of water flood simulations.
Figure 22.1 shows on the left: waterflood simulation with finite difference method. And on the
right - same simulation using FrontSim streamline solution using the front tracking method.
Problem solving
PFM can be used to solve the following problems:
Using PFM
PFM is easy to use and is triggered by a single keyword, WCONPAT. There are various output
summary vectors associated with this option that allow analysis of the simulation (see Table
5.23 and Table 5.24 in the"FrontSim User Guide").
PFM is compatible with 3-phase black oil systems. If only oil-water slightly compressible
simulation is required then advantage can be taken of the front tracking solver. This solver is
much faster and introduces very little numerical dispersion so that sharp flood fronts are
maintained during the simulation.
FrontSim optimizes the allocation of water injection at every time step or after user-defined
intervals of time during the course of the simulation. Individual well constraints, economic
limits are taken into account during the allocation process. The option is compatible with well
workover logic.
FrontSim PFM and high speed simulation, with the new parallel multicore option, makes it
possible to think of high resolution waterflood simulation on a daily basis for reservoir
surveillance.
(Adapted from Ganesh Thakur, Integrated Waterflood Asset Management, SPE Applied
Technology Seminar, Mumbai, 2005)
A 'fill-up' phase followed by an oil rate 'incline' phase before breakthrough and finally a 'decline'
phase after breakthrough. Corresponding to these three phases of 'fillup', incline and decline one
can specify in WCONPAT either the VREP, RECOV and INJEFF allocation criteria, respectively.
There is, however, no restriction on the sequence of use for these different allocation strategies.
Note When getting started almost all the parameters of the WCONPAT keyword can be set to
default except for the allocation strategy.
To start the pattern management feature the wells in the reservoir model must have an initial set
of operating rates. Therefore, the use of WCONPAT should always be preceded by well rate
assignments using WCONPROD/ WCONHIST/ WCONINJE and/or group allocation controls
GCONPROD and GCONINJE. The run with pattern management could be a restart run from an
earlier history match run. First a time step, as explained above, is required in the schedule
section of the restart run to set initial well rates. In the next step the WCONPAT keyword is
introduced to begin the optimized rate allocation strategy. The history match could be either an
ECLIPSE or a FrontSim run.
For large number of injectors it is best to use the WLIST keyword to group injectors. The list
name is then directly used in the WCONPAT keyword. It is therefore possible to apply PFM to a
portion of a field, e.g. a pilot project.
Patterns are also conceived for the purpose of water flood monitoring. Patterns are thus groups
of well identified by the user and can be based on the original waterflood design, e.g. 5-spot, or
wells in close proximity, reservoir blocks/compartments or even reservoir history. Figure 22.4
shows a repeated 5-spot pattern of wells in a homogeneous permeability field. Patterns can also
be considered as fixed volumes of the reservoir containing a group of wells. For each well in a
pattern, it is recognized that only a fraction of its production or injection could be allocated to
that pattern. In Figure 22.4, producer P5 would contribute to the production of 4 different
patterns.
Allocation factors are difficult to measure or estimate independently but they form the basis of
all pattern based waterflood analyses. If the 'actual' pattern of wells were known to the user then
geometrical methods could be used to estimate the allocation factors. For example, in Figure
22.4 well P5 could have an allocation factor of 0.25 for each of the 4 patterns.
There are data-driven production data based polynomial fitting methods, for example neural
networks, for both identifying connected wells as well as estimating allocation factors.
Observe complete change in patterns. Plot on the right shows dynamic injector based patterns
Figure 22.5shows how the introduction of channel geology to the model in Figure 22.4 can
completely change the flooding patterns. This picture is more real than what we see in Figure
22.4. However, now the computation of well relationships and allocation factors becomes
extremely complicated. Correspondingly, allocation of injection water based on erroneous/
simplistic allocation factors could be very risky.
FrontSim is able to identify well patterns and generate allocation factors for any given geology,
well locations and rates. The pattern of connected wells in FrontSim also changes with every
time step during the simulation. Therefore, we refer to patterns identified by FrontSim as being
'dynamic' and those specified by the user (Figure 22.4) as 'static' or 'user-defined'.
FrontSim goes a step further than commonly used data driven methods that can detect
relationships and total allocation factors. FrontSim can define allocation factors for individual
fluid phases. For example, 40% of the oil production from a producer could be attributed to a
particular pattern, while the allocation of water production to the same pattern could be 60%.
It is normal in FrontSim to identify patterns of producers by their connection to an injector. Such
patterns are called injector based patterns. Patterns can also be identified as a set of injectors
influencing a producer. Such patterns are called producer-based patterns. Thus patterns in
FrontSim are normally associated with a single producer or injector. It is possible to identify
producers or injectors with associated streamline bundles that do not start or end in any other
well. This commonly happens when fluids are produced from or injected into aquifers,
depletion/expansion processes and compression of fluids.
Single phase or total allocation factors produced by FrontSim can be loaded into Oilfield
Manager (OFM) using a custom interface. Use the RPTSCHED and RPTALLOC keywords to
output separate files containing allocation factor information.
Figure 22.6 shows 5 separate bundles of streamlines connecting one injector (I24) to 5 different
producers. Such information is used by the Pattern Flood Management option together with a
chosen recovery strategy to allocate new injection and production rates according.
Strategies
There are currently three strategies available to choose from.
Weighting Scheme
The weighting scheme to determine the bundle allocation is based on published work by Thiele
et. al. (SPE84080). The following needs to be read in conjunction with the WCONPAT keyword
and its data items.
The basic rate change formula is
The general formulae used to calculate the weights for each injector-producer pair i are as
follows:
Alpha
W i = 1.0 + W lim Beta
Beta is a bundle parameter value that relates to the control strategy (item 2),that is oil cut if
reduce recycling is chosen or rate of flooding of remaining mobile oil if recovery balancing is
chosen. The parameter values at the end of the previous time step are used in the allocation
process for the current time step. In order for the allocation process to be meaningful, FrontSim
tries to ensure that the bundle configurations or patterns do not significantly change across time
steps.
Beta avg is the local average over all the bundles representing the list of injector wells
participating in the optimization. This is computed by FrontSim at run time.
The above graphs showing weights for range of Beta values were computed using the following
input in the WCONPAT keyword:
Alpha = 1, 2 (Item 3)
Range for Beta = 0.75 (Item 4)
Method to compute Beta Limits = 0 (Default for Item 5)
WMIN = -1.0 (Item 6)
WMAX = 1.0 (Item 7)
Beta min and Beta max were computed using the default formula (Item 5) for the given range.
= 0.45 (Either average oil cut or average recovery efficiency as requested by item 2 will
Beta avg
be computed by FrontSim).
For weighting schemes in both graphs above, it can be observed that injectors with oil cuts or
recovery efficiency at the extremities are affected the most by the rate adjustment. Weights
above 1 imply the injection rate is increased and weights below 1 imply the injection rate will
be decreased. If alpha is 1 then the rate increase or decrease is proportional to the variance of
beta around the average value. If alpha is 2 then injectors around the average beta value remain
relatively unaffected as the weights are close to 1.
The effect of choosing a range < 1 can cause the worst offending injectors to shut in (for
example above weight = 0 for beta < 0.1) while capping the injection rate for the best injectors.
There is considerable flexibility in designing a specific weighting scheme for a specific region.
The WCONPAT keyword accepts multiple record entries such that multiple 'lists' of injectors
with different weighting strategies can be operated upon simultaneously. It is also where the
feature is different from a regular optimization problem as engineering is required to produce a
strategy that gives the maximum benefit for a particular reservoir.
If Beta is changing rapidly at any time during the simulation then it may be advisable to use
shorter time steps for the optimization exercise to produce quality results.
Debug output that details the calculations can be produced by using OPTIONFS (51) = 1.
Note It is recommended, wherever possible, to start PFM with none or few well and group
constraints/limits and simple well schedules. Complex scheduling and application of
intricate well management routines together with PFM can be challenging and the user
is advised to contact the help desk before proceeding
SPE16957 - "An approach for the determination of economically optimum injection and
production rates in a large multi-pattern waterflood." 1987. [Ref. 2]
SPE 54616 "Waterflood Pattern Allocations: Quantifying the injector to producer relationship
with streamline simulation", 1999. [Ref. 4]
SPE 63152 " Waterflood Management: A Case Study of the Northwest Fault Block Area of
PrudhoeBay,Alaska,UsingStreamlineSimulationandTraditionalWaterfloodAnalysis,2000.[Ref. 5]
Introduction
Unlike the 2-phase case, it is not currently possible to solve streamlines by front tracking when
ECLIPSE 100
ECLIPSE 300
3 phases are present. In this case the streamlines are converted to 1-dimensional finite volume
SPECIAL models and solved using standard finite volume simulation techniques.
x FRONTSIM
The 1-dimensional streamlines are then solved by one of four techniques that you can specify,
and the results mapped back onto the grid.
Operator splitting is used to incorporate gravity segregation effects. After the streamline
solution is mapped to the underlying grid we construct vertical gravity streamlines which are
also solved as a series of 1-dimensional finite volume models.
M t + dt M t
- + F (P t + dt , S t + dt ) + Q (P t + dt , S t + dt )
R = -------------------------
dt
This means that we need to solve Ncell*Ncomp simultaneous equations where Ncell is the
number of cells and Ncomp is the number of components (compositional) or phases (blackoil)
in the model. The number of calculations required to do this varies linearly with Ncell and with
the 3rd power of Ncomp. Using the fully implicit method for large numbers of components can
therefore be quite slow.
For compositional runs where there are often too many components to be able to use the fully
implicit method efficiently, the AIM method may be a better and quicker option.
M t + dt M t
- + F (P t + dt , S t ) + Q (P t + dt , S t )
R = ------------------------- [EQ 23.1]
dt
The mass terms M t + dt are evaluated using both pressures and saturations at the end of the
timestep. This makes the non-linear residual equation, R = 0 , much easier to solve because
there are now no nonlinear values arising from relative permeabilities that remain fixed
throughout the timestep. However, to solve the IMPES equations correctly it is still necessary
to iterate until all residuals have been reduced to a sufficiently small value.
The linear equations arising from Newtons method are also much easier to solve in the IMPES
case because derivatives of flows with respect to saturations are zero. The linear equations are
solved sequentially, first for pressure and subsequently for saturation changes. This contrasts
with the fully implicit method where the linear equations must be solved simultaneously. The
IMPES formulation is strictly an IMPEM (IMplicit Pressure Explicit Mobility) method. The
mass terms M t + dt are evaluated using both pressures and molar densities at the end of the
timestep. The flow terms between cells are evaluated assuming the saturations, generalized
mobilities and reservoir density terms are all fixed at the previous timestep.
AIM
The Adaptive IMplicit method (AIM) is a compromise between the fully implicit and IMPES
procedures. Cells with a high throughput ratio are chosen to be implicit for stability and to
obtain large timesteps, while the majority of cells can still be treated as IMPES where the
solution may be changing little. All completions are treated implicitly.
More details of these can be found in "Formulation of the Equations" in the "ECLIPSE
Technical Description".
Explicit
This is (2005A) the default method for three-phase black oil models.
The explicit option is a explicit upstream finite volume saturation update along the streamline.
This is much faster than the other 3 solution techniques, but will might require that the full field
pressure equation be solved more frequently.
V sl = Vi
where V sl is the volume of the streamline cell and Vi is the volume of grid cell i that also forms
part of the streamline cell. Most of the properties of the streamline cell are then calculated using
the pore volume weighted average of the property
Vi Xi
X sl = ----------------- .
V sl
In the case of the amount of each fluid in the cells we use the specific volumes, that is surface
volumes per unit reservoir volume for black oil cases and molar densities for compositional
cases. In the case of pressures, the user has two alternative methods of calculating the pressure.
The default method is to calculate the pressure at which the fluid exactly fills the cell. This
should conserve volume. Alternatively the user can optionally use the pore volume weighted
average of the pressure. In this case the volume of fluid in the cell is adjusted so that the
saturation of water is preserved, and also the ratio of surface gas to surface oil in black oil cases.
In compositional cases the moles of the components are simply scaled so that the fluid occupies
the entire cell. This latter technique introduces a material balance error; however, if the fluids
are fairly incompressible, the material balance error should be small and the initial pressure will
tend to be smooth.
The choice of initial pressure is controlled by item 7 of the OPTIONFS keyword.
V gr = Vj + Vnsl
where
V gr is the volume of the grid cell,
V nsl is the volume of the grid cell which is not contained in a streamline,
Numerical Dispersion
The mapping process can be very dispersive.
Figure 23.1 Numerical dispersion through the mapping process
Sg=1
So=1
Take the case above where we have 2 grid cells, one above and one below the gas oil contact,
and with 100% gas above the contact and 100% oil below. If we then have a streamline cell
(indicated by the dotted line) which straddles the contact, then the streamline cell will contain
50% gas and 50% oil. If we now map the fluids back to the grid, the upper cell will have 75%
gas and 25% oil. This is without moving any fluids.
The user should therefore be aware that while shortening timesteps will generally improve the
quality of the solution along the streamline, any improvement may be more than offset by the
increase in numerical dispersion.
Introduction
In black oil models, FrontSim checks for positive compressibility of each single reservoir fluid
x ECLIPSE 100
x ECLIPSE 300
as the PVT data is read (the formation volume factor must be a monotonically decreasing
SPECIAL function of pressure assuming all other variables are held fixed).
x FRONTSIM
However, FrontSim also checks that oil-gas mixtures have a positive total compressibility even
when there is mass transfer between the two phases. For example, it is well known that oil
sometimes swells when the pressure increases, apparently in violation of physical principles.
This swelling occurs because gas is dissolving in the oil. Provided that the reduction in the
volume of gas is greater than the increase in the volume of oil, the total volume of the oil-gas
mixture reduces as the pressure increases, and the paradox is resolved.
It is possible to calculate a value for the total compressibility of a hydrocarbon system where
mass exchange may occur between the reservoir liquid and vapor phases. Consider a volume Vg
of separator gas and a volume Vo of stock tank oil at surface conditions. Compress the mixture
to pressure P, volume V and assume that a two-phase equilibrium state is formed. The material
balance equations for the oil and gas components are
V S V Rs So
Vg = ------------g- + ---------------------
- [EQ 24.1]
Bg Bo
V S V Rv Sg
Vo = ------------o- + ----------------------
-. [EQ 24.2]
Bo Bg
[EQ 24.1] and [EQ 24.2] allow the mixture volume V and gas saturation Sg to be computed. If
the pressure of the system is increased, the volume occupied by the liquid-vapor system must
decrease for physically well-defined fluids. The total compressibility of the system,
C t = ( 1 V ) ( dV dP ) , can be shown to be given by the following expression
S dB dR B o R s B g S o dB o dR s B g R v B o
C t = -----g- --------g- + --------v -----------------------
- + ------ --------- + -------- ------------------------ [EQ 24.3]
Bg dP dP 1 R s R v B o dP dP 1 R s R v
where the pressure derivatives are taken along the saturation curve.
which splits the total compressibility into gas and oil dependent terms.
To derive this expression, we assume without loss of generality that
So + Sg = 1 [EQ 24.5]
since the volumes of stock tank oil and separator gas are fixed.
Solving for S o and S g gives
Rv Vg Vo Bo
- -------------------
S o = ----------------------- - [EQ 24.7]
V Rs Rv 1
and
Rs Vo Vg Bg
S g = ----------------------- -------------------
- [EQ 24.8]
V Rs Rv 1
1
V = ------------------------- ( V o ( R s Bg B o ) + V g ( R v B o Bg ) ) [EQ 24.9]
( Rs Rv 1 )
Hence
1 dV
C t = --- ------ [EQ 24.10]
V dp
( R s dRv dp + R v dR s dp )
= -----------------------------------------------------------
-
( Rs Rv 1 )
dBg dR s dB dB o dR v dB
Vo R s --------- + B g --------- --------o- + V g Rv --------- + B o --------- --------g-
dp dp dp dp dp dp
+ ---------------------------------------------------------------------------------------------------------------------------------------------
Vo ( Rs Bg Bo ) + Vg ( Rv Bo Bg )
which after some manipulation, and substitution for Vo and Vg using the above relations, leads
to the desired expression for C t .
Some simple limiting cases may be derived from [EQ 24.3].
If R s = Rv = 0 then
S dB S dB
C t = -----g- --------g- -----o- --------o- > 0 [EQ 24.11]
B g dP B o dP
Note The effect of a negative total compressibility is usually to cause the simulator to
experience numerical difficulties (convergence failures and/or erratic changes in the
solution) in regions where the total compressibility is negative.
Introduction
The Tracer Tracking option is a general facility to follow the movement of marked fluid
ECLIPSE 100
ECLIPSE 300
elements during a simulation run.
SPECIAL The Tracer Tracking option has a wide variety of reservoir modeling applications. In the case
x FRONTSIM
of tracers defined to exist in the water phase, it may be used, for example, to determine the
movement within the reservoir of water injected into any number of injection wells or to predict
the variations in salinity or concentration of other chemical species in the water produced from
the reservoir
Tracers may also be defined to exist in the oil phase.
The tracer concentrations can be initialized on a grid cell basis to trace fluids from certain areas
of the reservoir.
The current Tracer Tracking option assumes that the presence of tracers does not affect the PVT
properties of the phases in which they are embedded. The tracers are thus to be regarded as
passive. The tracer equations are a set of conservation equations for each tracer species.
The current implementation can only be combined with the two-phase front tracking saturation
solver and can not be used with three phase models.
Here:
c = concentration in fluid phase
a(c) = adsorbed amount of tracer
A = maximum adsorbed amount of tracer
k1 = reaction coefficient for adsorption
k2 = reaction coefficient for de-adsorption
Several options are possible for the units for the adsorbed amount. Mass of tracer per mass of
rock is frequently used.
If we assume that the time scale for the adsorption process is short compared to the time scales
of interest in reservoir simulation, we may assume that equilibrium is established
instantaneously. Thus, the above equation gives:
k 1 Ac
a ( c ) = ----------------------
- [EQ 25.2]
k 1 + k 2 Ac
which is the Langmuir model for adsorption.
In Figure 25.1 we see a typical shape of the function.
a(c)
For adsorption processes, hysteresis is also an important effect. Anything between no hysteresis
and complete irreversible adsorption may occur, and may complicate the modeling to some
extent.
For the one-phase tracer model in <ProductName>FrontSim, the adsorption is used explicitly
to compute the tracer shock speed. The conservation law for the tracer is:
( c + a ( c ) ) + ( vc ) = 0 [EQ 25.3]
t
where v is the flow velocity. Thus, the shock speed of a tracer shock (separating cL and cR ) is
given by
cR cL
= ------------------------------------------------------
-v [EQ 25.4]
cR + a ( cR ) cL a ( cL )
In the present version of the code, hysteresis is accounted for by assuming that if present, the
adsorption is irreversible. Thus, in the above expression, in case of irreversibility
(IRREVERSIBLE), the immobile concentrations a ( cL ) and a ( cR ) are determined not by the
actual floating concentrations, but by the maximum value ever obtained at the actual location.
The adsorbed tracer distribution is updated globally after each time step.
Introduction
This chapter describes the expressions used by FrontSim to calculate transmissibility values,
x ECLIPSE 100
x ECLIPSE 300
between cells in the grid, and between cells and numerical aquifers.
SPECIAL The transmissibility calculations for each type of geometry are detailed in the next section. In
x FRONTSIM
the corner point case, transmissibility values between cells that are not neighbors in the basic
indexing grid may be calculated on the same basis as those for neighboring cells. In both cases,
the mutual interface area is calculated, and this may be non-zero for non-neighboring cells at
faults.
Transmissibility calculations
There is one transmissibility calculation available in FrontSim.
It is based upon the use of cell corner points, which are available to FrontSim when the COORD/
ZCORN form of grid definition is used. It is possible to distinguish unambiguously between cell
dip and fault displacement, and fault transmissibilities are generated automatically.
X- transmissibility
The X-transmissibility is given by the expression:
CDARCY TMLTX
TRANXi = ---------------------------------------------------i [EQ 26.1]
1 + ----
---- 1
Ti Tj
where
AD
T i = PERMX i RNTG i ---------------i-
Di Di
with
( A D i ) = A X D iX + A Y D iY + A Z D iZ
and
2 2 2
( D i D i ) = D iX + D iY + D iZ .
AX , AY and A Z are the X-,Y- and Z- projections of the mutual interface area of cell i and cell j
(which need not be neighbors in the cartesian indexing grid), and DiX , DiY and DiZ are the X-,
Y- and Z-components of the distance between the center of cell i and the center of the relevant
face of cell i, these centres being obtained as the appropriate average.
The expression for T j is analogous.
Y- and Z- transmissibility
The Y- and Z-transmissibility expressions are similar, the net to gross ratio being absent from
the Z expression.
The calculation is illustrated by the following figure (where PERMX is represented by Kx):
Kxi- Kxi+
Dxi
A Dxj
Kxj- Kxj+
Introduction
This chapter outlines the relationships that FrontSim uses to calculate well inflow performance.
x ECLIPSE 100
x ECLIPSE 300 We define the flow path between the well bore and a single reservoir grid block as a
SPECIAL connection.
x FRONTSIM
The total flow rate (oil + water + gas) at reservoir conditions across a connection is given by the
Inflow Performance Relationship.
c is a unit conversion factor (0.001127 in field units and 0.008527 in metric units).
q is the angle of the segment connecting with the well, in radians. In a Cartesian grid its
value is 6.2832 (= 2 ), as the connection is assumed to be in the center of the grid block.
For wells located on an edge (or a corner) of a grid block, use keyword WPIMULT after
COMPDAT to scale the resulting connection factors by 0.5 (or 0.25).
Kh is the effective permeability, multiplied by the net thickness of the connection. For a
vertical well the permeability used here is the geometric mean of the x- and y-direction
permeabilities, K = ( Kx K y ) 1 2
The pressure equivalent radius of the grid block is defined as the distance from the well at which
the local pressure is equal to the nodal average pressure of the block. For a Cartesian grid
Peaceman's formula is used, which is applicable to rectangular grid blocks in which the
permeability may be anisotropic. The well is assumed to penetrate the full thickness of the
block, through its center, perpendicularly to two of its faces.
2 12 2 12 12
[ Dx ( Ky Kx ) + Dy ( Kx Ky ) ]
ro = 0.28 ----------------------------------------------------------------------------------------
14 14
- [EQ 27.3]
( Ky Kx ) + ( Kx Ky )
where Dx and Dy are the x- and y- dimensions of the grid block, and Kx and K y are the x- and
y- direction permeabilities.
[EQ 27.2] and [EQ 27.3] are intended for vertical wells. Horizontal wells may penetrate the
block in either the x- or y- direction, or the appropriate components of permeability and block
dimensions are substituted in these equations. For a well penetrating in the x-direction, for
example, the quantities K y , K z , Dy , Dz will be used in [EQ 27.2] and [EQ 27.3].
A net-to-gross ratio applied to a grid block containing a horizontal well will not affect the Kh
product, but will still affect the equivalent radius ro through the reduction in the value D z .
J = Qr ( P d P w ) [EQ 27.4]
where
Qr is the total production rate at reservoir conditions, and
Pd is the pressure at the drainage radius.
The simulator calculates the productivity index of each well from this expression, and can
optionally print it out at each well report.
The reservoir pressure at the drainage radius could be obtained from a representative grid block,
or the average pressure of the field or a suitable fluid-in-place region could be used.
Well completions
Multiple connections
Each well can be completed in several layers of the reservoir. A communication between the
x ECLIPSE 100
x ECLIPSE 300 well bore and a single grid block is defined as a connection. A given well may have any number
SPECIAL of connections.
x FRONTSIM
The connections belonging to a particular well need not all lie in the same vertical column of
grid blocks, so it is possible to model highly deviated wells. Moreover, a well can be completed
in several grid blocks within the same layer, enabling the simulator to model horizontal wells.
Inflow performance
The flow rate of a phase (oil, water or gas) through a connection is proportional to the product
of three quantities:
1 the transmissibility between the grid block and the well bore
2 the mobility of the phase in the grid block at the perforations
3 the pressure drawdown between the grid block and the well bore.
In certain situations the drawdown in one layer may have the opposite sign to the drawdown in
the other completed layers. The simulator will then allow crossflow to take place between the
reservoir layers through the well bore. The crossflow facility can be turned off if the engineer
does not wish this to occur, using a switch in the keyword WELSPECS.
Economic limits
There is an additional class of limits that can be applied to production wells. The engineer can
specify values of the oil or gas production rate, the water cut, the gas-oil ratio and the water-gas
ratio which represent the limits of economic operation of the well. The violation of one of these
limits will result in the well, or one or more of its connections, being automatically closed. The
economic limit options are:
1 Lower limits for the oil, gas and liquid production rates for each well. The well is closed if
any of these limits are broken.
Note There are three different ways of defining the flow rate, water fraction and gas fraction
in producer VFP tables. You should select the most appropriate definitions for the type
of well being modeled. For example, if it is an oil well which eventually waters out, a
VFP table defined in terms of the liquid rate, water cut and gas-liquid ratio would be
suitable. For gas wells, the VFP table should be defined in terms of the gas rate, water-
gas ratio and oil-gas ratio.
The artificial lift quantity (ALQ) is a fifth variable that can be used to incorporate an additional
look-up parameter, such as the level of artificial lift. For example, if gas lift is being applied, the
artificial lift quantity could refer to the injection rate of lift gas into the well bore.
FIELD
Economic limits
The set of economic limits described earlier for wells can also be applied to the overall
production of groups, and of the field as a whole. If the oil or gas production rate of the group
(or field) falls below a minimum value, all its production wells are closed. If the group (or field)
water cut, gas-oil ratio or water-gas ratio exceeds a maximum value, then the worst-offending
connections or wells in the group (or field) will be shut down. The economic limit values are set
using keyword GECON.
Introduction
The Wellbore Friction option models the effects of pressure loss due to friction in the well
x ECLIPSE 100
ECLIPSE 300
tubing along the perforated length, and between the perforations and the bottom hole reference
x SPECIAL point of the well. The facility is primarily intended for use with horizontal wells, in which
frictional pressure losses may be significant over the horizontal section of the well-bore and in
the branches.
In the standard well model, frictional pressure losses between the well connections and the
bottom hole reference point are neglected entirely. The difference between the pressure at the
connections and the bottom hole pressure is purely the hydrostatic head of the fluid mixture in
the wellbore acting over the difference in true vertical depth between these locations. In wells
completed vertically through the formation, the frictional pressure drop acting over the
relatively short length of the perforated section is generally negligible.
In horizontal wells, however, the perforated section may extend over many hundreds of feet.
The frictional pressure drop over this length may have a significant effect on the behavior of the
well. The pressure in the well-bore towards the far end of the perforations (that is, away from
the wellhead) will be higher than the pressure at the near end, so the drawdown will vary over
the perforated length. This may cause the productivity per unit length of perforations to fall off
towards the far end. Furthermore, the lower wellbore pressure at the near end of the perforations
may cause localized water or gas coning to occur in this region, thus reducing the effectiveness
of the horizontal well in overcoming coning problems. It is therefore important to consider the
effects of frictional pressure losses when deciding on the optimum length and diameter of a
horizontal well.
Transforming the flow velocity into the local volumetric flow rate Q (in rb/day or m3/day) and
taking into account the unit conversion factors, the pressure drop becomes
2
Cf f L Q
P f = -----------------------------------
- [EQ 29.2]
5
D
where
Cf = 2.956E-12 in FIELD units (L and D in ft., in lb/ft.3, Q in rb/day)
16-
f = ----- [EQ 29.3]
Re
For Re > 4000 we use Haalands formula ([Ref. 28]),
e 10 9
--1- = 3.6 log10 6.9
------- + ------------ [EQ 29.4]
f Re 3.7D
where
e is the absolute roughness of the tubing in the same units as D
In the uncertain region (2000 < Re < 4000) we use a linear interpolation between the values
at Re = 2000 and Re = 4000. The above scheme has the advantage of providing a direct
calculation for values of f that are continuous in Re and are in reasonable agreement with the
friction factor chart (see [Ref. 29], for example). It should be noted, however, that these
formulae do not take account of fluid inflow through the perforations. Its influence on the
effective roughness of the tubing is largely unknown at present, and the engineer is advised to
vary the roughness to gauge the sensitivity of the results to this parameter.
The Reynolds number is
Re = vD
---------- [EQ 29.5]
where
C r Q
Re = ---------------
- [EQ 29.6]
D
where
Cr = 0.1231 in FIELD units ( in lb/ft.3, Q in rb/day, D in ft., in cP
Constants
Table 31.2 gives the values of some principal constants in the two unit conventions.
API gravity
API gravity = (141.5 / liquid gravity) - 131.5
V is volume
n is number of moles
T is temperature
Using [EQ 31.1], we can calculate the following:
When P = 14.7psia and T = 519.67R ,
the volume occupied by one mole of gas is:
Restrictions. . . . . . . . 56
A Specific Facilities . . . 55
Transmissibility Calculations52,
G
Aquifer Modeling. . . . . . . .29 54 GEOFLOFS
Carter-Tracy . . . . . . . .31 Using . . . . . . . . . . . . 80
Constant Flux . . . . . . .35 GEOFLOFS simulation . . . 81
Fetkovich . . . . . . . . . .33
Numerical . . . . . . . . .30 E Geologic Model Screening. 73