Reveal Complete
Reveal Complete
Reveal Complete
User Manual
IPM
REVEAL
Version 4.5
January 2010
REVEAL
IPM - Specialised Reservoir Numerical Simulator
by Petroleum Experts Limited
3
Copyright Notice
The copyright in this manual and the associated computer program are the property of Petroleum Experts
Ltd. All rights reserved. Both, this manual and the computer program have been provided pursuant to a
Licence Agreement containing restriction of use.
No part of this manual may be reproduced, transmitted, transcribed, stored in a retrieval system, or
translated into any language, in any form or by any means, electronic, mechanical, magnetic, optical or
otherwise, or disclose to third parties without prior written consent from Petroleum Experts Ltd., Petex
House,10 Logie Mill, Edinburgh, EH7 4HG, Scotland, UK.
IPM Suite, GAP, PROSPER, MBAL, PVTP, REVEAL, RESOLVE, IFM, ModelCatalogue and OpenServer
are trademarks of Petroleum Experts Ltd.
Microsoft (Windows), Windows (2000) and Windows (XP) are registered trademarks of the Microsoft
Corporation
EQUALIZER is a registered trademark of Baker Hugues inc. This information has been included with the
full authorisation of Baker Hugues inc.
The software described in this manual is furnished under a licence agreement. The software may be used
or copied only in accordance with the terms of the agreement. It is against the law to copy the software on
any medium except as specifically allowed in the license agreement. No part of this documentation may be
reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying,
recording, or information storage and retrieval systems for any purpose other than the purchaser's personal
use, unless express written consent has been given by Petroleum Experts Limited.
Address:
email: edinburgh@petex.com
Internet: www.petex.com
Table of Contents
0
Endpoint .........................................................................................................................................................
scaling 95
Aquifer section .......................................................................................................................................................... 97
Analytical.........................................................................................................................................................
aquifer 97
Carter Tracy
.........................................................................................................................................................
model 100
Mobility section
.......................................................................................................................................................... 102
Polymer.........................................................................................................................................................
& gel 102
Original .........................................................................................................................................................
polymer gel model 104
Carreau.........................................................................................................................................................
polymer model 107
Kuparuk.........................................................................................................................................................
polymer gel model 108
Gelation.........................................................................................................................................................
& degradation 110
Inaccessible
.........................................................................................................................................................
pore volume 112
Foam & .........................................................................................................................................................
diluent 113
Sodium .........................................................................................................................................................
Silicate 115
Phase behaviour..........................................................................................................................................................
section 117
Introduction
......................................................................................................................................................... 117
Alcohol/Polymer
.........................................................................................................................................................
partitioning 119
Surfactant.........................................................................................................................................................
phase 123
Ternary .........................................................................................................................................................
diagram 131
Surfactant.........................................................................................................................................................
interfacial tension 133
Surfactant.........................................................................................................................................................
viscosity 135
Adsorption section
.......................................................................................................................................................... 138
Adsorption.........................................................................................................................................................
properties 138
Adsorption.........................................................................................................................................................
isotherms 144
Permeability
.........................................................................................................................................................
reduction 148
Tracer partitioning
......................................................................................................................................................... 149
Water chemistry..........................................................................................................................................................
section 150
Water chemistry
......................................................................................................................................................... 150
CO2, H2S .........................................................................................................................................................
& N2 partitioning 161
H2S souring
.........................................................................................................................................................
(Legacy) 164
H2S souring
.........................................................................................................................................................
(Activity) 166
Scale inhibition
......................................................................................................................................................... 169
Solids section .......................................................................................................................................................... 170
Asphaltene......................................................................................................................................................... 170
Wax ......................................................................................................................................................... 172
Sand ......................................................................................................................................................... 174
Wells section .......................................................................................................................................................... 179
Location.........................................................................................................................................................
and properties 179
Filter cake
......................................................................................................................................................... 189
Fractures ......................................................................................................................................................... 191
Geertsma .........................................................................................................................................................
deKlerk fracture 204
3D fracture
......................................................................................................................................................... 205
Stress &.........................................................................................................................................................
elasticity 210
Well-bore heating
..........................................................................................................................................................
section 214
Well-bore .........................................................................................................................................................
heating 214
Initialisation..........................................................................................................................................................
section 215
PVT initialisation
......................................................................................................................................................... 215
Equilibration
......................................................................................................................................................... 217
User initialisation
......................................................................................................................................................... 219
Component .........................................................................................................................................................
initialisation 219
Schedule section
.......................................................................................................................................................... 221
Well schedule
......................................................................................................................................................... 221
Thermal.........................................................................................................................................................
fracture 234
4 Grid refinement
................................................................................................................................... 236
Overview .......................................................................................................................................................... 236
II
III REVEAL
Refinement section
.......................................................................................................................................................... 239
Reservoir section
.......................................................................................................................................................... 240
Relperm section
.......................................................................................................................................................... 242
Initialisation..........................................................................................................................................................
section 242
5 Menu commands
................................................................................................................................... 242
Menu commands
.......................................................................................................................................................... 242
File .......................................................................................................................................................... 243
Options .......................................................................................................................................................... 243
Edit .......................................................................................................................................................... 244
Input .......................................................................................................................................................... 244
Project .......................................................................................................................................................... 245
Run Simulation
.......................................................................................................................................................... 246
Results .......................................................................................................................................................... 247
View .......................................................................................................................................................... 250
Window .......................................................................................................................................................... 250
Help .......................................................................................................................................................... 250
Playback (3D..........................................................................................................................................................
view only) 250
6 External data
...................................................................................................................................
import 250
Importing overview
.......................................................................................................................................................... 250
Importing from
..........................................................................................................................................................
ASCII 251
Importing wells
..........................................................................................................................................................
from ASCII 255
Importing from
..........................................................................................................................................................
Eclipse (binary files) 258
Importing from
..........................................................................................................................................................
Eclipse (ASCII files) 262
Importing from
..........................................................................................................................................................
VIP 263
7 Graphics ................................................................................................................................... 266
Visualisation.......................................................................................................................................................... 266
8 Debug output
................................................................................................................................... 276
Debug output
.......................................................................................................................................................... 276
9 Engineering................................................................................................................................... 278
Contents .......................................................................................................................................................... 278
Phases and ..........................................................................................................................................................
components 278
Transport equations
.......................................................................................................................................................... 278
Dispersion and
..........................................................................................................................................................
diffusion 280
Heat transport
.......................................................................................................................................................... 280
10 References ................................................................................................................................... 281
References .......................................................................................................................................................... 281
11 OpenServer................................................................................................................................... 283
OpenServer .......................................................................................................................................................... 283
12 REVEAL Frequently
...................................................................................................................................
Asked Questions: A Few Additional Technical Notes 299
Difference between
..........................................................................................................................................................
5 and 9 points Horizontal Point Schemes 299
Rock Mechanics
..........................................................................................................................................................
and Thermal Fracturing 304
Step 4 - Reservoir
..........................................................................................................................................................
section 327
Step 5 - Physical
..........................................................................................................................................................
section 331
Step 6 - Relperm
..........................................................................................................................................................
section 337
Step 7 - Wells..........................................................................................................................................................
section 340
Step 8 - Initialisation
..........................................................................................................................................................
section 346
Step 9 - Schedule
..........................................................................................................................................................
section 348
Step 10 - Run ..........................................................................................................................................................
simulation 349
Step 11 - View..........................................................................................................................................................
results 351
4 Dexterity Examples
................................................................................................................................... 354
Getting Started
.......................................................................................................................................................... 354
Eclipse Import
.......................................................................................................................................................... 354
Radial Aquifer
.......................................................................................................................................................... 368
Thermal Fracture
.......................................................................................................................................................... 373
Souring .......................................................................................................................................................... 387
Dry Gas .......................................................................................................................................................... 402
Retrograde Condensate
.......................................................................................................................................................... 409
Radial Gridding
.......................................................................................................................................................... 418
Curvilinear Gridding
.......................................................................................................................................................... 426
5 Physics Examples
................................................................................................................................... 435
Grid Refinement
.......................................................................................................................................................... 435
Water Chemistry
.......................................................................................................................................................... 443
Permeability..........................................................................................................................................................
Reduction 455
Surfactant .......................................................................................................................................................... 459
Gel Injection.......................................................................................................................................................... 479
Wellbore Heating
.......................................................................................................................................................... 495
Asphaltene .......................................................................................................................................................... 501
Non Newtonian..........................................................................................................................................................
Fluid 509
Equalizer .......................................................................................................................................................... 515
6 OpenServer...................................................................................................................................
Examples 522
Well Results.......................................................................................................................................................... 522
Well Production
.......................................................................................................................................................... 527
Batch Matching
.......................................................................................................................................................... 533
Well Control.......................................................................................................................................................... 538
Water Injection
..........................................................................................................................................................
Allocation : Use of Internal Script 543
IV
Chapter
1
Technical Overview 2
1 Technical Overview
1.1 REVEAL: An Introduction
As per the rest of the IPM suite of tools, REVEAL is based on the concept of integrating
different disciplines usually isolated in one single tool to get a better understanding of the
field.
REVEAL applies this integration principle at the reservoir level.
Most reservoir groups within the oil and gas companies are carrying out two types of
reservoir studies:
· Full Field Numerical Simulation studies using tools such as Eclipse, VIP, etc...
The key role of REVEAL is therefore enabling to bridge the existing gap between numerical
simulation studies and specialist reservoir studies.
By doing so, REVEAL will provide the reservoir engineers, production technologists and
reservoir specialists a way of integrating all their studies and will enable to:
· Gain a GLOBAL understanding of the field behaviour when all dynamical, thermal
and geomechanical behaviors are taken into account.
· Understand the impact of specialists studies generally done in isolation at a full
reservoir scale, based on the corporate numerical simulation model.
· Manage the reservoir on a day to day and long term basis according to its real
physical behaviour.
· Gain a way of sharing information and joining workflows.
REVEAL can therefore be considered as a tool for integrated reservoir and production
studies, as illustrated below.
What will be the impact of injecting water at sea temperature into a 90 to 110 C
reservoir?
However, as soon as the injection system is tied in, the ability to inject water deteriorates
dramatically with time.
One assumption could be that the well is being plugged.
The reality is that the injected water cools down the reservoir, increasing the water viscosity
(i.e. At a pressure of 5000psig, the viscosity of a 75,000 ppm water will be multiplied by a
factor 4 when passing from 100C to 20C) and therefore decreasing the water mobility.
The amount of water injected for a specific wellhead pressure will then be less than
predicted, affecting the pressure maintenance objectives of the field, and therefore its
recovery.
Importing the corporate numerical simulation model in REVEAL will then enable to evaluate
the impact of this phenomenon and to manage the injection strategy of the field accordingly.
Moreover, the reduction in temperature around the injection wellbore will affect the stress
field around the injection wellbore, leading to easier fracturing - using the REVEAL
capabilities of coupling rock mechanics to flow calculations, it will be possible to investigate
whether fractures are formed, their size, their evolution with time and their impact on the well
injectivity.
The table below will illustrate the REVEAL capabilities, and link to the corresponding
sections of the user guide and worked examples.
Worked Examples
Capability Description User Guide Section
Section
IT
PC environment · Runs on PC · IT Requirements · N/A
(Windows 2000, NT,
XP) with single
interface to all
functionality.
General User
Interface
Wizard Data Input · Simplified data entry, · Input Wizard · Getting Started
verification and
visualisation prior to
calculation.
2D and 3D · 3D graphics · Graphics · Getting Started
Graphics integrated in the
REVEAL project
· Can be visualised
during or after the run
· User defined views
can be saved and
therefore re-used in
subsequent runs.
Connection to
Other
Applications
Eclipse Import · Automatic import · External Data Import · Dexterity Examples |
facility enabling to · Importing from Eclipse Import
use existing Eclipse Eclipse (binary)
decks within REVEAL · Importing from
. Eclipse (ASCII)
· Imported models
have been compared
with Eclipse runs and
give identical results
when run under the
same conditions.
VIP Import · Automatic import · External Data Import · N / A
facility enabling to · Importing from VIP
use existing VIP
decks within REVEAL
.
· Imported models
have been compared
with VIP runs and
give identical results
when run under the
same conditions.
ASCII Import · Automatic import · External Data Import · N/A
facility enabling to · Importing from ASCII
use ASCII files in · Importing wells from
REVEAL. ASCII
IPM Integration · Use of PROSPER lift · Use of PROSPER Lift · Getting Started | Well
curves. Curves Setup
· Use of Petroleum · Definition of PVT · Getting Started | PVT
Experts black oil PVT Setup
files.
· Use of Petroleum
Experts fully
compositional PVT
files.
· Dynamic connection
to GAP and other
applications through
RESOLVE.
Technical
Modules
Solvers · IMPES solver · Control Section | · N/A
available with flux Solver
corrected transport
(fct) for models where
numerical dispersion
is important (e.g.
chemical additives),
and material balance
iterations.
· Fully Implicit available
for general cases and
for high mobility and
large throughput
models (e.g. coning).
Gridding · Cartesian grid. · Reservoir Section | · Getting Started |
· Radial grid. Cartesian Grid Reservoir Setup
· Curvilinear grid. · Reservoir Section | · Dexterity Examples |
· Corner Point grid. Radial Grid Radial Gridding
· Grid Refinement: · Reservoir Section | · Dexterity Examples |
General hexahedral Curvilinear Grid Curvilinear Gridding
refinement of master · Reservoir Section | · Physics Examples |
grid for IMPES and Refinement Grid Refinement
implicit solver · Grid Refinement
options. Section
Well Modeling · Vertical Wells · Wells Section · Getting Started |
· Multilateralel Wells: Wells Setup
including description
of tubing and casing /
tubing annulus, Inflow
Control Devices,
Gravel Pack,
Sandscreens....
· Calculation of friction
losses along the
wellbore.
· Calculation of
temperature
Electrical heating of
heavy viscous oils.
· Well Control:
- Solver improvements, especially for multi-lateral wells.
- Annular to base pipe heat transfer using Nusselt number method.
- Low draw-down cross-flowing well stability improved, with 'Min drawdown' parameter
option.
- Gas pseudo pressure option added.
- Gravel pack in annular space includes annular flow as well as reservoir inflow.
- Smoothing and clipping of IPR data (for RESOLVE coupling) improved for strongly
cross-flowing wells.
· File Import:
- The ASCII file import has been improved to handle Unix encoded data files.
- ASCII data import may include comments and '*' format for repeated values.
· PVT Modeling:
- Fully Compositional modeling:
· The capability of using a Fully Compositional (i.e. Equation of State) PVT model
has been added.
· -The fully compositional PVT can be coupled with the water chemistry module
to model interaction between fluid components and reservoir / injected water
components.
· -REVEAL driver in RESOLVE has been modified to pass the composition from
the reservoir to the surface network models.
· Reservoir Modeling:
- An option to model sealing fault(s) has been added.
· Well Modeling:
- Multilateral well model has been modified to model tubing flow, casing flow and the
impact of different types of completions, including:
· Screens between tubing and casing,
· Gravel-packs, including handling of velocity constraints,
· Inflow Control Devices and Equalizer ,
· Well internal heat transfer and counter flow heat transfer (i.e. particularly for
steam counter flow during the steam circulation phases of SAGD procedures).
· Well internal sources (i.e. for diluent injection for example), orifices and pumps.
· Chemical EOR:
- Surfactant model:
· Possibility of combining surfactant and water chemistry models, enabling for
instance the modeling of Alkaline Surfactant Polymers (ASP) systems.
· pH dependency for surfactant added.
· Oil and Water solubilisations reported in the ternary phase diagram interface.
· Surfactant modeling with 100% emulsification improved.
· Water Chemistry:
- The speed of the water chemistry calculations has been improved, by an average of
30%.
- Activity based souring model can be coupled with the water chemistry module for
improved pH handling.
- Water phase variable salinity effects (i.e. density and viscosity) coupled with the water
chemistry module.
- Improved strong acid / alkali (i.e. pH) water chemistry modeling.
- Volumetric strain permeability reduction added.
- Default components for souring model are set automatically.
- Partitioning:
· Tracer components may partition between phases.
· Database controlled hydrocarbon/water partitioning for CO2, H2S and N2.
· Adsorption:
- Adsorption levels modified to represent adsorption per unit rock volume, not including
porosity.
- Adsorption permeability reduction may be applied to water phase only or all phases.
· Diffusion:
- Component diffusion model added.
· Interface:
- Total reservoir volume reported.
- Improved copy /paste / scroll for main data input screen.
- Improved validation reporting, especially for sections with large quantities of data.
- Grid refinement interface improved to allow greater control over restart scenarios.
- Graphics may be aligned with X, Y and Z directions using keyboard shortcuts.
A detailed, build by build, list of REVEAL developments can be found in the "What's New in
REVEAL - Detailed List" section.
42 An option to define capillary desaturation using a parametric curve rather than HT and
LT endpoints added
41 Permeability reduction term implemented in shear thinning calculation
BUILD 144
14 Well downtime with IMPES solver error fixed
BUILD 141
13 Numerical improvement to the half wing Geertsma deKlerk fracture model
12 External transmissibilities removed from refinement
BUILD 139
11 Improved leak-off calculation when a fracture dimension is less than about 10% of its
parent gridblock
10 An option for thermal fracture perimeter shrinkage with stabilised shape added
9 Use external transmissibilities option in interface was accidentally disabled in build 134
- now fixed
BUILD 138
8 Non-Newtonian oil viscosity table of rheological data automatically sorted following
data entry
7 Possible reporting error for temperature of multilateral producer wells corrected
6 Thermal conductivity for zero transmissibility connections allowed
BUILD 135
5 Gram Formula Weight for acidic oil component (ASP model) may be set in the
interface rather than water chemistry database
BUILD 134
4 Solver protection for negative total hydrocarbon compressibility added
3 Tab controlled record selection improved for residual saturation wizard screen
2 Parent cell properties may be automatically copied to refinement arrays as they are
opened for editing in the interface
1 Improvements to the Oedometric stress field calculation model (contact Petroleum
Experts to use this development option)
BUILD 127
8 Surfactant adsorption dependency on pH added
7 Surfactant and water chemistry models may be combined to model ASP
6 3D graphics views may be aligned in the X, Y, Z axes using the X, Y and Z key
shortcuts
BUILD 125
5 Logarithmic dependence for diluent viscosity model added
4 SWAG injection allowed for thermal fracture models
BUILD 124
3 Fix to solve a problem if a well used for a thermal fracture calculation is later used as a
producer by the schedule
2 Improvement to 'user specified geometry fixed dimension fracture' calculation
1 Fix for Interface crash if gel component present without polymer component
BUILD 123
BUILD 60
67 Basic restart data (Pressure, Saturation, Temperature and Rs/CGR) make be
generated from 3D graphics results
BUILD 58
66 Memory handling for 2D plotting of models with large numbers of wells and time-steps
improved
65 Interface bug using 2-component polymer gel reaction model fixed
64 Interface and OpenServer command to reorder wells alphabetically added
63 OpenServer tag for completion table well radius corrected
62 Link to sand model online help page corrected
61 Solver preconditioner methods extended (ILUDP and ILUT added)
BUILD 56
60 Improvements to thermal fracture calculation stability when small timesteps (< 0.1 day)
are used
BUILD 55
59 Runtime OpenServer commands for well constraint control added
BUILD 53
58 Standard condition densities for combined PVTs when connected to RESOLVE
improved
BUILD 48
57 Tracer components may be partitioned between phases (all three phase tracers are
required, see adsorption section)
BUILD 46
56 Option to add copies of the current well and reservoir result streams to be saved in the
REVEAL archive (also OpenServer command)
55 Further interface issues setting schedule with run times not in days unit (hours,
seconds etc.) improved
54 VIP imported endpoint scaling for SGOC is handled differently
53 Pore volume multiplier import from VIP implemented
52 Offset added to stress gradient data input method
51 Re-perforation interface bug fixed in schedule for wells perforated in inactive blocks
BUILD 44
50 Interface validation speeded for cases with a large number of PVTs
BUILD 43
49 Interface issue not allowing THP control of identically zero psig fixed
48 Previous main window dimension and location preserved when REVEAL is started
47 Some defaults set for t=0 visualisation (e.g. pore volume calculated when pore volume
multiplier not specified)
46 Some OpenServer well results fluid name labels with 'white space' modified
45 Cross-flow option may be enabled/disabled for radial and curvilinear grids
44 Interface bugs associated with cation exchange and polymer salinity thresh-hold fixed
43 Thermal fracture model improved for thin high stress shale barriers
42 Thermal fracture in-situ stress field may be entered as a stress gradient per layer
41 Compaction 'porosity multiplier' re-labeled 'pore volume multiplier'
BUILD 42
40 Some improvements to the solver in preparation to model gas-in-oil and oil-in-gas
simultaneously
33 Multiple aquifer regions may be defined for each analytical aquifer (OpenServer string
for aquifer connection direction changed)
32 Minor bug fixes associated with schedule import facility
31 Problem associated with thermal fracturing controlled by voidage replacement cycling
between water and gas injection fixed
30 Aqueous partitioning of H2S and CO2 slightly modified when using the simplified water
chemistry equilibration method
29 Internal unit conversion bug calculating wellbore heat transfer corrected
28 Playback 'repeat' option added to 3D display playback options
BUILD 112
27 Improvements to numerical stability of long multi-lateral wells with large connectivity
factors
26 Steam fraction (by volume) in gas phase added to 3D results list
BUILD 109
25 Average reservoir results recorded before the first time step (post equilibration) as well
as after each time step
24 Block centre coordinates and volumes added to t=0 display
23 Additional water chemistry text diagnostic regions may be defined (see water chemistry
section)
22 All refined grid properties defaulted to parent grid values (connate saturations
previously required to be set in refined grid)
21 Various minor interface labeling (spelling) errors fixed
20 Well trajectory azimuth redefined to be clockwise viewed from above (see multi-lateral
in well section)
19 Default for well IPR calculation changed from 'streamline' to 'diffusivity' (see well
section)
18 Thermal conduction across refinement boundaries and non-neighbour connections
included
17 Wellbore friction model improved with increased tubing discretisation possible (see well
section)
16 Gas-lift and pump frequency added to well results where these artificial lift are used
15 3D view may display blocks only within a selected variable range (see scale option)
BUILD 108
14 The 'Under saturated Rs Solve' option improved
13 Possible implicit rate well constraint violation fixed
12 3D view selected blocks within refined grid may be saved with saved view
BUILD 105
11 Improvement to solver for advection concentration of trace components - reduces
possible numerical oscillations
10 Water chemistry equilibration speeded up for cases where initial composition and
temperature is constant
9 3D graphical display bug associated with Geertsma deKlerk fracture model fixed
BUILD 102
8 Wells and fractures that have no active completed blocks are not required to be
deleted; they are now ignored
7 Maximum number of completion table entries per well increased from 100 to 1000
6 Additional solver performance variables added to results
1.5 ITRequirements
REVEAL supports all Windows-certified drivers that are shipped with Windows. The list of
devices, software and hardware supported by Windows is included with the documentation
Licenses - REVEAL can be run using a single user (stand-alone) license or on a network.
In either case, a special security key is needed. The security key is called Bitlock for stand-
alone licenses, and HARDLOCK for network licenses. The security key is provided by
Petroleum Experts.
For a stand-alone license, the security key (Bitlock) must be attached to the parallel port of
the PC. For a network installation, the security hey (HARDLOCK) can be attached to any
PC communicating with the network. You should refer to the separate installation procedure
for a network HARDLOCK sent with a HARDLOCK license.
2
User Guide 34
2 User Guide
2.1 What's in this guide?
This REVEAL user guide will include a description of all the different options available in
REVEAL.
The organisation of the "Input Wizard" section of the manual illustrates the basic procedure
required to setup a REVEAL model to carry out reservoir modeling and analysis.
The other sections of the user guide include additional comments on specific topics such as
importing data from external sources, setting-up grid refinements, etc...
The setup and usage of REVEAL models is illustrated on case examples in the "Worked
Examples" section.
Should a user have further questions or experience any issues when using REVEAL,
Petroleum Experts technical support team can be contacted by using the following email
addresses:
When contacting Petroleum Experts technical support team, the user should include the
following details in the request:
· A copy of the REVEAL model (.rvl file). If the file is large (i.e. >2MB), then it is
possible to delete potentially large quantities of graphical output data using the option
Results | Clear Grid Results.
The wizard is activated with a right click inside the input script window, or by selecting
Input from the menu. Once the wizard ends normally (section(s) completed, or Finish
selected), the output script is updated. To prevent the changes made in using the wizard
from being written to the output script, select Cancel. Once the Wizard is exited, the only
data stored internally by REVEAL is that written to the script and held in datablocks. The
Next and Previous buttons can be used to navigate forwards and backwards through the
wizard screens. The Validation, Plot and Calculate buttons may be used on some screens
to check data input.
Data is held in temporary files until the archive is saved using the Save menu option. The
temporary files in the archive may be viewed using the menu option Project|Edit / View
project, or by opening the REVEAL archive (*.rvl) using winzip. The principal temporary file
is the input script, which contains the changes made using the wizard.
Changes made using the wizard will be updated to the input script if the wizard is ended
using Finish, or if the wizard ends because Next was selected and no more wizard screens
are available (either the end of the schedule section or the end of the current section is only
one section is being edited with the wizard). In this case, the data in the input script is over-
written and previous data will be lost.
If the wizard is ended using the Cancel button, then the changes made using the wizard are
not saved to the input script (these changes are lost).
Data may be copied and pasted between the REVEAL wizard screens and other
applications such as EXCEL. To copy from REVEAL, select the region to be copied and use
Control+C to copy and Control+V to paste the selection. Alternatively, entire sections may
be copied using options obtained using a right mouse click. To paste data into REVEAL, the
size (number or columns) of the region to be pasted must match that required by REVEAL.
The simplest way to check the column format required is to select and copy a blank region
from REVEAL into EXCEL (for example).
The script itself may be edited directly, sometimes Control+C (copy), Control+V (paste),
Control+F (find) and Control+H (find and replace) are useful. To select a keyword or other
text Shift+left mouse button may be used. Once the script is edited, it is best to run the
wizard, to read the changes and re-write them to the script to check validation. Care should
be taken performing extensive changes to the script because syntax errors will not be read
by the wizard and data incorrectly set may be lost.
Comments may be added to the script within /* and */ delineators. However these
comments must lie outside the section and end keywords used for each data section.
It is obviously advisable to save the REVEAL archive file using File|Save or File|Save As at
regular intervals. The wizard cannot be running while a save is being made.
2.3.2 Section summary
The input wizard is divided into 13 sections, each containing several related pages. The
sections and pages displayed are context sensitive and will depend on the options
previously selected, the principal options are set in the control section.
General help starting and using the input wizard is available, along with specific page-by-
page help.
Implicit pressure explicit concentration - The IMPES solvers solve each time-step faster
than the implicit formulation and uses iterations to ensure material balance. Its time-steps
are limited to the Courant limit. It has various upstream weighting options to minimise
numerical dispersion and reduce grid orientation effects. These are the only solver options
available for micro-emulsion surfactant models, and should generally be selected for models
where numerical dispersion of trace components is important.
Implicit pressure and saturation - The implicit solvers are implicit in three phases and
three components (water, oil and gas), using a one-point upstream weighting for mobilities.
Thermal models are not subject to the Courant time-step limit in the implicit formulation, but
temperature may be subject to numerical dispersion at larger time-steps. These options
should be selected for three component models where high velocities and small grid blocks
Depending on the solver option chosen, various solver options are available on two screens.
Defaults are provided, and altering them must be performed with care. Always start with
the default options.
Old IMPES - this is the original IMPES solver and has now been superceded by a more
general IMPES solver (see next option). It does not support grid refinement, inactive blocks
and many other features; basically it should never be used.
IMPES - this is the default IMPES solver. IMPES solvers require less memory and less cpu
per time step. They require short timesteps to be numerically stable and therefore are
usually slower than implicit formulations. IMPES formulations allow higher order upstream
weightings that can significantly reduce numerical dispersion present within implicit
formulations. The IMPES solver is required for the surfactant model and cannot be used
with the steam model. For all other models it is optional, but in most cases the implicit
formulation will be faster.
Fully Implicit - this solver option should be used for most models, including chemical
models. It is not available for surfactant models, where the IMPES solver should be used.
CFL Implicit - this uses the fully implicit solver, where the Courant time step limit is
imposed. This should not generally be used.
Adaptive Implicit - this solver mixes IMPES and implicit solver techniques, attempting to
speed calculations. Gridblocks where the throughput and changes in saturation are small
use an IMPES scheme and the remaining blocks, where most of the changes are occurring
use the implicit formulation. The degree of adaptive implicitness is controlled by a
parameter defined below. This method is recommended for simulations where there are
large numbers of blocks where the phase behaviour is near constant (e.g. large number of
aquifer gridblocks).
Undersaturated Rs Solve - if this option is set, then the implicit gas conservation equation
will be solved for Rs rather than Sg (gas saturation) for undersaturated blocks. This option
can speed the solution of classes of problems where there is minimal mobile free gas (no
gas injections, with at most a stable gas cap).
Dead Oil with no Free Gas - if this option is set, then the gas conservation equation is
removed and consequently speeds calculations. This option should only be used where the
Rs is constant and there is no possibility of free gas. The model is then treated as a two
component water oil system by the solver. You should be certain that the reservoir pressure
cannot every fall below the bubble point defined by the PVT.
Implicit temperature - if this option is set, then the thermal solve is included iteratively
within the Newton iterations of the main implicit solver. It should be used for thermal cases
(apart from steam, where a the thermal equations are fully implicit), where there may be
significant volumetric effects arising from thermal changes. Often, thermal effects are
localised near to a well and the major influence of the thermal injection is to modify viscosity
and the thermal density effects can be ignored and this option should not be set for such
cases. It should be used, where significant reservoir scale temperature changes occur.
There is minimal performance impact using this option and it is recommended that it is
always used.
Apply modification - Select a global solver modification, then use this button to apply it.
Restore default configuration - Select this button to restore the default solver options.
Increase Accuracy - this increases the convergence criteria increasing the number of
Newton iterations.
Reduce memory - this reduces the solver memory, but may also reduce convergence
speed. This should only be used for models that are too large to fit into available memory.
Increase preconditioning - this may be used for models that are difficult for the solver and
allocates more time to the preconditioner. This may be set if the time spent in the
preconditioner is significantly less than the time spent in the solver. See the end of the text
debug results for a summary of where the cpu time of a completed run was spent.
Reduce step size - this option reduces the time step by limiting the maximum change in
pressure and saturation. It should be used for cases that have a significant number of time
step retrys.
Areal flow - when the flow is known to be predominantly areal (limited vertical flow) then this
option will alter the row/column ordering to be d4z (see below).
Maximum variable changes - the time step size is selected to limit the maximum changes
in a variable
Limits for pressure and saturation are entered. These may be reduced for cases with time
step retrys.
The pressure, water, oil and gas saturations, temperature and maximum relative well error
(for implicit rate wells) limits may be set. Some heuristics are included in the solver to allow
convergence if not all of the convergence limits are met, but the solve is considered
sufficiently robust. For example, 3 or more iterations have been completed and the pressure
and well convergence limits are met, then the saturation limits may be violated for the worst
offending blocks; this may occur in models with some small blocks with oscillations in their
saturation due to large throughput.
Row column ordering - the order in which blocks are added to the solution matrix
The order in which the solution matrix is formed will affect the time required to solve the
resulting system of equations. The cycling is from left to right (e.g. XYZ cycles in the X
direction, then Y direction, then Z direction, with the cycling fastest in X direction). Some D4
(red/black chess board) ordering schemes are also included. In general the fastest ordering
should correspond to the highest transmissibility direction (often Z) or the smallest
bandwidth (direction with smallest number of blocks).
Matrix bandwidth is reduced by ordering with the smallest grid dimension first. If the flow is
predominantly in one direction then this direction should be ordered first to keep the largest
The default automatic option checks the largest transmissibility direction and smallest grid
dimension direction. It uses the transmissibility divided by the grid dimension for each
direction to order the solution matrix.
In cases where a strong flow direction is known due to well placement, this direction should
be set as the first direction.
The D4 options are a red/black scheme in two dimensions that equally weights two
dimensions. Therefore, for example, if the flow is known to be areal with limited vertical flow
and the X and Y dimension are similar, then the X and Y direction have equal weight, with
the Z direction having the smallest contributions to the solution matrix and hence the d4z
scheme may be appropriate.
For some cases spectral colour ordering may may help improve solution matrix bandwidth.
Two methods 'multi-colour' and 'Independent Set' are provided. These methods have been
found to help for models with long wells and grid refinement.
Either a 5 point or 9 point horizontal flow scheme is available for the fully implicit solver. The
9 point scheme is recommended since it reduces grid orientation effects. The 5 point
scheme is the default used by ECLIPSE, therefore this scheme should be used for imported
models that have been history matched using this option.
More Information on this topic: Difference between 5 and 9 points Horizontal Point
Schemes
If the adaptive implicit solver option is selected, then this parameter determines which blocks
will use the IMPES method. The parameter approximately represents a maximum change in
saturation and maximum throughput as a fraction of pore volume. Any gridblocks that
exceed this value and all blocks where free gas is present will use the implicit formulation.
Therefore the smaller the number the fewer blocks that will use the IMPES formulation. It is
recommended that for suitable models (large regions where the changes in saturation are
slow) a value between 0.1 and 0.01 is used. If no performance improvement is found with a
value of 0.01, then this option should usually be turned off.
Reduce dt iterations - if this number of iterations is taken or exceeded, but still converges
before the maximum number of iterations is exceeded, then the next time step will be
reduced by a factor two.
Hold iterations - if this number of iterations is taken or exceeded, but the reduce dt
iteration limit is not reached, then the next time step will not increase.
Divergence condition - if the maximum block value for pressure change increases in an
Newton iteration by more than this factor, then a retry will take place.
Max Newton step size - at each Newton update of the independent variables, the deltas
are multiplied by this step size.
Minimum dP for inclusion - after the first iteration any blocks where the pressure change is
less than this value will be removed from the solver for subsequent iterations. This
effectively ignores large regions of the model where very little change is occurring after the
first iteration, which always includes all active blocks.
Preconditioner Options - the preconditioner is the first step to solving the equations
Preconditioner - this selects the preconditioner to use - generally the ILUTP (default) is
recommended. There are cases where the ILUDP is better, especially if the linear solver
fails to converge consistently using ILUTP. ILUT is included for test purposes and should
not be used.
Fill in parameter - this is the bandwidth of the pre-conditioning matrix (maximum number of
non-zero entries for each row). It is set to 33 = (9+2)*3 by default, which corresponds to 9
horizontal and 2 vertical blocks each with 3 solution variables (pressure and two
saturations). It may be lowered to reduce the size of the pre-conditioning matrix and hence
memory requirements or increased where more equations are present for the steam model.
If a negative value is entered, then the workspace size is allocated according to the modulus
of the value, but the ILUTP pre-conditioner bandwidth is increased for some blocks (usually
implicit rate wells) where allocated memory is available.
Drop tolerance - relative magnitude of off diagonal terms (relative to largest) to be included
in the preconditioner. A smaller value includes more terms and hence more time is spent in
the preconditioner and consequently less in the linear solver. This value may be reduced to
increase preconditioning. Typically it should be between 0.001 and 0.00001. The time
spend in the preconditioner and linear solver may be seen by looking at the end of the
debug text file.
Auto tune drop tolerance - this option may be selected to automatically vary the drop
tolerance during a calculation. This is recommended for most models.
Linear solver options -the linear solver is used with the preconditioner for each Newton
step
The options for linear solver should not generally be altered from the default values. A
stabilised bi-conjugate gradient (BCGSTAB) and generalised minimum residual solver
(GMRES) are used for the linear solve, depending on how difficult the problem appears to
be.
The residual reduction is a relative residual reduction defining convergence, and the residual
maximum is an absolute residual limit. Sometime, reducing the residual maximum may
help reduce oscillations between Newton iterations. The residual is defined as the r.m.s.
mass rate per unit volume error. The Krylov space size is used for the GMRES solver. If
this value is increased, the solver may become more robust, but may require significantly
more memory and become much slower, it may be reduced to a minimum value of 0 to
minimise memory requirements.
Krylov space size - this is used for the GMRES solver which is only used when the faster
BCGSTAB solver fails to converge. If this value is increased, the GMRES solver may
become more robust, but may require significantly more memory and become much slower,
it may be reduced to a minimum value of 0 to minimise memory requirements. Generally if
this value requires to be increased, the problem is nearly singular and the reason for this
should be sought before changing this value. It is recommended that this value is set to
zero, in which case the GMRES solver is not used.
Residual reduction - the relative reduction in the solution matrix residual when
convergence is assumed. The residual is defined as the r.m.s. mass rate error. This value
may be reduced in some cases, where the linear convergence is not resulting in Newton
convergence.
Residual maximum - this is the absolute maximum for the linear solver to be converged.
The solution is considered converged when either the relative or maximum limits are
reached.
Solver Quality Upstream Weightings - high order explicit upstream weighting used to
reduce numerical dispersion
Upstream weightings define how properties required at grid block faces are calculated, and
are used to minimise numerical dispersion effects. Weightings are required for component
concentration, temperature, permeability (mobility) and density. The permeability and
density weightings are used prior to the implicit pressure solve, while the component
concentration and temperature weightings are used during the explicit phase of the solve,
after the implicit pressure solve has been performed.
The phase velocities are determined by the implicit pressure solve. The component
concentrations are the concentration of components within the phases present, and
therefore component concentration weightings only effect trace components within the
phases.
1-point - block face value is taken as the value in the centre of the upstream block. This is
recommended for component concentration where trace components are not present, and
also recommended for the surfactant micro-emulsion and water chemistry models, to
ensure components are transported in the ratios present within the upstream block.
2-point - block face value is taken as a value extrapolated from the two upstream blocks.
This method reduces numerical dispersion but generally not recommended.
fct/2-point - similar to the 2-point scheme, but extended fct (flux corrected transport)
algorithm [Ref 17] acts to minimise numerical dispersion. Recommended for temperature
and component concentrations where trace components are present.
fct/3-point - higher order, three block (two upstream and one downstream) fct method. This
method should only be used when all blocks are identical cubes. Not generally
recommended.
Original - for mobility weighting, this method uses a 1-point upstream weighting for relative
permeability and centred value for viscosity. Either this method or the 1-point upstream
weighting are recommended for permeability weighting.
Centred - for density weighting (used for gravitational term in implicit pressure solve), this
method is a mean upstream/downstream value. Either this method or the 1-point upstream
weighting are recommended for density weighting.
Fracture model - includes thermal injection fractures and hydraulic production fractures.
Component models - components that can be used later will depend on the component
model selected on this screen, and as such, some of these models are mutually exclusive
Chemically and physically inactive tracer components are available with all component
models
surfactant - 4th phase micro-emulsion model only available with IMPES solver (not
available with polymer/gel/foamer or souring options)
solids - asphaltene and wax models; also solid transport including sand generation
Souring - H2S souring model, only available if the component model is water chemistry. A
legacy model is present, but the activity based model (identical to the main souring model
may be used with the water chemistry option). The activity based model is recommended.
Start date - enter a starting date (DD/MM/YYYY or MM/DD/YYYY depending on the regional
settings selected in the Microsoft windows control panel) for the simulation, this is defaulted
to 1/1/2000. If a simulation is restarted, then the date of the restart will become the starting
date. The schedule should then be expressed in dates following the start date. For
backwards compatibility, an option to revert to days rather than dates is present and can be
activated by selecting Options|Dates.
Directional relperms - more than one relative permeability may be defined per grid block
Directional relative permeabilities - if this is set then either all 6 faces or just horizontal
and two vertical directions may be defined.
Well connection relative permeability - the direction or separate relative permeability table
to be used for wells connected to a block.
Reference depth - used for reported reservoir average pressures and also used to
reference all well Pwfs back to a common datum for output.
Inactive blocks take no part in the simulation calculation. If any block meets either criteria,
then the block is inactive.
Minimum grid cell pore volume - the grid cell pore volume is less than a defined limit
indicates an inactive block. If a grid has been imported from an ECLIPSE grid or egrid file,
then inactive blocks will already have been removed from the model and this value may be
set to a minimum default value of 10-6 ft3.
2.3.3.3 Components
The components in addition to water, oil and gas are added on this screen.
The components to be included in the model are added by selecting the component(s) in the
left column of available components and pressing Add, components may be deleted by
selecting the component(s) to be deleted in the right list of selected components and using
the Delete button. Water, oil and gas are always present. The components available will
depend on the component model selected (previous wizard screen).
2.3.4 Reservoir section
2.3.4.1 Geometry
All REVEAL models consist of hexahedral grid blocks connected in a regular structure
(topologically identical), with each block identified by its I,J,K numbers. I runs from 1 to NX,
J from 1 to NY and K from 1 to NZ, where NX, NY and NZ are the number of grid blocks in
each principal direction, with the Z direction being vertically down. NX must be greater than
one.
Select the grid coordinate system. Some of the options available will depend on which grid
format is chosen.
Corner point grid - most large models will use the corner point grid coordinate system. The
X, Y and Z coordinates of each block corner must be entered layer by layer (increasing Z)
into a data array, by selecting the Data Array button. The data array must also be given a
name. The X, Y and Z coordinate values should all be increasing in their respective positive
directions. The corner point data may be copied and pasted from another application such
as EXCEL, or imported directly from another simulator, where a filter is provided. See the
Input option on the main bar for grid geometry import options. Once potentially large
volumes of corner point data have been entered it is advisable to select Finish to leave the
wizard and save the REVEAL archive.
Corner point (simplified) - in this scheme adjacent blocks share coordinates, there are
therefore (NX+1) * (NY+1) * (NZ+1) coordinates in total. These are entered as X, Y and Z
coordinates for each layer, with (NX+1) * (NY+1) entries per layer for each spatial direction.
Corner point (full) - in this scheme each block has 8 independent coordinates, there are
therefore (2*NX) * (2*NY) * (2*NZ) coordinates in total. These are entered as X, Y and Z
coordinates for each layer, with (2*NX) * (2*NY) entries per layer for each spatial direction.
Each block is considered in turn and its two corner point coordinates are entered before the
next block data is entered.
Cartesian grid - the Cartesian grid coordinate system generates a regular grid with constant
grid spacing.
Radial grid - the radial grid coordinate system generates a grid with radial grid blocks
forming a sector away from a central well. For the radial grid option a central well radius
must be input. The sector angles may be constant; if this is required then select the
Uniform Sector Angle button and enter an angle. The units for the angle may be toggled
between radians and degrees by clicking right within the angle data entry cell. Due to
symmetry, if a two-dimensional (no azimuth dependence) is required, then it is
recommended that a NY is set to 1, and the sector angle is set to a small value (say 1o or
3.6o).
Curvilinear grid - the curvilinear grid coordinate system generates a grid with 2 wells as one
eighth of a repeated five-spot symmetry, reflecting the streamline flow between two wells,
one injector and one producer. For the curvilinear grid option, the spacing between the well
must be entered, and an excluded fraction. The excluded fraction is the fraction of the
distance between the two wells excluded from the model, which prevents stability problems
near the wells. It should typically be set to about 0.05.
The radial and curvilinear model descriptions are best used for single well models. Note that
well rates should be scaled according to the angle of completion.
An additional page of data input is required for the Cartesian, radial and curvilinear grid
options.
Grid dimension
Enter the maximum number of blocks in each principal direction NX, NY and NZ.
Update globally - this button will update all other sections where possible to reflect changes
made to NX, NY or NZ. The update globally option is only required when the grid size is
being changed, and performs no function the first time a reservoir geometry is defined. You
should check all of the data associated with grid blocks when the grid dimensions are
changed and this option is used. For example well completion blocks will not be changed,
and if there were variations in a parameter within the original grid, when the grid dimension
is changed,these properties may not be distributed in the new grid as required.
Map Axis
A map axis may be entered for Cartesian or corner point grids. Three coordinates in the
horizontal plane (X,Y coordinates only) defining an origin and directions for the X,Y axes of a
map coordinate system are required. The coordinates are entered in the grid coordinate
system and define a second coordinate (map) system that may be used to enter well
trajectories. Note that the map axes must be orthogonal (90 degrees between the axes).
The map axis is used in the well section when entering a well deviation survey defined
relative to a different axis system than was used to define the grid. The origin entered is the
origin of the grid coordinate system in the map axis system.
The X and Y grid block dimensions should be entered for rows 1 to NX and columns 1 to
NY. Consecutive rows or columns with the same grid block dimension may be entered as a
group (e.g. if the first three dimensions are 100 ft and then next two dimensions are 50 ft,
then only two rows of the table require to be entered).
Z range - the most common method, where the Z dimension of the grid blocks are entered
for each layer (or groups of layers).
Single layer range - for a single layer, the Z dimensions for blocks may vary in the X and Y
directions. Care must be taken with this method to ensure that full coverage of the model is
achieved (all blocks have a Z dimension).
Layer n multiple - where one layer Z dimensions are a multiple of a previously defined
layer.
For each method of Z dimension entry, the range and Z dimension should be entered in the
appropriate data entry cells and the Add button selected to add the data to a table of
entries. An entry in the table may be modified by selecting and highlighting the required
entry in the table and then modifying the data entered; the Add button should not be used to
update modified data, since it will add another row to the table. The modified data can be
viewed in the table by re-selecting the row in the table. Table entries may be deleted by
using the Delete button.
Full coverage of the model may be checked by selecting the Validate button, and the
resulting grid checked by selecting the Plot button.
The X and Y grid block dimensions should be entered for rows 1 to NX and columns 1 to
NY. Consecutive rows or columns with the same grid block dimension may be entered as a
group (e.g. if the first three dimensions are 100 ft and then next two dimensions are 50 ft,
then only two rows of the table require to be entered). The X grid block dimensions have
units of length, while the Y grid block dimensions have units of angle. If constant angles
were set on the previous wizard screen, then no Y dimensions are required.
Z range - the most common method, where the Z dimension of the grid blocks are entered
for each layer (or groups of layers).
Single layer range - for a single layer, the Z dimensions for blocks may vary in the X and Y
directions. Care must be taken with this method to ensure that full coverage of the model is
achieved (all blocks have a Z dimension).
Layer n multiple - where one layer Z dimensions are a multiple of a previously defined
layer.
For each method of Z dimension entry, the range and Z dimension should be entered in the
appropriate data entry cells and the All button selected to add the data to a table of entries.
An entry in the table may be modified by selecting and highlighting the required entry in the
table and then modifying the data entered; the Add button should not be used to update
modified data, since it will add another row to the table. The modified data can be viewed in
the table by re-selecting the row in the table. Table entries may be deleted by using the
Delete button.
Full coverage of the model may be checked by selecting the Validate button, and the
resulting grid checked by selecting the Plot button.
The X grid block dimensions should be entered for rows 1 to NX. Consecutive rows with the
same grid block dimension may be entered as a group (e.g. if the first three dimensions are
100 ft and then next two dimensions are 50 ft, then only two rows of the table require to be
entered). The Y grid block dimensions are not required, since they are calculated by the
model.
Z range - the most common method, where the Z dimension of the grid blocks are entered
for each layer (or groups of layers).
Single layer range - for a single layer, the Z dimensions for blocks may vary in the X and Y
directions. Care must be taken with this method to ensure that full coverage of the model is
achieved (all blocks have a Z dimension).
Layer n multiple - where one layer Z dimensions are a multiple of a previously defined
layer.
For each method of Z dimension entry, the range and Z dimension should be entered in the
appropriate data entry cells and the Add button selected to add the data to a table of
entries. An entry in the table may be modified by selecting and highlighting the required
entry in the table and then modifying the data entered; the Add button should not be used to
update modified data, since it will add another row to the table. The modified data can be
viewed in the table by re-selecting the row in the table. Table entries may be deleted by
using the Delete button.
Full coverage of the model may be checked by selecting the Validate button.
2.3.4.5 Depth
For all grid geometries except corner point (where the coordinates of all blocks are entered
explicitly), the depth of the top surface of the grid must be defined. The depth must cover
the entire top layer (Z=1) of grid blocks, and is defined as the depth from a zero datum to the
top of the grid blocks.
For Cartesian grids, two methods are available, range/array and dip angles. For the radial
and curvilinear grids, only the range/array method is available.
Note that the top surface entered is the top surface at the centre of each grid block. The
grid top surface corner points are interpolated from the top surface grid centre points
entered. In the case where there are inactive blocks in the grid and a top surface is not
defined, then a top surface value of zero should be entered for columns where no active
blocks are present. Any values of zero will not be included in the corner point interpolation.
Range - each table entry may cover a range of blocks with a constant value (e.g. a flat top
surface at 5000 ft would be achieved by selecting range, then the All button and entering a
value of 5000). This data has been entered to the table, but the table display is not updated
until an entry in the table is selected with the mouse. Several entries to the table may be
added, modified or deleted. The coverage of the table entries must cover all blocks on the
top layer (X=1,NX and Y=1,NY). The Validate button may be used to check coverage.
Select entries in the table with the mouse to modify or delete them.
Array - an array of depths are entered, one for the centre of each top surface grid block.
The array must be given a unique name before data is entered. Data may be copied and
pasted into the array from another application.
Dip angles - the depth of the first block (X=Y=1) is entered, and the dip angles in the X and
Y direction are entered.
2.3.4.6 Porosity
The porosity of each grid block is required. This is the porosity at the reference pressure,
with porosities being calculated as a function of rock compressibility for grid blocks with
pressures below or above the reference pressure.
A zero porosity is used to identify inactive grid blocks, which will take no part in the flow
calculations.
Range - each table entry may cover a range of blocks with a constant value. Click the right
mouse button within the value entry cell to toggle between fraction and percentage porosity.
Several entries to the table may be added, modified or deleted. The coverage of the table
entries must cover all grid blocks. The Validate button may be used to check coverage.
Select entries in the table with the mouse to modify or delete them.
Array - an array of porosities are entered, one for each grid block, entered by layer with
increasing depth (increasing Z). The array must be given a unique name before data is
entered. Data may be copied and pasted into the array from another application.
Array data may be exported and imported. Note that during import and export, the units are
those currently set in REVEAL.
Use parent grid values - only available if the current grid is a refined grid, then use
porosities defined for master (parent) grid. For more information see grid refinement for
general information on grid refinement and refined reservoir properties for information on
entering refined grid reservoir properties).
The Plot button may be used to view the porosity distribution entered.
2.3.4.7 Permeability
The permeability in the X, Y and Z directions is required for each grid block in the model.
Use the tabs at the bottom of the screen to enter the Y and Z permeabilities, which can be
entered explicitly, or as a multiple of the X direction permeabilities.
See the porosity help screen for details of how to add ranges or arrays of permeabilities.
2.3.4.8 Transmissibility multipliers
This screen is optional and no data is required.
The default transmissibility between two blocks is calculated using a harmonic average of
the two adjacent grid block permeabilities. Transmissibility multipliers may be used to
modify the transmissibilities between blocks to model transmissibility barriers (or
enhancement).
Transmissibility multipliers (default value of 1.0) may be given in the X, Y and Z directions for
any or all grid blocks. e.g. an X direction transmissibility multiplier of 0.1 for grid block
(3,4,2) reduces the transmissibility between grid blocks (3,4,2) and (4,4,2) by a factor of 10.
See the porosity help screen for details of how to add ranges or arrays of transmissibility
multipliers.
2.3.4.9 Absolute transmissibilities
This screen is optional and no data is required.
In normal use, the inter-block transmissibility is calculated internally by REVEAL from the
block permeabilities, the block geometries (corner points), and the transmissibility multipliers
. This screen can be used to overwrite those values with externally calculated values in the
x-, y-, and z-directions. The values here will only be used if the 'Use external
transmissibilities' option is set at the top of the screen.
This data would normally be imported directly from an ASCII file or from another simulator.
If external transmissibilities are used, then the diagonal point scheme should usually be set
to 5 point in the control section and it should be confirmed that the imported model
transmissibilities were calculated using a 5 point horizontal scheme.
For example this would be used when a model is imported from ECLIPSE and the results
wish to be reproduced as well as possible before other effects are considered.
See the porosity help screen for details of how to add ranges or arrays of transmissibilities.
2.3.4.10Net to gross
This screen is optional and no data is required.
The default horizontal permeabilities (XY plane) may be modified by entering a net to gross
ratio for any or all grid blocks (default value of 1.0). e.g. a net to gross of 0.5 reduces the X
and Y direction permeabilities by a factor of 2.
See the porosity help screen for details of how to add ranges or arrays of net to gross ratios.
2.3.4.11Pore volume multipliers
This screen is optional and no data is required.
The pore volume multipliers are multipliers for block volumes as calculated from the grid
geometry. The porosity and inter-block transmissibilities are not affected by these
multipliers.
Large pore volume multipliers on the boundary of small sector may be used to effectively
simulated constant pressure boundary conditions.
See the porosity help screen for details of how to add ranges or arrays of pore volume
multipliers.
2.3.4.12Rock type
A rock type must be assigned to each grid block in the model. Rock types are used to
define regions of the model with the same physical or dynamic properties (e.g. relative
permeability tables or rock heat capacity) which will be specified later in the input wizard.
To add a rock type select the Add button and define its coverage. To modify or delete a
rock type select the rock type from the table and modify its coverage or select the Delete
button.
The coverage of a rock type is defined by a table of selected regions. Define a region by
selecting ranges of X, Y and Z grid blocks, or the entire grid by using the All button. Multiple
regions may be added, modified and deleted to define the coverage for each rock type.
To add a PVT region select the Add button and define its coverage. To modify or delete a
PVT region select the region from the table and modify its coverage or select the Delete
button.
The coverage of a PVT region is defined by a table of selected regions. Define a region by
selecting ranges of X, Y and Z grid blocks, or the entire grid by using the All button. Multiple
regions may be added, modified and deleted to define the coverage for each region.
To add an equilibration region select the Add button and define its coverage. To modify or
delete an equilibration region select the region from the table and modify its coverage or
select the Delete button.
To add a fluid in place region select the Add button and define its coverage. To modify or
delete a fluid in place region select the region from the table and modify its coverage or
select the Delete button.
The coverage of a fluid in place region is defined by a table of selected regions. Define a
region by selecting ranges of X, Y and Z grid blocks, or the entire grid by using the All
button. Multiple regions may be added, modified and deleted to define the coverage for
each region.
Non-NeighbourConnection List
If the direction is undefined, then the value of inter-block transmissibility must be entered
explicitly. If the direction is defined, then REVEAL will calculate the inter-block
transmissibility and the value entered will be ignored; this method is usually required when a
grid has been imported from an ASCII model where the fault geometry is defined, but the
transmissibilities have not been calculated. The transmissibility multiplier may be used to
modify the inter-block transmissibility for both methods of calculation.
If external transmissibilities are set, then pinchout connections are set automatically, and the
following data are ignored.
Maximum vertical distance between adjacent cells for non-zero transmissibility - Any
neighbour blocks (consecutive layers) in the vertical direction with a vertical separation
greater than this value will be given zero transmissibility. If this field is not entered, then a
default value of 1020 ft is used.
GAP - this will generate a pinch out between blocks that have intermediate blocks removed
because of their low pore volume (the pore volume is lower than the value set for 'minimum
grid pore volume' in the Control section.
ALL - the transmissibility multiplier in the z-direction for the topmost cell in a pinch out will be
set to the minimum of the multipliers of the pinched out cells. If not set, then the
transmissibility multiplier for the topmost cell will remain unchanged.
2.3.4.17Refinement
This screen is optional and no data is required.
Grid refinement is not available for radial or curvilinear grids, or using the original
IMPES solver.
Refined regions within the main grid may be identified within this section. Only the scope
and names of refined region(s) are entered at this stage. The scope of a refined region may
contain any set of contiguous blocks within the main grid. Different regions of refinement
must not overlap or be contiguous (contact neighbouring refined regions).
To Add or delete a refined region use the New and Delete buttons, and enter a unique
identifier name for the refined region.
The coverage of a refined region is defined by one or more hexahedral sub-regions which
are added or deleted using the Add and Delete buttons within the coverage section of this
screen.
Use the Validate and Plot buttons to check the coverage of refined regions.
PVT - the PVT for water, oil and gas are entered using the standard Petroleum Experts
PVT screens, select the New or Edit buttons. If a new PVT is created it must be given a
name and be either oil, gas or condensate. A previously generated PVT file (*.pvt generated
by PROSPER) may be imported from the PVT screens using the Import facility. Matched
PVT may be converted into tables (up to 5 temperatures) using the Calc Tables option from
the PVT screens, speeding up most REVEAL calculations. If use tables is selected, then the
tables must be complete (all columns completed) and have sufficient coverage over a range
of temperatures and pressures to cover all expected values during the REVEAL simulation.
Options
Diffusion and dispersion - select the options for component diffusivity and phase
dispersivity if required. Additional data (diffusivity and dispersion lengths) will be required for
these options. The diffusivity and dispersivity options are only available for the IMPES
solver formulation. Diffusion and dispersion affect the transport of trace components
according to the flow velocity and rock tortuosity (dispersion) and the concentration gradient
(diffusion). To achieve this, high order upstream weighting schemes are required, that are
not included in the implicit formulation where a single point upstream weighting is used.
Water vapour in gas - this option maintains an equilibrium of water vapour in hydrocarbon
gas phase with liquid water in the reservoir model. The concentration of vapour in gas is
calculated from pressure, temperature, gas gravity and salinity according to a correlation
shared with MBAL and PROSPER. The main effect of this option is to pass the vapour in
gas content to a PROSPER generated lift curve, where water dropout may have significant
effects. Additionally, there are smaller effects within the reservoir as the vapour content
changes, which include changes in liquid water salinity.
Default thermal properties - specific heat capacity, thermal conductivity and rock density
defaults are set. These data are required even for nominally isothermal simulations,
where no thermal gradient or thermal injection are present.
Default aqueous component properties - sets the default density and compressibility for
additional aqueous volumetric components such as surfactant and alcohols.
Use correlations for fluid thermal data - enthalpy (specific heat capacity and Joule
Thomson coefficient) and thermal conductivity calculated for water, oil and gas based on
correlations used in PROSPER.
Component data
Trace components - trace components are either volumetric or non-volumetric (most are
non-volumetric). The mass or volume of the non-volumetric trace components take no part
in the pressure solve (for IMPES or implicit formulations) so the density of trace components
is only used to convert from mass to volume fractions. For this reason, non-volumetric
component densities are set equal to the phase they are partitioned within (e.g. water
chemistry components are partitioned in the aqueous phase). This means that component
mass fractions within the phase are equivalent to volume fractions (the solute and solvent
have the same density).
The volumetric trace components (injected non-reservoir gas, surfactant and the two alcohol
components) are included within the calculation of the phase densities and therefore take
part in the pressure solve. For these components, a reference density and compressibility
(c) are required to calculate the component densities.
r = r ref exp (c(P - Pref ))
Thermal data - all REVEAL calculations are thermal, so heat capacity and Joule Thomson
coefficients is required for all volumetric components. Non-volumetric components take no
part in the heat transport equations. Thermal conductivities are required for water, oil, gas
and surfactant components if the thermal conductivity option is selected (these components
refer to their respective phase conductivities). Joule Thomson coefficients may be entered
to reflect heating/cooling associated with changes in pressure.
Diffusion data - if diffusion is selected then the diffusivity of each trace component within
each phase is required.
Rock data
Additionally pore throat diameter multiplier and log STD are entered. These data are only
required for the solids transport model, where sand trapping depends on the pore throat
diameter distribution fro each rock type. By default the equivalent pore throat diameter (dp)
is set equal to:
kx 2 + ky 2
d p = k /f k =
where 2
The distribution of pore throat diameter (f) is given by a log normal distribution where sp is
the user supplied log STD:
2
é ln( d / d p ) ù
- 0.5 ê ú
1 ëê sp ûú
f (d ) = e
2ps p d p
Over/underburden data
The overburden/underburden rock density and thermal properties are also entered here.
Heat flux from the underburden and to the overburden is calculated using a model by
Vinsome and Westerveld [Ref 10].
Dispersivity
The longitudinal and transverse dispersion lengths are entered here only for IMPES models
where dispersion is selected.
PVT specification
Generally oil, water and gas PVT correlations should be converted to tables before a
simulation is performed. This speeds calculations in two ways, firstly the table lookup is
faster than correlation calculations and secondly the derivative information derived from
tables is smoother. To convert a PVT to tables, it should first be matched and all
correlations checked. Then use the Calc Tables button to set temperature and pressure
ranges, then calculate the tables and save then to the tables. Finally, the Use Matching
option should be deselected and the Use Tables selected. The tables should be viewed
before the Use Tables option is available.
Note that if the tables are calculated, while the Use Tables options set, then the tables will
be used to generate the new tables and the resulting tables will not be representative of the
underlying correlation.
PVT tables are not extrapolated, therefore they should always be complete and cover a full
range of anticipated temperatures and pressures. If incomplete tabular data is available, the
data should first be matched to a correlation, then tables built from the matched correlation.
To convert isothermal tables to thermal, copy the isothermal tables to the match screen,
perform the match, then extrapolate the correlations to a range of temperatures using the
Calc Tables button.
The Egboga et al oil viscosity correlation is recommended for heavy oils, for example when
steam injection for a heavy oil is used.
PVT data may be exported or imported using the Petroleum Experts '.pvt' files. When a
matched PVT is imported, it should be rematched. Match data can be imported/Exported
using the Petroleum Experts PTB file.
Non-Newtonian fluid
Non-Newtonian data is entered within the PVT screens using the 'Visc Tables' button. The
viscosity of heavy oils may be dependent on shear rate and this can be modelled by
entering various rheological constants for the oil phase as a function of temperature and
pressure. If this model is present, then the oil viscosity calculated from the standard PVT
calculator will not be used.
For a non-Newtonian fluid, the shear stress ( ) is related to shear rate ( ) by an exponential
equation, where the rheological constants ( 0,k & n) are entered on this screen as functions
of temperature and pressure.
t = t 0 + kg n
In contrast, a Newtonian fluid has the simplified form, where is the Newtonian viscosity.
t = mg
Note that if 0=0 and n=1, then k is the viscosity. The internal units for shear stress are Pa,
shear rate s-1, therefore k has units of Pa.sn, and in the Newtonian limit k has units of Pa.s,
where 1 Pa.s = 1000 cp.
The effective (Newtonian) viscosity ( ) is obtained using the shear stress calculated for each
grid block, see the polymer and gel mobility section for more information about shear. The
block shear stress is obtained using the following equation.
8k kr
t = ÑP
9fS
If a grid block contains an injection well, then the well shear stress may be modified to reflect
increased shear near the well. The well bore radius (rw) and Peaceman radius (r0) are used
to estimate the increased potential gradient and hence shear stress near the wellbore.
ær ö
t = t ln çç 0 ÷÷
è rw ø
The effective Newtonian viscosity to be used for oil mobility is calculated for an oil using the
formula below, which is derived by comparison with laminar flow pressure drop calculations
in tubing for non-Newtonian oils.
t
m= 1
n
æt -t 0 ö
ç ÷
è k ø
Note that when 0 is zero n is unity, it reduces to the Newtonian form where the viscosity is
equal to k.
A maximum cutoff viscosity is required (zero shear limit), since as the shear stress
approaches zero, the model predicts the apparent Newtonian viscosity approaches infinity.
The following is a rheological plot of oil viscosity and shear stress as a function of shear
rate. The plot of shear stress (left axis) against shear rate is given using the parameters
shown. The effective viscosity may then be calculated at any shear rate as the ratio of
shear stress divided by shear rate. The resulting effective viscosity is also plotted on this
plot (right axis). It can be seen that these parameters (n < 1) correspond to a shear thinning
fluid.
Corrected gas-phase viscosity for foam - The assumption is made that any gas present
forms a homogenous bubbly mixture (foam) with the oil, modifying (increasing) the
equivalent Newtonian viscosity (reducing the shear stress) for the foam mixture.
Additionally, the gas phase viscosity is set equal to the oil phase (foam) viscosity to reduce
the mobility of the gas phase (bubbles within the oil phase).
t
m= 1
n
æ t - t 0e ö
ç 1- n
÷
è ke ø
ro
e=
t = t 0 e + kg n e 1- n rf
where and
2.3.5.2 Rock compressibilities
The compressibility of each rock type is entered on this screen. Compaction and
permeability reduction are also modelled on this screen.
At least one rock compressibility should be entered, generally at the reference pressure (see
control section).
If the compaction option is not selected, then one rock compressibility and reference
pressure is entered. The porosity is calculated using the one of the following equations
depending on whether pore volume (default) or rock compressibility is selected.
(
cr P - Pref )
f = f ref e
Pore volume compressibility:
- c (P - P )
Rock compressibility: (1 - f ) = (1 - f ref )e
r ref
If the compaction model is active then a table of porosity and permeability multipliers should
be entered as a function of pressure. The pressures and multipliers should increase
monotonically down the table. More than one entry should be made covering the entire
range of predicted reservoir pressures to ensure rock compressibility.
If the irreversible compaction option is selected, then the porosity and permeability
multipliers take their minimum values during the simulation history (corresponding to
minimum pressure experienced). Therefore the compaction only applies to reducing
pressures and is irreversible as the pressure rises. The default is reversible compaction.
If the tabulate using stress option is selected, then the pressure should be replaced by
effective stress change defined as pressure-initial pressure.
2.3.5.3 Miscellaneous models
Several unrelated physical properties for various models are entered on this screen. The
options available will depend on models selected in the control section.
Viscosity Corrections
Wax dropout - this model is optional and no data entry is required. A rapid increase in oil
viscosity at the wax drop-out temperature may be modelled. The oil phase viscosity is
multiplied by (1 + exp[Bwax*(Twax-T)/(1+|Twax-T|)]), where T is the oil temperature
measured in degrees F, and a recommended value for Bwax is 5.0.
Use water phase viscosity correlation (salinity dependence) - this option is only
available if the Salinity component is present (Polymer/Gel models) or water chemistry is
present. If this option is selected, then the water viscosity calculated from the PVT section
will be overwritten by correlations including the salinity variations within the reservoir. This
option is provided since the PVT table data is defined at a specific constant reservoir water
salinity. Salinity component or water chemistry is required to use this option. When using
the water chemistry, the salinity is the total dissolved solids (kg/kg), not including dissolved
gas.
Water viscosity correlation - the viscosity correlation used in the PVT table generation and
elsewhere in REVEAL. Before build 130 (IPM6.2) a correlation derived from McCain fluid
properties handbook was used. This correlation over estimates the pressure dependence of
water viscosity. The default correlation does not include this pressure dependence.
Density Corrections
Use water phase standard condition density correlation (salinity dependence) - this
option is only available if the Salinity component is present (Polymer/Gel models) or water
chemistry is present. If this option is selected, then the standard condition water density
calculated from the PVT section will be overwritten by correlations including the salinity
variations within the reservoir. This option is provided since the PVT table data is defined at
a specific constant reservoir water salinity. Note that the temperature pressure dependence
(water FVF) is still applied from the PVT table data. When using the water chemistry, the
salinity is the total dissolved solids (kg/kg), not including dissolved gas.
-7
If salinity (S) > 150000 ppm r w( sc) ( S ) = 9.34 *10 ( S + 1017566.1) * 62.43 , where S is salinity (ppm).
Standard condition density (lb/ft3).
-7
If salinity (S) < 150000 ppm r w( sc) ( S ) = 6.78 *10 ( S + 1451378) * 62.43 , where S is salinity (ppm).
Standard condition density (lb/ft3).
Include dissolved CO2 water phase density variations - this option is only available if the
component CO2water is present within the water chemistry module. If this option is
selected, then the water phase density (rw) is modified to reflect the dissolved CO2.
1 C 1 - C CO 2
= ( CO 2 + )
r w (CO2 ) 78 rw
, where CCO2 is the dissolved CO2 concentration (kg.kg). Water
density (lb/ft3).
Interfacialtension
Oil/Water IFT for use with J-Leverett - Apart from desaturation models, IFT is required for
the J-Leverett capillary pressure model. In this case the Parachor correlation value is
chosen by default, but this may be overwritten using the optional data entry value. In either
case the capillary pressure is calculated from the J-Leverett function using a single initial IFT
value. However, if the 'Modify capillary pressure' option is selected, then the IFT will be
dynamically modified as the simulation evolves, and affect the J-Leverett calculated capillary
pressures accordingly.
Miscibility/wettability
Wettability - only required if the wettability model is selected in the control section. This
parameter controls the desaturation (interpolation between high and low tension relative
permeability curves) as a function of adsorbed wetting agent.
The initial reservoir wettability is set in the initialisation section; where a value of 1
represents high tension and -1 represents low tension. As the wetting agent is adsorbed
from zero to its maximum value, the wettability is increased from the initial value (at zero
adsorbed wetting agent) to the initial value plus twice the wettability change parameter
entered on this page (at maximum adsorbed wetting agent).
Therefore if the reservoir is initially high tension (wettability = 1) and a value of -1 is entered
for the wettability change parameter, when the adsorbed wetting agent reaches its maximum
value, the wettability will be 1+2*-1 = -1 (low tension). Similarly if the reservoir is initially low
tension (-1) and a wettability change parameter of 1 is used, the wettability at maximum
adsorbed wetting agent will be -1+2*1 = 1 (high tension).
Miscibility - only required if the miscibility model is selected in the control section. The
miscibility pressure is entered as a linear function of temperature. Pmisc = P1+P2*(T-Tref),
where T is the temperature and Tref is the reference temperature entered in the control
section. If the block pressure rises above the miscibility pressure, then the oil and gas
phase viscosities are modified by a quarter power mixing rule or the Todd Longstaff model
[Ref 5] if this option is selected.
A miscible hydrocarbon phase viscosity is calculated, where g is the non water blocked gas
fraction (gas fraction that is not water blocked).
-4
1 1 Sg
m h = m o m g æç gm o 4 + (1 - g ) m g 4 ö÷ g=
è ø S o + S g - S owb
The Todd and Longstaff model modifies the oleic and gas phase viscosities using a user
The oil and gas phase viscosities approach each other as the mixing parameter (W) is
increased, with a value of 1 leading to the gas and oil phase viscosities being equal
(equivalent to the quarter power mixing rule).
See the relperm section for more information on the wettability and miscibility models.
Steam
Use steam tables for water phase FVF and viscosity - if the steam model is present, then
by default the steam tables are used for water phase FVF and viscosity and the PVT tables
for these properties are ignored. To use the PVT tables for these properties, deselect this
option.
2.3.6 Relperm section
2.3.6.1 Relperm options
The first screen of the relperm section initialises various options that will affect the options
and data required for the remaining relperm screens.
Stone Model - either Stone I, Stone II or a linear model are available for three phase oil
phase relative permeability. If the miscibility option is set and the pressure is above the
miscibility pressure then the oil and gas phase relative permeabilities are calculated using
the miscibility model.
Stone I
S o¢ kr ow kr og æ 1 - Sr w - Sr ow ö
kr o = kr *ow = kr ow çç ÷÷
kr *ow (1 - S w¢ )(1 - S g¢ ) è 1 - Sr ow ø
S w + S m - (Sr w + Sr m ) S o - Sr o Sg
S w¢ = S o¢ = S g¢ =
1 - Sr w - Sr o - Sr m 1 - Sr w - Sr o - Sr m 1 - Sr w - Sro - Sr m
Sg
a = 1-
Sr o = aSr ow + (1 - a ) Sr og 1 - Sr w - Sr og - Sr m
Stone II
éæ kr öæ kr og ö ù
kr o = kr *ow êçç ow + kr w ÷÷çç + kr g ÷÷ - kr w - kr g ú
êëè kr *ow øè kr *ow ø úû
Linear
S g kr og + S w kr ow
kr o =
Sg + Sw
Hysteresis - may be applied to the water, oil and gas phases, see residual saturations for
more information. Hysteresis is usually modelled when significant differences in relative
permeability and capillary pressure occur during drainage and imbibition.
Endpoint scaling - may be applied to water, oil and gas phases, see endpoint scaling for
more information. Endpoint scaling is an easy way to modify relative permeabilities on a
block by block basis without introducing a different rock type/relative permeability curves for
each block.
Capillary desaturation - This option is set for models where surfactant (capillary
desaturation) is present. The surfactant model is enabled in the control section. When the
capillary desaturation option is set, two relative permeability curves will be required for low
and high tension, with interpolation between the curves depending on the desaturation
model.
Capillary desaturation may be set when the surfactant model is not present, in this case the
capillary desaturation will vary with the changing viscous forces and interfacial tension.
Capillary desaturation should be off when the wettability model is selected, since the
interpolation between high and low tension relative permeability curves will be dependent on
adsorbed concentration of wetting agent rather than by capillary desaturation.
Capillary desaturation model - This option specifies whether the desaturation is linearly
interpolated using Log10(Nc) between two endpoints, or whether a curve defined by Log10
(Nc) at which 50% desaturation (midpoint) is used.
Gas miscibility
This option is only available when the Todd and Longstaff miscibility option is selected in the
control section. When the oil and gas phases are miscible (pressure above miscible
pressure) the oil and gas relative permeabilities are modified using the Todd & Longstaff
model [Ref 5] to calculate weighted averages of the oil and gas phase relative
permeabilities. The residual interpolation scheme uses an interpolated (between oil and gas
phases) value for hydrocarbon phase residual saturation, while the simple model uses the
oil and gas phase residual saturations.
A residual saturation for the combined hydrocarbon phase is calculated, subject to water
blocking. The water blocked hydrocarbon residual saturation is a function of water
saturation and may be entered in tabular or parametric format on the capillary pressure
screen.
Mobile phase saturations (Sm) are calculated for the hydrocarbon phase using either a
simple or interpolated (residual) model.
Rock List
Use the Add Region and Delete button to add or remove selected critical saturation tables.
The Left Rock Coverage table lists all the critical saturations and associates them with rock
types. To associate a critical saturation with a rock type select the required critical
saturation, then select the required rock type from the Right table Rock Coverage list.
If directional relative permeabilities are present, then the residual saturations for each
relative permeability curve will be the same and only one set of critical saturations is
required for each rock type.
Automatic Coverage - use this button to automatically assign each rock type to its
corresponding relative permeability curve, where coverage for rock type 'n' is set to relative
permeability curve 'n'. This may be useful for imported datasets, where each relative
Critical saturations
The residual saturations are entered for each rock type permeability curve. Note that the
residual saturations are the same for all directional relative permeability curves for a given
rock type.
Separate residual saturations are required for high and low tension fluids if the desaturation
model is present. Data are required for two phase water/oil and oil/gas relative permeability
curves, and the micro-emulsion phase if the surfactant model is present.
Hysteresis
Gas hysteresis - the critical gas saturation (Srgc) is the saturation at which gas initially
becomes mobile, while the maximum residual gas saturation (Srgm) is used to model gas
hysteresis. The historical maximum gas saturation (Sgm) is used to estimate the current
gas residual (Srg) saturation. The residual gas saturation will always be within the range
defined by Srgc and Srgm, so if both values are identical no hysteresis will take place.
S gm - Sr gc
Sr g = Sr gc + (Sr gm - Sr gc )
Sr gc £ Sr g £ Sr gm
1 - Sr w - Sr gc
If the gas saturation is within the range [Srgc,Sgm], then the gas phase relative permeability
is calculated by using a normalised gas saturation (Sg*) and the original gas relative
permeability curve.
S gm - S g
Sr g* = Sr gc + (Sr g - Sr gc )
S gm - Sr g
S g - Sr g*
S g* = Sr gc + (1 - Sr w - Sr gc )
1 - Sr w - Sr g*
Oil hysteresis - oil phase hysteresis is controlled by altering the residual oil saturation for
the water/oil relative permeability curves. A similar interpolation scheme to the gas
hysteresis option is employed for both the low (if desaturation is present) and high tension
oil residual saturations. The high and low tension oil residual saturations are calculated first
accounting for hysteresis, then interpolated to account for desaturation.
The critical oil saturation (Sroc) is the saturation at which oil initially becomes mobile, while
the maximum residual oil saturation (Srom) is used to model oil hysteresis. The historical
maximum oil saturation (Som) is used to estimate the current oil residual (Sro) saturation.
The residual oil saturation will always be within the range defined by Sroc and Srom, so if
both values are identical no hysteresis will take place.
S om - Sr oc
Sr o = Sr oc + (Srom - Sroc )
1 - Sr w - Sr oc Sroc £ Sro £ Srom
If the oil saturation is within the range [Sroc,Som], then the oil phase relative permeability is
calculated by using a normalised oil saturation (So*) and the original oil/water relative
permeability curve. For the oil/water relative permeability curve, the oil saturation used is
that with no gas present, So=1-Sw.
S om - (1 - S w )
Sr o* = Sr oc + (Sro - Sroc )
S om - Sr o
So* = Sroc +
(1 - S w ) - Sro* (1 - Sr - Sroc )
w
1 - Srw - Sro*
Water hysteresis - water phase hysteresis is controlled by altering the residual water
saturation for the water/oil relative permeability curves. A similar interpolation scheme to the
gas hysteresis option is employed for both the low (if desaturation is present) and high
tension water residual saturations. The high and low tension water residual saturations are
calculated first accounting for hysteresis, then interpolated to account for desaturation.
The critical water saturation (Srwc) is the saturation at which water initially becomes mobile,
while the maximum residual water saturation (Srwm) is used to model water hysteresis. The
historical maximum water saturation (Swm) is used to estimate the current water residual
(Srw) saturation. The residual water saturation will always be within the range defined by
Srwc and Srwm, so if both values are identical no hysteresis will take place.
S wm - Sr wc
Sr w = Sr wc + (Sr wm - Sr wc )
1 - Sr wc Srwc £ Srw £ Srwm
If the water saturation is within the range [Srwc,Swm], then the water phase relative
permeability is calculated by using a normalised water saturation (Sw*) and the original
water relative permeability curve.
S wm - S w
Sr w* = Sr wc + (Sr w - Sr wc )
S wm - Sr w
S w - Srw*
S w* = Srwc + (1 - Srwc )
1 - Srw*
The following plot demonstrates the hysteresis in relative permeability, for saturations below
a historical maximum (Smax).
DesaturationParameters
If the desaturation model is set to Nc Endpoints, then the interpolation is a function of the
capillary number (Nc) and defined for each relative permeability curve by two parameters
each (Capillary number at low (Ncl) and high (Nch) tension).
Srl<Sr<Srh, where Srl and Srh are the low and high tension residual saturations.
If the desaturation model is set to Nc Midpoint, then the interpolation is a function of the
capillary number (Nc) and defined for each relative permeability curve by a single parameter
(Nc1/2) defining the Nc at which 50% desaturation occurs.
alpha = 1.0/(1.0+Nc/Nc1/2)
Srl<Sr<Srh, where Srl and Srh are the low and high tension residual saturations.
Note that with both models, the Nc values are entered as Log10(Nc).
Wettability - if the wettability model is present, then the interpolation between high and low
tension residual saturations is calculated as a function of the wettability. The wettability is
initialised in the initialisation section and changes as the wetting agent is adsorbed. A
wettability of -1 corresponds to low tension, while a wettability of 1 represents high tension,
with linear interpolation for intermediate values of wettability. The change to the wettability
as wetting agent is adsorbed is controlled by the wettability change parameter defined in the
physical section.
2.3.6.3 Relative permeability
Relperm List
Relative permeability curves must be entered for each region defined in the previous
residual saturation page. Select add or delete to create or delete relative permeability
curves for each region, and select entries in the relative permeability list to modify the data
entered.
Directional relperms - relative permeability curves must be defined for each direction if
directional relative permeabilities have been defined. However, directions with the same
curves may be grouped to prevent excessive repetitive data entry.
Tabular & parametric - for each relative permeability curve, either tabular or parametric
entry may be used. The water/oil curves are for two phase water and oil, while the gas/oil
curves are for two phase oil/gas in the presence of connate water. Therefore, for the gas/oil
curves, the gas saturation range should be from Sgc to 1-Srw, and the corresponding oil
saturation range should be from Srog to 1-Srw.
Copy and paste may be used to enter or edit relative permeability tables. Use the Validate
button to check coverage and the Plot button to view the relative permeability curves
entered.
Relative permeabilities
The parametric relative permeabilities take the following form for high and low tension
curves, where the end points (kr*) and exponents (n) are input.
nw
*é S w - Sr w ù
kr w = kr w ê ú
ë Sr w - Sr ow û
1 -
now
* é 1 - S w - Sr o ù
kr ow = kr ow ê ú
ë1 - Sr w - Sr ow û
nm
*éS - Sr m ù
kr m = kr m ê m ú
ë 1 - Sr m û
nog
é
* 1 - Sr w - S g - Sr og
ù
kr og = kr og ê ú
êë1 - Sr w - Sr g - Sr og úû
ng
*
é S g - Sr g ù
kr g = kr g ê ú
ëê1 - Sr w - Sr og - Sr g ú
û
The numerators represent the mobile phase fraction, while the denominators represent the
maximum mobile fraction.
Note that these correlations are based on the assumption of an oil reservoir initially
containing connate water only. If the mobile phase fraction is exceeded (due to
desaturation, aquifer or gas cap), then these correlations are not extrapolated and therefore
tabular input should usually be used.
For the oil in water relative permeability curves, So = 1-Sw, and for the oil in gas relative
permeability curves So = 1-Srw-Sg.
Surfactant - if the surfactant model is present, then in addition to the low and high tension
water/oil curves and the gas/oil curves, a middle (micro-emulsion) phase curve is required as
Desaturation - for the capillary desaturation and wettability models the interpolation
between high and low tension relative permeability curves is parameterised by capillary
number and wettability in a similar manner to the interpolation used to calculate residual
saturations.
0.8
0.7
0.6
Relative permeability
0.5
high tension
0.4 low tension
interpolated
0.3
interpolated residual saturation
0.2
0.1
0
0 0.2 0.4 0.6 0.8 1
Saturation
At the residual (connate) water saturation the water/oil capillary pressure is a maximum, and
should fall monotonically as the water saturation rises. If there is no water/oil contact, the
maximum water saturation will be 1-Sro.
If the J Leverett option is selected, then the dimensionless J function should be entered in
the water/oil table. Two J Leverett methods are available, differing in the permeability used
(either vertical or horizontal permeability may be used).
The water/oil capillary pressure for any block is then calculated (in oilfield units) by the
following formula for each grid block.
Js f
Pco =
6.84945 k
where s is the water/oil interfacial tension (IFT dyne/cm), f is the block porosity and k is
either the horizontal '(KX+KY)/2' or vertical 'KZ' permeability (Darcy).
The IFT may either be constant of vary with prevailing conditions according to a Parachor
correlation. Alternatively it may be constant (defined by the Parachor correlation at the initial
reference conditions or user specified). See the physical section to see how to set these
options.
At zero gas saturation the gas/oil capillary pressure is zero, and should rise monotonically to
a maximum value at a gas saturation of 1-Srw.
For a water-gas system, the water/gas capillary pressure curve is conventionally defined in
the oil/water table and the oil/gas table set to zero capillary pressure.
The rock coverage of the capillary pressure tables is the same as that entered for the critical
saturations.
If residual water or gas saturations are entered in the initialisation section, then these will be
used as the endpoints for the capillary pressure curves.
Water blocking
If the miscibility option is active then a hydrocarbon phase water-blocked residual saturation
(the residual saturation of the water blocked hydrocarbon phase) is required. This is a
function of water saturation and may be constant, tabular or have a parametric form,
parameterised by a wetting parameter. See the relperm options page for the equation of the
parametric form.
2.3.6.5 Endpoint scaling
Endpoint scaling is optional, and is only available if the option is selected on the relperm
options page.
Each relative permeability table has nominal endpoints defined as follows. Generally this
data is imported.
If endpoint scaling is applied, then relative permeability and capillary pressure tables will be
re-scaled between the entered critical (e.g. Swc) and maximum saturation entered in the
table (e.g. 1) endpoints. Endpoints are defined over the entire grid.
If the 3-point endpoint scaling option is chosen then a method similar to SCALECRS in
ECLIPSE is used, where the input relative permeability curves are scaled to 3 points, critical
saturation (e.g. Swc), 3phase maximum saturation (e.g. 1-Sowc) and maximum saturation
(e.g. 1).
Water scaled saturations - data for the minimum (SWL), critical (SWCR) and maximum (1-
SOWCR) water saturations may be entered.
Oil scaled saturations - data for the critical water saturations for oil/water (SOWCR) and
oil/gas (SOGCR) may be entered.
Gas scaled saturations - data for the minimum (SGL) , critical (SGCR) and maximum gas
(SGU) saturations may be entered.
Scaled endpoints - the maximum endpoint relative permeability may be re-scaled for the
water, oil and gas phases. This may be applied at the maximum saturations (KRW, KRO
and KRG), and also at the 3-point maximum saturations (KRWR, KRORW, KRORG and
KRGR).
Capillary pressure saturations - the minimum water (SWLPC) and gas (SGLPC)
saturations to be used for capillary pressure calculations.
2.3.7 Aquifer section
2.3.7.1 Analytical aquifer
This section enters data to define an analytical aquifer model if the aquifer model was
included in the control section. For more detailed information see Carter Tracy
Region list
Several aquifers may be connected to the grid. Use the Add button to add an aquifer to the
list and select an entry in the list to alter its properties. An aquifer may be deleted by
selecting it in the region list and then selecting the Delete button.
For each aquifer the boundary region of the grid connected to the aquifer must be defined.
Select the aquifer (grid) boundary (X-,X+,Y-,Y+,Z-,Z+) that the aquifer is connected to and
enter the 3D range of blocks, the All button may be used to select an entire surface of the
grid. Note that an aquifer will be connected to the first active block looking into the grid in
the defined direction as long as the block is within the 3D volume of blocks defined.
Multiple connection regions may be defined by using the Add and Delete buttons.
For illustration purpose, let imagine a 2-D grid, i.e. x=1…NX, y=1…NY, z=1. The Aquifer
Boundary selected is X- (West). The blue gridblock on the following grid sketches show
where the aquifer is active.
y axis
z axis
y=…
y=3
y=2
y=1
x axis
y axis
z axis
y=…
y=3
y=2
y=1
x axis
General properties
Five aquifer models (linear and radial with either finite or infinite acting and user defined) are
available (See Carter Tracy for more information). The first four models are solutions to the
constant terminate rate diffusivity equation with different geometries and boundary
conditions. For the fifth model, the user is required to enter their dimensionless time/
pressure response for the aquifer. For all five models, some physical properties for the
aquifer are required; porosity, permeability and compressibility.
Geometry
Depending on the aquifer model chosen, the physical extent of the aquifer is entered. The
contact area is defined by the aquifer thickness (height) and encroachment angle, and either
the aquifer width (linear) or inner radius (radial). The volume of the aquifer for the finite
acting models are defined by the length (linear) and outer radius (radial).
Component concentrations
The concentration of components in the aquifer are entered. This will usually be 1 lb/lb for
water and zero for other components.
2.3.7.2 Carter Tracy model
The inflow to each grid block (IJK) connected to an aquifer is defined.
ijk
Qaq = a ijk ( Aaq - Baq ( P ijk (t n +1 ) - P ijk (t n )))
where aIJK is the fractional area of grid block IJK connected to the aquifer
A ijk
a ijk =
å Aijk
Aaq and Baq are aquifer constants calculated for the aquifer model defined by the user, and
are functions of the aquifer influence function (t) and the cumulative influx W(t).
C aq t¢
Baq = n +1
æ ¶j ö t
j n +1 - t ¢ n ç ÷
è ¶t ø
n +1
W n æ ¶j (t ¢) ö
Aaq = (DP n - ç ÷ ) Baq
C aq è ¶t ¢ ø
where a dimensionless time t' and an aquifer constant Caq are defined. faq are the
encroachment angles.
The aquifer influence functions are calculated as solutions to a constant terminal rate
diffusion equation.
¶j
= Ñ 2j
¶t ¢
The aquifer influence function has unit gradient at the inner boundary and zero initial value.
A zero gradient boundary condition is used for a finite aquifer at the outer boundary, or a
zero solution boundary condition for an infinite aquifer. Approximate solutions to the
influence function are obtained at the inner boundary and described below. The radial
solutions are due to Hurst and van Everdingen [Ref 1].
t¢
j (t ¢) = 2
p for t ¢ £ 0.15
1
- 0.20354 e (-p t ¢ )
2
j (t ¢) = t ¢ +
3 for t ¢ ³ 0.15
Infiniteradial aquifer
t¢
j (t ¢) = 2
p for t ¢ £ 0.01
b
j (t ¢) = c + (s + 2 ) 2 + a 2
a for 0.01 £ t ¢ £ 1000
0.80907 + ln (t ¢)
j (t ¢) =
2 for t ¢ ³ 1000
a = 3.15
2
æaö
b = 1.15 a 1 + ç ÷
è5ø
c = 0.112 - b
s = ln (t ¢)
j ¥ (t ¢) for t ¢ £ t c
2(t ¢ - t c )
j (t ¢) = j ¥ (t ¢) +
Ro aq
-1
Ri aq
for t ¢ ³ t c
1.93
æ Ro aq ö
t c = 0.33 ç - 1÷
ç Ri ÷
è aq ø
j ¥ (t ¢) is the infinite radial solution.
This screen initialises the polymer and gel model and sets the shear thinning parameters.
Three models are available for viscosity resulting from polymer and gel components (original
, Carreau and Kuparuk). These models calculate a thickening factor (TF) for the aqueous
and micro-emulsion (if surfactant is present) phases, subject to shear thinning near wells.
The thickening factor is multiplied by the pure phase viscosity to obtain the modified phase
viscosity.
Details of the original and Kuparuk models (for polymer and gel) are given on subsequent
pages of the mobility section, when additional data input is required.
The Carreau model only applies to polymer (not available if gel is present) and requires no
additional data. It is a correlation derived from a xanthan polymer that includes shear
thinning implicitly.
The shear rate (g) is defined for each rock type and is parameterised by a critical shear rate (
gc) entered on this screen.
qw
g =gc
9
k fS w kr w
8
The average permeability in the direction of flow is defined. This permeability includes any
permeability reduction present.
2 2 2
1 æ qx w ö 1 æ qy w ö 1 æ qz w ö 1
=ç ÷ +ç ÷ +ç ÷
k çè q w ÷ø kx çè q w ÷ø ky çè q w ÷ø kz
If a grid block contains an injection well, then the well shear rate may be modified to reflect
increased shear near the well. The default is for this model to be inactive, (see the well
section to activate the well shear model). The well bore radius (rw) and Peaceman radius
(r0) are used to estimate the increased Darcy velocity near the well-bore.
ær ö
g = g ln çç 0 ÷÷
è rw ø
Once the shear rate (or shear stress) is calculated, it may be used to modify the effective
viscosity by modifying a thickening factor (TF).
Viscosity calculation
The zero shear thickening factor (TF0) is modified by the shear rate, using the user input
parameters gamma (gh), alpha (n) and thickening parameter (s). The shear thickening
parameter is optional and will only have effect if it is greater than 1.
Shear thinning
TF = 1 +
(
s FT 0 - 1 )
n -1
æg ö
1 + çç ÷÷
ègh ø
The parametric parameters may be estimated from polynomial fits to data. Some
spreadsheets are available from Petroleum Experts to help with this process. However,
manufacturer data is required to match these parameters.
Note that all of the concentrations are mass fractions (e.g. kg/kg) and the temperatures in
this correlation are absolute (R).
æ æ1 1 öö
( 2
)
TF 0 = 1 + c se p1c p + p 2 c p + p3 c p exp ç p 4 ç -
3
ç ç T Tref
÷÷ +
÷÷
è è øø
æ æ1 1 öö
(g c
1 g
2
)
+ g 2 c g + g 3 (g 4 - c g ) exp ç g 5 ç -
3
ç ç T Tref
÷÷
÷÷
è è øø
Polymerviscosity parameters
Temperature - the thermal coefficient p4 is also used to calculate the contribution to the
zero shear thickening factor for polymer.
Salinity - the water component is clearly present in the aqueous phase, but may also be
present in a micro-emulsion phase. Volumetric concentrations of polymer (cp), gel (cg), salt
(cs) and divalent cations (cd) within the water component of the aqueous and micro-
emulsion phases are calculated.
The salinity contribution is optional and is included by selecting the salinity dependence
option.
Effective polymer salinity (cse) is defined for the original model with reference to three user
input variables, a minimum threshold salinity (cs*), and two further coefficients, divalent
cation dependence (d) and dependence (S). The divalent cation dependence is only
applicable if the divalent cation component is present within the model.
c se = [max (c s *, c s - (1 - d )c d )]
S
Temperature - the thermal coefficient g5 is also used to calculate the contribution to the
zero shear thickening factor for gel.
a1 = 0.001295
a2 = 0.001784
a3 = 0.01046
a4 = 1910.5
a5 = 0.01577
a6 = 275.0
a7 = 0.0002939
a8 = 2.67
a9 = 2.189
a10 = 0.4334
a11 = 195.3
2.3.8.4 Kuparuk polymer gel model
This model calculates a zero shear rate thickening factor (TF0) that is modified by the shear
rate (see shear rate) to obtain a total thickening factor (TF). This model applies to both
polymer and gel. The final thickening factor is multiplied by the pure aqueous phase
viscosity to obtain a modified water viscosity.
Note that all of the concentrations are mass fractions (e.g. kg/kg).
The Kuparuk model basically interpolates the correlation between high (T[h]) and low (T[l])
temperature limits.
The input parameters for both polymer and gel are identical.
For the polymer the parameters are p1[h], p1[l], p2[h] and p2[l].
For the gel the parameters are g1[h], g1[l], g2[h] and g2[l].
( 2
) (
TF 0 = 1 + a p1c p + a p 2 c p + a g1c g + a g 2 c g
2
)
T [ h] - T
f =
T [h] - T [l ]
Three models are available, depending on the components present. Note that in all of the
models the temperatures may be input in any allowed units, but the correlations are
expressed with absolute (R) temperatures. The concentrations are all mass fractions (kg/kg)
within the water phase.
When a reference temperature (Tref) is used, this temperature is the reference temperature
defined in the control section.
2 component model - this model applies when only polymer and gel are present. The
required data are rate coefficient (Rk), temperature coefficient (Bk), temperature threshold
(Tr) and polymer volumetric concentration threshold (Pc0).
If the temperature is greater than Tr and the polymer concentration is greater than Pc0 then
a reaction between polymer and gel occurs with mass reaction rates per unit volume of
water for polymer (Rp) and gel (Rg).
æ æ1 1 öö æ æ1 1 öö
R p = - Rk c p exp ç Bk ç - ÷÷ R g = Rk c p exp ç Bk ç - ÷÷
ç ç T Tref ÷÷ ç ç T Tref ÷÷
è è øø è è øø
3 component model - this model applies when polymer, gel and cross-linker are present.
The required data are rate coefficient (Rk), temperature coefficient (Bk), temperature
threshold (Tr), polymer volumetric concentration threshold (Pc0), cross-linker volumetric
concentration threshold (XLc0), polymer reaction rate multiplier (P0) and cross-linker
reaction rate multiplier (XL0).
If the temperature is greater than Tr, the polymer concentration is greater than Pc0 and the
cross-linker concentration is greater than XLc0, then a reaction between polymer and cross-
linker to produce gel occurs with mass reaction rates per unit volume of water for polymer
(Rp), cross-linker (Rxl) and gel (Rg).
æ æ1 1 öö
R p = - Rk P0 c p c xl exp ç Bk ç - ÷÷
ç ç T Tref ÷÷
è è øø
æ æ1 1 öö
R xi = - Rk XL 0 c p c xl exp ç Bk ç - ÷÷
ç ç T Tref ÷÷
è è øø
æ æ1 1 öö
R g = Rk (P0 + XL 0 )c p c xl exp ç Bk ç - ÷÷
ç ç T Tref ÷÷
è è øø
4 component model - this model applies when polymer, gel, cross-linker and chelated
cross-linker are present. It is identical to the 3 component model, except that the chelated
cross-linker can react to form cross-linker, before the polymer and cross-linker reaction
occurs. The additional parameters for this model are de-chelation rate coefficient (Rk1),
temperature coefficient (Bk1), temperature threshold (Tr1), chelated cross-linker
If the temperature is greater than Tr1, the chelated cross-linker concentration is greater than
Cc0, then a reaction between chelated cross-linker and cross-linker occurs with mass
reaction rates per unit volume of water for chelated cross-linker (Rc) and cross-linker (Rxl).
æ æ1 1 öö æ æ1 1 öö
Rc = - Rkl cc exp ç Bkl ç - ÷÷ R xl = Rkl cc exp ç Bkl ç - ÷÷
ç ç T Tref ÷÷ ç ç T Tref ÷÷
è è øø è è øø
The 3 component reaction then occurs as described above, except that the cross-linker
reaction rate is the sum of the two reactions involving cross-linker.
Both polymer and gel may degrade at rates defined by rate (Rp0 and Rg0) and temperature
coefficients (Bp0 and Bg0), reducing the reaction rates for these components.
æ æ1 1 öö æ æ1 1 öö
R p = R p - R p 0 c p exp ç B p 0 ç - ÷÷ R g = R g - R g 0 c g exp ç B g 0 ç - ÷÷
ç çT T ÷÷ ç çT T ÷÷
è è ref øø è è ref øø
The foam model increases the gas phase viscosity, thereby reducing its mobility and
modelling the production of foam in a heavy oil. The foamer model may be applied
separately to each rock type, or all rock types.
The diluent model alters the oil phase viscosity, thereby modelling diluent mixing.
The concentration of foaming agent in the aqueous phase (cf), oil saturation (So) and five
input parameters describe the modification to the PVT defined gas phase viscosity (mg0).
The input parameters include CRFK, foam threshold (cfT), ES, oil saturation threshold (SoT
) and EO.
ES EO
æ cf ö æ So ö
m g = m g 0 CRFK min ç1, ÷ max çç 0,1 - ÷÷
ç c ÷ So
è fT ø è T ø
For information on natural foams associated with heavy oils, see the physical section.
The oil phase mobility only is altered by the concentration of the 'diluent' tracer.
The diluent viscosity is calculated from the pressure, temperature and reference conditions
entered.
æ æ1 1 öö
m d = m dref (1 + A( P - Pref ) )exp ç Bç - ÷÷
ç ç T Tref ÷÷
è è øø , where the temperatures are absolute degrees Rankine = o
F+459.67.
The apparent modified oil viscosity is then modified by a linear weighting according to the
diluent mass concentration fraction.
mod
mo = C d m d + (1 - C d ) m o
If the logarithmic dependence flag is set then the apparent oil viscosity is calculated using a
logarithmic weighting.
(
Log m o
mod
) = C Log (m
d d ) + (1 - C d ) Log (m o )
If this viscosity correction is also required within the tubing, then the 'Use Polymer/Gel
Viscosity' option should be selected in the wells section.
2.3.8.8 Sodium Silicate
The required components in the Polymer/Gel model are Gel, Silicate and SilicateTracker.
Water chemistry components and solids can also be added using the Water Chemistry
model. The water chemistry components are required to model pH.
The sodium silicate will activate at reduced pH, and once activated, and after a time to
gelation (tg), the conversion of the silicate component to Gel will occur. Once converted, the
Gel component takes care of reduced mobility by either increased viscosity for the gel or
adsorption and permeability reduction to all phases.
The Silicate component is the injected Sodium Silicate, and the SilicateTracker component
is a special required component described below. This component initial concentration or
injection is not specified by the user.
Once the required components are present, the silicate model wizard page is available.
Gelationtime parameters
A gelation time (tg) is calculated from the prevailing set of conditions of pH, temperature,
Silicate concentration, mono-valent salinity.
Ea ö
[ ]
b
(
t g = Ac s H + exp c[NaCl ]
a 1/ 2
)expæç RT ÷
è ø
The fraction of the gelation process is characterised by the SilicateTracker component (f).
Once its value reaches unity (106 ppm), then the Silicate component may be converted to
Gel component.
Each timestep f is updated using timestep (DT) and gelation time (tg) by:
f = f + DT/tg (1)
Then, as well as the Silicate concentration (cs) being tracked, an additional pseudo variable
(X) is also tracked. The pseudo variable is:
X = f.cs (2)
f = X/cs (3)
1] The SilicateTracker is only updated (eqn 1) if the pH is less than the Activation pH.
2] Once the SilicateTracker reaches unity, the Silicate component is entirely converted to
Gel only if the concentrations of the Silicate component exceeds the Min Silicate Conc.
Surfactants are generally used in conjunction with other chemicals, such as alcohols, which
affect the phase behaviour, and polymers, which may also affect the phase behaviour and
which are important for mobility control. Salinity and divalent ion concentration have a
strong influence on phase behaviour, as does temperature and the equivalent alkane
number (EACN) of the oil, which varies as the oil phase composition (Rs) varies.
For surfactant flood simulations with REVEAL, up to six volumetric components may be
present (water, oil, gas, surfactant and up to two alcohols). Non-volumetric components
include salinity, and optionally polymer and divalent ions. Additionally tracer components
may also be present. Alcohols are always assumed to be active in the phase behaviour;
polymer may be active, or simply a mobility control agent. Adsorbed material is assumed to
Surfactant flood systems are described in many books on Petroleum Engineering; only an
outline of the theory is given below.
The phase calculations determine first the phases that are present in a given system, and
from there determine those phase properties. The steps that are taken are:
Phase Single phase No surfactant Type III Type II(-) Type II(+)
behaviour
P>Pb Micro-emulsionOil Oil* Oil* Micro-
Water Micro-emulsion Micro-emulsion emulsion*
Water Water
P<Pb Micro-emulsionOil Oil Oil Micro-
Gas Gas Gas emulsion*
Water Micro-emulsion Micro-emulsion Water
Water
The five phase regions identified are numbered from one to five, and may be plotted if
'Phase Region' is selected as a property to be stored during a calculation (Run Simulation|
Select Properties...).
This screen contains the data for partitioning alcohol and polymer components among the
three pseudo-components. Press Plot to obtain a plot of the partitioning based on the data
that you have entered.
Define pseudo-phase subscripts for the aqueous (a), oleic (o) and chemical (c) pseudo-
components, and component superscripts for the water (w), oil (o), surfactant (s), alcohol (x),
salinity (n), polymer (p) and divalent ion (d) components.
Volume identities
åv p = å cc = 1
p c
Alcohols are partitioned amongst all three pseudo-components, according to one of two
partitioning models. Data for one or two alcohols is required, depending on the number of
alcohol components in the model.
1. Hirasaki model - this is the default alcohol partitioning model. The alcohols are
partitioned between the pseudo-components with partition coefficients that are constant (at
a given temperature).
Partitioning constants relating partitioning of the alcohol components between the three
pseudo components are defined. The left column of data input correspond to the aqueous/
oleic partitioning and the right column corresponds to the aqueous/chemical pseudo-
component partitioning. K are the Alc coefficients and ä are the Alc Temp Dep variables.
C ox C cx
K ox = K cx =
C ax C ax
The partitioning constants vary linearly with temperature.
K ox = K ox ref + d ox (T - Tref ) K cx = K cx ref + d cx (T - Tref )
2. Prouvost model [Refs 15 and 16] - this alternative partitioning model, due to Prouvost,
allows for self-association of alcohols in the oleic pseudo-component and treats the
chemical pseudo-component as an interfacial pseudo-component. The alcohol partition
coefficients are calculated from more fundamental coefficients in each grid block at each
time step, according to the overall composition in the grid block. No provision is made for
these coefficients to be temperature dependent.
For each alcohol, the model requires the input parameters: oil/water partition (ko(1)),
chemical/water partition (ko(2)), oil/chemical partition (kc), equilibrium constant (k) and
partition parameter (a).
k ox = k ox (1) - k ox ( 2 ) =
c w æ C ox ö
ç ÷
ç1+ C x ÷
è o ø
cn C ax Vax
=
where cw is the salinity, and 1 + C ax Vaw + Vax is the volume fraction of alcohol in aqueous
phase.
ko is the ratio of the volume fraction of alcohol in the aqueous pseudo-component to the
volume fraction of monomeric alcohol in the oleic pseudo-component.
These equations, together with the equation for the overall material balance of the alcohol,
can be rearranged to express all quantities in terms of Co resulting in a cubic equation for
Co. Thus the solution can be found analytically.
When a second alcohol is present, similar input parameters are required for the second
alcohol, and analogous equations apply. Simultaneous solution of both sets of equations
then requires an iterative method. A quasi-Newton method is used; the user may set the
convergence criterion (Alcohol threshold), and a limit on the number of iterations, which if
exceeded produces an error message.
Polymer partitioning
When the polymer is active in the phase behaviour, it is partitioned between the aqueous
and chemical pseudo-components according to a partition coefficient Kp, which may vary
linearly with temperature.
C cp
K p = K p ref + d p (T - Tref ) =
C ap
If a polymer is present but not active (i.e. it is simply a mobility control agent), polymer
partitioning may be switched on, in which case the polymer is put in the aqueous pseudo-
component, so that it partitions between phases in proportion to the amount of water in each
phase. Alternatively, the polymer partitioning may be switched off, in which case the
polymer is placed entirely in the aqueous phase at the end of the phase behaviour
calculation, and thus is prevented from partitioning into any middle or upper phase that
forms.
This screen displays the data used to set up the ternary phase diagram.
Press Plot to view a plot of the data. You can choose between a plot of effective salinity
(against salinity) or a full ternary phase diagram.
Pseudo-component concentrations - since only water, oil, gas, surfactant and alcohols
are allowed to be volumetric in surfactant flood simulations, the volumetric concentrations
(volume fractions) of the pseudo-components are given by (see Polymer/Alcohol partitioning
for definitions):
(
v a = c w 1 + C ax =1 + C ax = 2 )
vo = c o
(1 + C
x =1
o +C x=2
o )+ c g
vc = c s (1 + C x =1
c + C cx = 2 )
These volumetric concentrations (which should sum to one) are used as the coordinates in
the ternary diagram calculations.
The particular ternary diagram used is selected according to the effective salinity CSE (see
introduction) and changes from type II(-) at low effective salinity, through type III at
intermediate effective salinity, to type II(+) at high effective salinity. In each case, the
vertices of the diagram represent pure pseudo-components (aqueous, oleic, chemical); the
number of phases present, and their compositions (in terms of pseudo-components), can be
determined from the overall pseudo-component concentrations (vcp) by looking at the
appropriate point (known as the overall composition point) on the diagram.
The effective salinity threshold for each phase behaviour type is entered by the user: a lower
limit (CSEL), an upper limit (CSEU) and an optimal (CSEOP) effective salinity define the
boundaries of the 3-phase region.
Specifically, when CSE < CSEL, the phase environment is said to be type II(-), and a type II
(-) ternary diagram is used. If the overall composition lies above the binodal curve (see
below), then all components are solubilised into a single micro-emulsion phase. If the
overall composition lies below the binodal curve, two phases will be formed, an aqueous
micro-emulsion phase in equilibrium with an excess oil phase.
When CSEL < CSE < CSEU, the phase environment is type III, and a type III diagram is
used. This differs from the type II(-) diagram in that the region below the binodal curve is
split into three parts by the three phase triangle. If the overall composition point lies in this
triangle, three phases are formed whose compositions are given by the vertices of the
triangle: a middle phase micro-emulsion in equilibrium with excess oil and water phases. If
the overall composition point lies in the lobes between the binodal curve and the three
phase triangle, two phases will be formed similar to those in type II(-) (right hand lobe) or
type II(+) (left hand lobe) cases. In the specific case where CSE = CSEOP (where CSEL £
CSEOP £ CSEU). The micro-emulsion phase will contain equal volumes of oleic and
aqueous pseudo-components, i.e. the vertex of the three phase triangle will lie exactly
halfway along the base of the ternary diagram.
When CSE > CSEU, the phase environment is type II(+), and a type II(+) diagram is used.
This is similar to the type II(-) diagram, except that in two phase cases, the phases are an
oleic micro-emulsion and an excess aqueous phase.
In the type III case, the location of the apex of the three phase triangle, referred to as the
middle or invariant point, is assumed to move across the diagram from left to right as the
effective salinity increases from CSEL to CSEU. Thus the shape of the diagram changes
continuously as the effective salinity increases, and there are no discontinuities in phase
composition at CSEL or CSEU.
3-Phase Deselection
If the 3-Phase option is de-selected, then only one effective salinity is defined and the upper,
lower and optimal salinities are set to be equal. This is not generally recommended.
Chem threshold
If the total amount of surfactant present in solution is less than a threshold value (Chem
threshold) entered in the three-phase boundary section of this screen, two phases only are
assumed to be present, one containing only the oleic pseudo-component, the other the
aqueous and chemical pseudo-components.
Binodal Parameters
In each ternary diagram, only a single phase will be present if the overall composition lies
above the binodal curve, which is assumed to be symmetric and to be given by the Hand
equation:
v c2 = Av a vo
The Hand parameter A is related to the "height" of the curve, i.e. the maximum chemical
concentration. At maximum chemical concentration, the hand parameter may be calculated
since vc,max+va+vo=1 and va=vo at the maximum chemical composition.
2 2
æ 1 - v c ,max ö æ 2vc ,max ö
v 2
c ,max = Av a
2
= Açç ÷÷ A = çç ÷
÷
è 2 ø , therefore è 1 - vc ,max ø
It is found by linear interpolation in the effective salinity from values calculated at zero,
optimal, and twice optimal effective salinity (denoted by subscripts j = 0, 1, 2 respectively):
C SE < C SEOP C SE > C SEOP
C SE C SE - C SEOP
A = A0 + ( A1 - A0 ) A = A1 + ( A2 - A1 )
C SEOP C SEOP
where the values Aj are found from the binodal curve heights at the three effective salinities:
2
é 2vc , j max ù
Aj = ê ú
êë1 - vc , j max úû
which in turn are specified as (linear) functions of alcohol concentration, polymer
concentration, temperature, and EACN:
vc , j max = H BNC , j + H BNX 1, j f cx =1 + H BNX 2, j f cx = 2 + H BNP , j f c p + H BNT , j (T - Tref ) + H BNE , j (E - E ref )
The H parameters are entered in the Binodal parameters section of this screen for zero,
optimal and twice optimal salinity, for a base value (HBNC), both alcohols (HBNX1 and
HBNX2), temperature (HBNT), polymer (HBNP) and equivalent alkane number (HBNE).
Three phase triangle - in the type III case, three phases exist if the overall composition
point lies in the three phase triangle below the binodal curve. The compositions of the three
phases are given by the vertices of the triangle, i.e. pure aqueous pseudo-component, pure
oleic pseudo-component, and a middle phase containing all components, generally with a
high chemical concentration but also with significant amounts of both oil and water, implying
high solubilisation parameters (ratios of oil or water to surfactant). The position of the
invariant or middle point (i.e. the apex of the triangle) is assumed to move across the
diagram from left to right as the effective salinity increases from CSEL to CSEU; to be
precise, the value of the expression
1 v a - vo
+
2 2
increases linearly from 0 at CSEL to 1/2 at CSEOP to 1 at CSEU.
Two phase regions (tielines) - when two phases only are present, either in a II(+) or II(-)
phase environment, or if the composition point lies in one of the lobes between the three-
phase triangle and the binodal curve of a type III phase diagram, the compositions of the two
phases are given by the intersections with the binodal curve of the tieline passing through
the overall composition point. The locus of the tieline is determined by the position of the
appropriate plait point. This is the point on the binodal curve on which the pseudo-
component compositions of emulsion and excess phase (aqueous or oleic) are identical - it
is essentially a critical point. Two plait points are entered by the user in terms of a pseudo-oil
concentration - a left hand plait point and a right hand plait point. In the case where the plait
points are in the corners of the ternary diagram (0.0 and 1.0), the excess phases will consist
of entirely the oil or water pseudo-component.
In the type II(-) and type II(+) cases, the following Hand relation, known as the distribution
function, relates the (pseudo-component) compositions of the two phases:
C os C aw = EC as C oo
The Hand parameter E can be determined from the position of the plait point, the point on
the binodal curve to which the tielines converge. At the plait point, both phases have the
same composition (that of the plait point), and this composition lies on the binodal curve, so:
1é
CP a
w 1 - CP o -
o
2 êë
o
- AC P o + (AC ) o 2
Po + 4 ACp o
o (1 - C )ùú
o
Po
E= = û
o o
CP o CP o
o o o
where C P o is the pseudo-oil concentration at the plait point. In type II(-) diagrams, C P o = C PR o .
o o
Similarly, in type II(+) diagrams, C P o = C PL o . The plait points are input in the binodal
parameters section of the screen.
For the two phase lobes of a type III diagram, the distribution function is modified to reflect
the fact that the base of the lobe is a side of the three phase triangle rather than the base of
the ternary diagram, becoming:
C o¢ s C a¢ w = E ¢C a¢ s C o¢ o
where for the type II(+) lobe:
2 2
C mo + C mc
C a¢ o = C ao 2
C mo
C ao C mc
C a¢ s = C as -
C mo
C a¢ w = 1 - C a¢ o - C a¢ s
w
C P¢ a
E¢ = o
C P¢ o
where C mk is the composition of the invariant point. Similar formulae apply for the type II(-)
lobe. The position of the plait points is taken to vary linearly with effective salinity between
the type II(-) and type II(+) values, so the pseudo-oil concentration of the plait point in the II
(+) lobe is given by:
o 1 oé C - C SEL ù
CP o = C PL o ê SE ú
2 ë SEOP - C SEL û
C
for C SE < C SEOP
o 1 oé C - C SEOP ù
CP o = C PL o ê1 + SE ú
2 ë C
for C SE > C SEOP
SEU - C SEOP û
In addition to satisfying the distribution function equation, the compositions of the two
phases must satisfy the binodal curve equation:
2 s2
C as = AC aw C ao and C o = AC o C o
w o
Effective salinity
cw
Where cn/cw is salinity and fc are volume fractions of components in the chemical pseudo-
component. The â coefficients are user supplied and entered in the effective salinities table
for alcohol-1, alcohol-2, temperature, polymer and EACN. Tref is the reference temperature
defined in the control section.
C cx
f cx =
1 + C cx =1 + C cx = 2
K pc p
f c p = C cp = K p C ap =
c + K pcs
w
Also, T is the temperature, and E the EACN of the combined oil and gas present, given by
an average weighted by the number of moles of each.
æ c g ö g æ co ö o
çç g ÷÷ E + çç o ÷÷ E
M ø èM ø
E=è
æ c g ö æ co ö
çç g ÷÷ + çç o ÷÷
èM ø èM ø
where Eg and Eo are the EACNs, and Mo and Mg the molecular weights, of the oil and gas
respectively. These parameters and Eref are entered in the EACN section on this screen.
A ternary diagram generated with the data entered on this screen can be viewed by clicking
the Plot button.
If the water chemistry model is present at the same time as the surfactant model then ASP
(Alkaline Surfactant and Polymer) may be modelled.
The updated (see note below) water chemistry database contains a component Oa (oileic
acid) which may partition between oil (HOaoil) and water (HOawater) according to user
defined partitioning set in the water chemistry section.
The Oa- may react with Na+ ions present to form NaOa (NaOawater), which is a soap and
may have surfactant properties.
The log10 equilibrium constants (K1 and K2) are required for the following two reactions.
When NaOa is formed it is treated as a soap and a user specified fraction of the mass of
this soap is assumed to have to properties of the surfactant defined in this section.
To use this option, the components Na+, Oa-, HOaoil, HOawater and NaOawater must be
present.
The user should also set the gfw of the Oa- component. A default value of 100 g/l is set.
The water chemistry database is installed during the first installation of IPM. However, since
this database is editable it is not updated during subsequent installations to prevent user
modified data being over-written. To use the ASP option, an updated database is required.
1] first close REVEAL, then delete the current database. When REVEAL is restarted, the
current default database will be copied to the location of the old (now deleted) database; or
2] alternatively, an option has been added to the water chemistry preferences screen to
automatically update the database file from REVEAL resources.
REVEAL should not be open when the water chemistry database is being edited.
2.3.9.4 Ternary diagram
See also: Introduction.
This screen can be used to view the data on the phase behaviour screen graphically.
Properties such as alcohol and polymer concentration, as well as component concentrations
of water and oil (for example) can be varied to see how the various phases develop with
these properties. The screen itself is divided into several sections:
Input parameters
Component Concentrations - these sliders can be used to set the relative concentrations
of oil, water, and surfactant to determine in turn the pseudo-component concentrations. The
values are normalised automatically - if you want to fix a value while changing another,
check the 'fix' box next to the slider.
Note that gas is not included in these basic calculations. The reason for this is purely to
simplify the input parameters: if gas were included, a PVT calculation would need to be
carried out at P,T, and the resulting gas concentration would depend on factors such as
miscibility and whether or not the system were repressurised. In the simulation, gas forms
part of the oleic pseudo-component as explained in the introduction to this section.
The absence of gas means that the binodal curve and effective salinity will not depend on
Variable Parameters - the following input parameters can be varied: alcohol concentration,
polymer concentration, salinity, and temperature. When the sliders are adjusted, the phase
diagram will change accordingly.
Calculation Results
The Hand parameter of the binodal curve and effective salinity for the input set are output. A
description of the system at the overall concentration point is also given (e.g. 'two phase
aqueous and oleic emulsion' for a type II(+) system).
This gives the pseudo-component concentrations of the resulting phases. In II(-) and II(+)
systems, the phase concentrations are given by the intersections of the tieline with the
binodal curve, as plotted. For the type III case, the concentrations are simply the vertices of
the three phase triangle.
Interfacial tensions
Interfacial tensions for the emulsion/aqueous interface and the emulsion/oleic interface are
given, where applicable, if this input data has yet been entered.
Plot Phase Composition - this presents a diagram with the relative phase saturations for
the system at the overall composition point.
Zoom - the chemical pseudo-component concentrations along the binodal curve are often
quite small and this makes the detail of the plot quite difficult to see. Click on the 'zoom'
arrows to effectively increase the chemical concentrations (note that this will distort the plot
slightly as the concentrations still have to be normalised).
2.3.9.5 Surfactant interfacial tension
The interfacial tension between aqueous, micro-emulsion and oleic phase are modified by
the surfactant model, resulting in capillary desaturation.
Once the phase compositions have been calculated, the interfacial tension is calculated as a
function of solubilisation parameters (X). For an interface between water and micro-
emulsion (type II(+) environment or the II(+) lobe of a type III environment) the water/micro-
emulsion interfacial tension (swm) is calculated. Similarly for an interface between micro-
emulsion and oil (type II(-) or the II(-) lobe of a type III environment) the oil/micro-emulsion
interfacial tension (som) is calculated.
2- and 2+ Parameters
Water/micro-emulsion Oil/micro-emulsion
G11 G21
log 10 (s wm ) = G12 + log 10 (s om ) = G22 +
1 + G13 X w 1 + G23 X o
w o
C
c C c
Xw = c
Xo = c
C
c C c
In both cases, if the solubilisation parameter (Xw or Xo) is below a threshold Xmin (minimum
solubilisation parameter, default = 1), a linear interpolation between the oil/water value (sow,
entered in the physical properties section) and the values given by the formulae above is
used.
Xw X
log 10 (s wm ) = (1 - ) log 10 (s ow ) + w log 10 (s wm )
X min X min if X w < X min
Xo X
log 10 (s om ) = (1 - ) log 10 (s ow ) + o log 10 (s om )
X min X min if X o < X min
Additionally, the interfacial tension is forced to approach zero at the plait point by multiplying
the calculated value of ó by
1 - exp( -D )
1 - exp( - 2 ) (
D2 = C pw - C qw ) + (C
2 o
p - C qo ) + (C
2 s
p - C qs )
2
where p and q denote the two phases between which the interfacial tension is being
calculated.
In the three-phase triangle of the type III phase diagram only, the interfacial tension may be
made a function of overall surfactant concentration at concentrations below a specified
threshold (e), where the slope (S) is user defined.
æ cs ö
ç w
÷
log 10 (s wm ) = log 10 (s wm ) + S çç1 - c ÷÷
e
ç ÷
è ø
æ cs ö
ç w
÷
log 10 (s om ) = log 10 (s om ) + S ç1 - c ÷
ç e ÷
ç ÷
è ø
Viscositymodel
If the surfactant model is being used, then the aqueous, oleic and micro-emulsion phase
viscosities are calculated using one of two models, namely Pope and Barker (a variant of the
Barker model is also available). See the mobility section for more information on viscosity
models for polymer (thickening, shear thinning). At this stage, of a calculation, the aqueous,
oleic and gaseous phase viscosities have been calculated, accounting for all additives
except surfactant.
Each of the three phases (p), aqueous, oleic and micro-emulsion are considered in turn.
Within each phase, the volumetric component concentrations of water (Cwp), oil (Cop) and
surfactant (Csp) are known.
In addition to the model specific parameters required the user enters a thermal exponent
factor Alpha6 (bmT). Note that this factor is used with absolute temperatures (R).
Model Parameters
Pope model - the user is required to enter the parameters Alpha1 to Alpha5 (bm1 to bm5).
The volumetric concentration of hydrocarbon components (Chp) comprising oil+dissolved
gas is calculated.
æ æ1 1 öö
m p = C ps b m1 exp ç b mT ç -
ç çT T
(
÷ ÷ exp b m 2 C pw + b m 3 C po +
÷÷
)
è è ref øø
w
( ( o
C p m w exp b m 4 C p + C p +s
))
æ (Twax - T ) ö÷
( ( ))
C ph m o exp b m 5 C pw + C ps exp çç b wax
1 + Twax - T ÷ø
è
mw and mo are the water and oil viscosities calculated without surfactant being present.
When the micro-emulsion phase is being considered, mo is modified to reflect any miscible
free gas within this phase. Note that no free gas will be present within the oleic phase. The
term 'free gas' is used here to mean excess gas (GOR-Rs) beyond that associated with the
oil, that may be present within the micro-emulsion phase.
æ Rs ö
m 1 1 -4 åc g ç1 -
è GOR ø
÷
m o = o æç gm o 4 + (1 - g ) m g 4 ö÷ g=
mg è
where ø å cg
The above sum is over all gaseous components (usually only one).
Barker model - the user is required to enter the parameters Alpha1 to Alpha5 (bm1 to bm5
). These are different from parameters entered for the Pope model.
The micro-emulsion phase viscosity depends on the phase present (i.e. region of ternary
diagram). The phases present are controlled in REVEAL by the effective salinity (cse),
which has values within a range extending from a minimum (cse,min) to a maximum (cse,
max), with an optimal value (cse,opt) between the minimum and maximum values.
Any component apart from water, oil and gas may be adsorbed. Adsorbed components are
not transported with the fluid flow or subject to diffusion. Adsorbed minerals take no part in
water chemistry equilibrations. Adsorbed surfactant takes no part in desaturation and micro-
emulsion phase formation. Adsorbed components may reduce the permeability (e.g.
polymer, gel or water chemistry minerals). Adsorbed wetting agent is used to model
wettability desaturation.
Adsorption data may be added for any or all rock types, with different data possible for
different rock types. Select Add to add a new entry to the table, select an entry in the table
to modify the adsorption data, or Delete to delete all of the adsorption data for the current
rock type.
Fluid list
This lists the components in the model that may be adsorbed. Select a component and use
the Add or Delete buttons to add or delete adsorption data for that component. Some
components must have adsorption data (e.g. surfactant, polymer, H+) if they are present,
these components will have a red cross beside them: use the Add button to add adsorption
data (which may be null if no adsorption is required).
Adsorption isotherm
Four adsorption models are available, Langmuir, Linear, Stripping and Thermal Active. Use
the Plot button to view the isotherm.
Permeability reduction
This is available for all adsorbed components apart from water chemistry minerals, which
have their own permeability reduction model. The permeability reduction (R0) is a function
of the adsorbed component concentration (Ca) and the input permeability reduction
coefficient (RF), which should be greater than one to reduce the permeability, i.e. the
permeability is divided by R0.
Ca
R 0 = 1 + ( R F - 1)
Ca max
The total permeability reduction is the sum of the permeability reductions of all adsorbing
components.
The permeability reduction may be applied to each phase independently, with different rates
of permeability reduction applied to each phase.
Adsorption initialisation
The initial adsorbed concentration is entered in units of mass per unit volume, where the
volume is the total rock volume (including pore volume). This data is optional, with a default
of zero. Data may be entered as a constant for each rock type, as a set of grid block ranges
each with a constant value, or as a datablock with an entry for each grid block. For more
information on using the range and array options see the reservoir section.
For the Polymer model, cation exchange with the rock is available. Both the salinity and
divalent cation components must be present.
To use this option, select the Ion Exchange button, then select the divalent cation
component. When this model is used, there is no additional adsorption data required for the
salinity component.
The ion exchange model assumes that there are a fixed number of cation adsorption sites
on the rock (cation exchange capacity QV) that may hold monovalent or divalent cations.
Molecular weights are required to calculate equivalent masses (meq) of the various ionic
species.
Anion
Nomenclature
Cwx Mass of species x in water per unit total block volume (lb/ft3)
QV Ion exchange capacity of rock per unit pore volume (meq/ml)
b Conversion factor from lb/ft3 to g/ml (0.01601847)
wx Gram formula weight of species x (g/mole)
Xwx Aqueous concentration of species x per unit aqueous phase volume (meq/ml)
K Ion exchange equilibrium parameter
f Porosity
Sw Water saturation (limited to min of 10-6)
Subscripts
d Divalent cations
m Monovalent cations
s Salinity (anions)
Main equations
Constitutive equations
Initialisation
Initially, Cs and Cwd are assumed fixed from the initialization data entered, and an
equilibrium value for adsorbed cation (Cad) is calculated to be consistent with this data.
Therefore initial adsorbed cation is not required as input.
Solution
The four equations are solved by Newton-Raphson for each block at each time step for the
unknowns Cad, Cwd, Cam and Cwm. Convergence is to within a rms mass concentration
The adsorbed cation, aqueous cation concentration and salinity (anion) concentration may
be selected for 3D visualization.
The principal effect is that as the water is diluted, the total cation concentration reduces. To
maintain the rock ion capacity and rock-water equilibrium, the divalent cations ‘prefer’ to be
bound on the rock due to their higher charge capacity.
Plot - the plot may be used to check the desired cation response.
2.3.10.2Adsorption isotherms
Four isotherm models are included, describing the adsorption profile as a function of
concentration, temperature, permeability and salinity. Irreversible, reversible or partially
reversible models are available, and the adsorption may also be rate dependent.
All components have a total (C) and adsorbed (Ca) concentration, and have dimension of
mass/volume. Aqueous phase concentrations (c) are defined as mass fractions (kg/kg), and
are defined by the ratio of a given component concentration divided by the concentration of
water (c=C/Cw).
The partitioning of the total component concentration (C) between that adsorbed (Ca) and
the concentration remaining within the aqueous phase after adsorption (c*) is defined by the
maximum adsorbed concentration (Camax) and the isotherm parameter (b), which describes
the shape of the isotherm.
Note that the entered maximum adsorbed concentrations are mass per unit rock volume, not
including pore volume.
Langmuir isotherm
The relation between adsorbed and aqueous component concentrations is characterised by
the following equations, where aref is defined below.
a ref c * C - Ca
Ca = c* =
1 + bc * Cw , since the total concentration of an adsorbing component (C)
C = Ca + c * C w
is:
The maximum adsorbed concentration occurs when the aqueous phase concentration (c*) is
large (i.e. Camax=aref/b). If b is small, then Ca rises slowly, and if b is large then Ca rises
quickly.
The parameter aref has units of mass/volume, while parameter b has effective units of
(mass fraction)-1. These units are not used in the interface since this parameter is
effectively dimensionless. Note that when the aqueous phase concentration (c*) is equal to
1/b, then the adsorbed concentration (Ca) will be half of the maximum adsorption limit (Ca
max). Hence a value of b=1000, will result in 50% of the maximum adsorption level with an
aqueous concentration of c* = 1/b = 10-3 kg/kg (or 103 ppm).
aref can be thought of a measure of 'adsorbability'. For example, with the linear isotherm, a
ref is the slope of the adsorption isotherm, and for the Langmuir isotherm, aref is the slope
of the isotherm at zero concentration.
¶Ca
a ref =
¶c * at c* = 0
In addition to Camax and b, the user enters the temperature (A[T]), permeability (A[k]) and
salinity (A[s]) coefficients used to modify the reference parameter (aref).
kx 2 + ky 2
a = [a ref + A[ s ] c s + A[T ] (T - Tref )]k - A[ k ] k=
a ref = bCa max 2
The effective salinity (cS, kg/kg) is calculated from the salts present, while the reference
temperature (Tref) is input by the user in the control section. The mean permeability (k) is
the mean horizontal permeability in units of Darcy.
Note that changes to aref will both affect the adsorbability (a) and consequently the
maximum adsorbed (Camax), retaining the relationship with parameter b such that Camax =
a/b.
Linear isotherm
The linear isotherm is identical to the Langmuir isotherm, with the following modification.
If c* <= 1/b then Ca = a.c*, where c* = C/(Cw + a), since Ca + c*Cw = C (total mass
concentration)
If c* > 1/b then Ca = a/b = Camax
Strippingisotherm
The stripping isotherm adsorbs all available component to its maximum value, hence the
isotherm parameter (b) is not required for this model.
Ca = max( C , Ca max )
pH Dependence
For the surfactant component if water chemistry is present, the adsorption of surfactant may
depend on pH.
The maximum adsorption is scaled linearly with pH between the lower limit (acidic full
adsorption defined by the entered maximum limit) and the upper limit (alkali zero
adsorption).
Reversibility
Adsorption is always completely reversible for changes in salinity.
identified.
If the concentration falls before point A has been reached, then the adsorption does not
reverse (irreversible). If the concentration starts to fall between point A and point B, then
desorption occurs along a straight line from the maximum point reached on the isotherm
curve to point C. If the concentration begins to increase again, adsorption moves back up
the straight line until the isotherm is reached, and then continues moving up the isotherm. If
the concentration starts to fall after point B, then desorption proceeds down the isotherm
until point B is reached and then down the straight line connecting point B to point C.
C
A
Adsorption rate
Adsorption may be assumed to take place instantly, or the time taken for adsorption to occur
may be modeled using an input rate parameter (A[rate]).
where Ca is the newly calculated instantaneous adsorbed concentration, and Can and
Can+1 are previous and current time step values.
2.3.10.3Permeability reduction
For adsorbed water chemistry minerals, both porosity (Df) and permeability reduction (R0)
are functions of the adsorbed concentration, rock density (rr), original porosity (fo) and user
defined permeability reduction coefficient (PN).
PN
Ca 0 æ Df ö
Df = R = çç1 - ÷
rr è f ÷ø
Permeability reduction coefficients may be defined for each rock type or for all rock types.
The total permeability reduction is the sum of the permeability reductions of all adsorbing
components.
The porosity reduction is used as an equivalent inaccessible pore volume (ipv = -Df/f),
which increases the effective volumetric concentration of all trace components (i.e. water
chemistry ions).
Select Available Tracer - select the available tracer (all three phase components are
required)
The tracer components are added in the control section. for example Water_Tracer_1,
The oil/water partitioning coefficient is defined as the mass concentration (ppm) in oil phase
divided by the mass concentration (ppm) in water phase.
The gas/oil partitioning coefficient is defined as the mass concentration (ppm) in gas phase
divided by the mass concentration (ppm) in oil phase.
Pressure and temperature dependence for the partition coefficients may be enabled by
setting a reference pressure and temperature and non-zero dependences.
The reference partition coefficients are then linearly modified according to the current
pressure and temperature.
All the components that will be present within the water chemistry calculation require to be
selected from the water chemistry database.
Outputregion
This defines region(s) of the grid that will have the results of the water chemistry
equilibration output to the water chemistry results file. This file may be viewed by selecting
Results|Debug|Debug water chemistry from the main REVEAL window. It is generally
recommended not to generate too much of this data since it may result in a very large file.
This data should only be generated for specific debugging purposes.
Calculation/output frequencies
The water chemistry equilibration may be performed every time step or with a defined
frequency in timesteps. If the output frequency is left blank then no water chemistry data will
be generated, preventing potentially large volumes of unnecessary data being generated.
be included, which will slow the calculation for large models where there may be significant
regions of constant composition. It is recommended that this option should be set to zero
for smaller souring models with CO2 or H2S partitioning.
Electrical neutralisation
One species pair (anion and cation) is required to be internally adjustable to ensure precise
electrical neutrality. This is usually chosen to be Cl- and H+. Electrical neutrality of the
mixture of ionic species (excluding free electrons, e-) should be ensured for both the
reservoir and injected waters. This may be checked using the input wizard calculator in the
initialisation and injection sections.
The H+ ion is chosen, rather than the Na+ ion (pre IPM7) since this improves the modeling
of strong acid/alkali behaviour. The model initially ensures that electrical neutrality of
reservoir and injection waters honoring the user input H+ (pH), using the Na+ and Cl- ion
pair.
Other
New partition coefficient - if this option is set, then the water/oil partition coefficients for
CO2 and H2S will be initialised using the initial components present, rather than using the
value entered in the mobility section. See the mobility section for more information on the
partitioning model. This will only affect water chemistry models where partitioning can take
place (i.e. the components CO2oil/CO2gas or H2Soil/H2Sgas are present).
Simplified equilibration - this flag is only available if there are no mineral precipitate
components within the model. If this option is selected, then the chemical equilibrium
program is not used, and therefore aqueous speciation of the tracked master species does
not take place (i.e. the ionic master species do not associate to form aqueous dissolved
species). However, H2S and CO2 partitioning and the H2S souring models are still
available. These models calculate the aqueous dissolved CO2 and H2S using the database
(for equilibrium constants and activity coefficients), assuming that all of the ionic master
species (CO3-2 and HS-) are in ionic form (fully dissociated) and available to form aqueous
dissolved CO2 and H2S. This approximation results in large cpu savings.
General comments
H+ (pH), e- (pe) are required species and should be included for all water chemistry models.
Solid phase mineral concentrations are similarly input and tracked within the aqueous
phase.
Redox reactions are possible, altering the electron activity. Note that the redox reactions
may have significant effect on the solution pH and pe.
The reaction species and thermodynamic reactions are defined within an editable database.
A default database is included with the REVEAL installation, and is written to the current
data directory with the name 'phreeqc.dat'. The current data directory is set using the menu
option File|Data Directory. To use a different chemical database, simply replace the '
phreeqc.dat' file in the current data directory, ensuring that the replacement database has
the correct format for version 2.4.2 of PHREEQC.
Partitioning - the model also returns the molality of dissolved CO2 and H2S. The CO2 and
H2S may be partitioned between the aqueous and oil/gas phases.
The species CO2water and H2Swater are supplied only for reporting purposes and are
optional.
Looking at the sample snapshot above, obviously the reservoir and injection waters should
be different compositions. Use the Control options to set the injection water.
Use the Mix reservoir/injection button to mix the reservoir and injection waters to give the
mixture concentration.
Use the Plot button to plot the reaction component concentrations over a range of mixing
ratios.
An additional water chemistry calculator is available for calculations using well results after a
calculation has been completed. This is started by selecting Input|Water Chemistry
Produced Fluid Calculation from the main menu. This calculator has OpenServer
capability.
Note that the H+ and e- concentrations are related to pH and pe with the following relations.
[ H + ] ppm = 10 (3- pH ) - ( -3- pe )
and [e ] ppm = 10
Seawater - a typical seawater composition is given below. Both sulphur valence states are
included; this is a general requirement and all ions with multiple valence states should be
included. Additional reservoir species (e.g. Ba+2) and possible minerals (e.g. Barite) should
be included in the model.
Active species not present within the model- any species, aqueous or mineral, predicted
by the calculator will be displayed in red below the components present within the model.
Any aqueous species (usually a second valence state such as HS- if SO4-2 is present)
must be added to the model, since any concentration of this species will be lost from
the system if it is predicted.
Any mineral species predicted but not included within the model will have not be lost
from the system, but it will not remove aqueous ions as it precipitates.
Therefore it is strongly recommended that all possible valence states of ions are
included, and all minerals that are predicted to precipitate using the water chemistry
calculator are included.
Basic assumptions
The water chemistry master species are defined as the total mass fraction of each valence
state in its usual form. For example for the two valence states of sulphur: S(+6) has the
mass fraction (kg SO4-2 per kg water) and S(-2) has the mass fraction (kg HS- per kg
water).
The gram formula weight (gfw) of electrons is assumed to be 10-6 g/mole. Other gfws are
obtained from a database.
The water chemistry species are non-volumetric in that they take no direct part in the flow
equations; in other word they are merely tracers.
Their only interaction with the flow equations is explicitly through permeability reduction
arising from adsorption.
The water chemistry species are assumed to mix fully within each simulation gridblock.
The equilibration of the master species includes a large database of possible reactions
resulting in ionic bonded molecules, free ionic master species and solid precipitates. The
database includes thermal and ionic strength dependence on activity coefficients for each
possible state and temperature dependent equilibrium constants. Redox reactions are
implicit and therefore all valence states of a master species should be included.
Overview of solver
The flow equations are solved implicitly for the pressure, temperature and phase
saturations. The dependent parameters (PVT, relative permeability etc.) are updated and
the Darcy velocity field calculated. Each master species concentration is then updated
using the calculated Darcy velocity field. A 1-point upstream weighting implicit solver is used
that allows timesteps greater than the Courant limit.
Numerical dispersion associated with such implicit schemes will be present and therefore
sensitivity to grid geometry and timesteps will be present.
Once the updated component concentrations have been calculated, the water chemistry
module is entered.
During the initialisation every block is water chemistry equilibrated; on subsequent timesteps
only blocks satisfying the following conditions are re-equilibrated.
a) Maximum relative change in concentration exceeds user specified 'min relative change for
inclusion': (1-C(n+1)/C(n))/dt > user limit. C(n+1) is the concentration of a given species at
time step (n+1), and C(n) at the previous time step. This relative change is calculated for
each species and the maximum used. Any block exceeding the minimum concentration
change is included in the water chemistry calculation. The default user limit is 10-3.
b) Total water content in block is greater than 10-8 lb/ft3. Any block not meeting this
criterion is not included in the calculation, regardless of other criteria.
c) Block is completed to a well. All well completed blocks are included.
d) Souring model is present and the block temperature is within that specified for SRB
growth.
e) Souring model is present and concentration of CO2 or H2S in oil or gas phase is greater
than 10-8 lb/ft3.
The molality (kg/l) of each aqueous master species is calculated from its concentration in
water (kg/kg) and gfw. Additionally the pH and pe are calculated.
These data are passed to the water chemistry calculator which returns the resulting master
species and solid phase (precipitated mineral) molalities, which are used to update the
REVEAL component concentrations. Mineral concentrations will then be subject to
adsorption isotherms, either removing or adding mineral to the aqueous phase.
Souring
Two souring models are available in REVEAL. See the control section to set these model
options.
The first is a legacy model and is integrated into the water chemistry module and is based
on a bacterial sulphate reduction rate.
The second model is independent of the water chemistry module and is based on the
concept of bacterial activity. This model is recommended since it handles nutrient
availability better, is more implicit, can use longer timesteps and is therefore faster.
If the legacy souring model is present, then the concentration of SRB (sulphate reducing
bacteria) is calculated. If the temperature is within their growth range then their
concentration increases, otherwise it is set to zero. The growth rate is exponential and
parameterised by a half-life (dt*).
The initial SRB concentration is set to the minimum defined by the user, and a maximum
concentration is also imposed by a value entered by the user.
If the nutrient component is present within the model, then the maximum growth is limited to
the nutrient available.
CSRB(n+1) - CSRB(n) < CNUT/R, where R is the nutrient/SRB mass ratio entered by the
user.
Once the SRB concentration is calculated, the sulphate reduction is calculated as a linear
fraction of the maximum reduction rate (X) entered by the user. The maximum reduction
rate is in units of molality/day. Therefore the change in sulphate and sulphide molality is
calculated as dt.X.CSRB/CSRBmax .
The molality of SO4-2 and HS- are updated and in order that the equilibrium calculation
preserves their relative concentrations, the equilibrium constant for the sulphate to sulphide
reaction is modified, using the current activity coefficients for all species in the equation
including H+ and e-.
If souring is present, then the sulphate/sulphide equilibrium constant is recalculated for each
included block based on the prevailing sulphate/sulphide concentrations, thus preserving
their relative concentrations. This is essentially ensuring that the souring process is
irreversible and non-equilibrium conditions are preserved.
The simplified souring model is possible when no mineral species are present, since in this
case the total master species concentrations are not altered by the water chemistry
equilibration and only the sulphate-sulphide equation is calculated. This approximation can
be used to speed scooping calculations.
Their activity is the rate at which the nutrient is used by the SRB, and depends on the
bacteria type, concentration of SRB, temperature, pressure, salinity and nitrate
concentration.
The fraction of nutrient used for growth is called the nutritional efficiency, the remainder is
used for respiration (reduction of sulphate to sulphide).
The nutrient may come from a finite source of VFA (volatile fatty acids) in equilibrium
between the aqueous and oleic phase. Once the VFA is exhausted, an unlimited nutrient
source may be obtained directly from the oil HC (hydrocarbon). The HC activity is much
lower than the VFA activity.
The following outlines the main variables and equations solved using this model for each
gridblock at each timestep.
Mw = mass of water
Mo = mass of oil
F = Fw . Mw + Fo . Mo = Fw (Mw + Mo / Xf)
Mw . dSRB/dt = - Xg . E . dF/dt
Mw . dH2S/dt = - Xr . (1 - E) . dF/dt
Partitioning
The partitioning model treats the hydrocarbon partitioned component (CO2, H2S or N2) as
an ideal gas in equilibrium with the aqueous phase. The partitioned component activity is
equal to its partial pressure and an equilibrium constant is derived from user specified
partitioning coefficients.
The user specified partitioning parameters are pressure dependent (described in partitioning
section).
The total volume of hydrocarbon is calculated per litre water. This is then treated as the
effective ideal gas volume in equilibrium with the water phase.
The activity (partial pressure) of the partitioned component in the hydrocarbon phases is
calculated from their total mass in the hydrocarbon phases, converted to moles per unit
volume, and finally to partial pressure using the ideal gas equation.
PV = nRT
The activity coefficient for the partitioned component in the aqueous phase is obtained from
the database and is dependent on the concentration of CO2, H2S or N2 and not their
respective master species (CO3-3, HS- or NO3-). The concentration of aqueous CO2, H2S
or N2 may be reported; these are purely derived quantities and are only present for reporting
purposes.
including scavenging minerals that will remove H2S in the water chemistry equilibrium
calculation.
Note that the partitioned CO2, H2S or N2 are only treated as tracer components and do not
affect the hydrocarbon PVT.
Scale inhibitor
A scale inhibitor model is present, which modifies the solubility index (SI) used for the
equilibrium between aqueous and solid phase minerals. This model increases the solubility
of minerals, modeling the reduced nucleation action of an inhibitor.
The SI is increased from zero to a maximum user specified value (SI*) as a linear function of
the inhibitor concentration (Ci) up to a maximum inhibitor concentration (Ci*).
SI = SI*.Ci/Ci*
The saturation index effectively increases the solubility of the mineral exponentially; i.e. an
SI of 1.0 makes the mineral 10 times more soluble and an SI of 2 makes the mineral 100
times more soluble.
2.3.11.2CO2, H2S & N2 partitioning
This screen is present if the water chemistry model is active and partitioning of CO2, H2S or
N2 between aqueous and hydrocarbon phases is possible. For CO2 partitioning, the
components CO2oil and CO2gas must be included in the model, and for H2S partitioning
H2Soil and H2Sgas must be included, and for N2 partitioning N2oil and N2gas must be
included (see control section for component selection).
This screen may not be present if the fluid model is compositional, in which case the
equilibrium is calculated directly from a database.
CO2 partitioning
Partition coefficients
Partition coefficients (PCwo and PCog) are defined for CO2 partitioning between aqueous
and oleic phases, and between oleic and gas phases. The activity of CO2 in water is
approximately equal to the molality (mole/kg water) of dissolved CO2. The partitioning is
achieved by considering the CO2 dissolved in the hydrocarbon phases to be represented by
an ideal gas in equilibrium with the aqueous phase. The ideal gas CO2 partial pressure is
related to the mass concentration of CO2 within the hydrocarbon phase.
The partition coefficients are pressure dependant and take different forms depending on
whether the pressure is above or below the partition reference pressure.
For CO2 partitioning only, the oil phase partial pressure (Mole/litre of CO2 in oil) is replaced
with fugacity.
If the User CO2 O-W partitioning option is deselected, then a database equilibrium will be
used.
Initial partition coefficients - if the New Partition Coefficient flag is checked in the water
chemistry section (not available for bacterial activity souring model), then the water/oil
partition coefficients (Part Coefficient for both CO2, H2S and N2) are calculated from the
initial conditions (e.g. initial value of CO2oil or H2Soil and initial equilibrated CO2 or H2S in
water).
Separator partitioning
Reported separator concentrations are calculated using two partition coefficients that reflect
the effective partitioning which will be process dependent.
The Oil/Water partition coefficient defines the ratio (mass fraction of CO2 in separator oil)/
(mass fraction of CO2 in separator water). Mass fraction is lb/lb.
The Gas/Oil partition coefficient defines the ratio (volume fraction CO2 in separator gas)/
(mass fraction of CO2 in separator oil). Volume fraction is scf/scf.
H2S partitioning
This model has the same data input and form as the CO2 partitioning model above.
This model has the same data input and form as the CO2 partitioning model above, but
there is no gas or separator partitioning.
The souring model requires the components SO4-2, HS- and nutrient to be present. In
addition, the H2S partitioning components H2Soil and H2Sgas should usually be present
within a souring model. HS- may also be an adsorbed component, modeling its retardation.
The simplified equilibrium model may be used for souring calculations that do not contain
precipitating minerals.
The basis of the souring model is that SO4-2 reduces to HS- under the catalytic presence of
sulphate reducing bacteria (SRB).
The growth of SRB is controlled by the presence of the nutrient component within a suitable
temperature range. As the nutrient is used up, the rate of SRB growth reduces, but the SRB
remain present and available to reduce SO4-2 ions if they are present i.e. it is assumed that
the SRB may metabolise at a constant concentration with no nutrient present due to
remineralisation and resting cell metabolism. The SRB are assumed to not flow with the
injected water, but remain and grow within grid blocks. The net result is that as the SRB
grow, they are available to reduce SO4-2 ions within a cooled region near an injector, and
the reduced HS- ions may then form aqueous and hydrocarbon phase (assuming
partitioning) concentrations of dissolved H2S, which may then be transported in the aqueous
and hydrocarbon phases.
Temperature dependence
Concentration dependence
SRB growth rate - half life for SRB concentration to double under favourable conditions
(temperature within set bounds and nutrient available).
Nutrient/SRB growth mass ratio - the mass ratio of nutrient to SRB, required to reduce the
nutrient concentration as the SRB concentration increases (SRB growth). For each kg of
SRB growth, this ratio of nutrient mass is required.
Nutritional efficiency - the fraction of available nutrient that may be used for growth. The
remaining fraction is available for anaerobic respiration which reduces sulphate to sulphide.
Nutrient/sulphate reduction mass ratio - the mass of nutrient consumed for each unit
mass of sulphate reduced, modelling the nutrient requirements for respiration.
The maximum reduction rate may be altered using a pressure dependent multiplier. The
pressures should be monotonically increasing.
The maximum reduction rate may be altered using a T.D.S. dependent multiplier. The total
dissolved solids should be monotonically increasing.
Nutrient equilibrium
This is optional and relates the rate and equilibrium concentration at which nutrient in the
aqueous phase is generated from implied equilibrium with the oleic phase. This may be
used it the injection water is assumed to have zero nutrient and the nutrient requirements
are obtained by mixing and generation within the reservoir.
2.3.11.4H2S souring (Activity)
The activity based H2S souring model is available with or without the water chemistry option
selected; it is selected in the control section.
The souring model enables to take into account the reduction of SO42- to HS- under the
catalytic presence of sulphate reduction bacterias (SRB).
Two souring models are available in REVEAL:
- The “OLD” legacy souring model can only be used in association with the water chemistry
model and is based on the presence in the reservoir of a nutrient that will control both
growth (i.e. increase of the amount of SRBs present in the reservoir) and respiration (i.e.
catalytic action of the SRBs on the sulphate reduction reaction).
- The “NEW” activity souring model can be used with or without the water chemistry model
and has been proven more reliable than the old model. The way this model works will be
described in more details below.
SRB presence and activity is mainly controlled by temperature: a temperature range within
which the SRBs are active has to be specified.
If some reservoir sections are located within this SRB activity temperature range, then the
SRB growth and respiration will be controlled by the presence of a carbon source, Volatile
Fatty Acids (VFAs), within the reservoir.
These VFAs, that include chemical species such as acetate, propryonate, butyrate for
instance are coming from the degradation of oil through bacterial activity. They represent a
limited nutrient source for the SRBs and are partitioned between oil and water.
If VFAs are exhausted in the reservoir, then an HC nutrient source can be used: it is an
unlimited nutrient source but has a low generation rate.
The carbon source, should it be VFA or HC based, will be used according to the SRB
concentration and will be a function of temperature, pressure, salinity and nitrate
concentration.
The nutritional efficiency will determine how much of the total carbon source consumed is
used for growth and how much is used for respiration.
The SRB are assumed to not flow with the injected water: they will remain within the grid
blocks.
The net result is that as the SRB grow, they are available for instance to reduce SO42- ions
within a cooled region near an injector, and the reduced HS- ions may then form aqueous
and hydrocarbon phase (assuming partitioning) concentrations of dissolved H2S, which may
then be transported in the aqueous and hydrocarbon phases.
Use of the souring model will then enable to quantify the amounts of H2S that are formed,
enabling to understand whether they can create a problem at the processing plant for
instance and when H2S will start breaking through at the producer wells.
Temperature dependence
Concentration dependence
H2S/Carbon source mass ratio - the mass ratio of H2S to carbon source. This is the kg of
H2S generated for each kg of carbon source used during metabolism.
SRB/Carbon source mass ratio - the mass ratio of SRB to carbon source. This is the kg of
H2S generated for each kg of carbon source used during growth.
Nutritional efficiency - the fraction of available nutrient that may be used for growth. The
remaining fraction is available for anaerobic respiration which reduces sulphate to sulphide.
The SRB activity rate (rate at which carbon source is consumed for growth and respiration)
at maximum SRB concentration as a function of temperature is entered in a table. The
temperatures should be monotonically increasing. The SRB activity rate at reduced SRB
concentrations is a linear interpolation between zero and the maximum value entered here
as a function of SRB concentration between its minimum and maximum values.
The maximum activity rate may be altered using a pressure dependent multiplier. The
pressures should be monotonically increasing.
The maximum activity rate may be altered using a T.D.S. dependent multiplier. The total
dissolved solids should be monotonically increasing.
The maximum activity rate may be altered using a nitrate dependent multiplier. The nitrate
concentration should be monotonically increasing.
Carbon sources
The VFA oil/water partitioning coefficient. The initial VFA content in the reservoir is input in
the initialisation section.
A fixed (not temperature dependent) hydrocarbon activity rate is entered for use when all of
the VFA is exhausted. This value may be zero.
2.3.11.5Scale inhibition
The scale inhibition model is only available if the water chemistry option was selected in the
control section, and there are precipitating minerals and the component Scale Inhibitor is
present (see component selection).
Scale inhibition
The scale inhibition model increases the solubility of minerals as a function of inhibitor
concentration within the aqueous phase. The scale inhibitor may be adsorbed. Scale
inhibition is based on the assumption that the scale inhibitor acts to provide nucleation
centres for the precipitating mineral that prevents large particulate precipitation.
The solubility of the minerals is controlled by a saturation index (SI). The default value is
zero, and as the SI increases the soluble concentration of the mineral rises logarithmically,
so that an SI of 1.0 allows the soluble concentration of the mineral to be ten times larger
than the default value (defined by the database), before precipitation occurs.
Scale inhibition can be applied to none, any or all precipitating minerals, but they all use the
same scale inhibitor concentration to calculate the reduced solubility.
Maximum saturation index - the maximum mineral saturation index (SI). The SI used will
rise linearly from zero to the maximum SI entered as the scale inhibitor concentration varies
between zero and the maximum effective value.
2.3.12 Solids section
2.3.12.1Asphaltene
Asphaltenes are modelled in REVEAL as a solubility limited component in the oleic phase,
that once precipitated may become trapped within the pore structure of the rock reducing
permeability.
The asphaltene input data can be accessed once the solids option and asphaltene
component has been selected in the control section.
The initial dissolved asphaltene concentration within the oil phase should be entered in the
initialisation section.
Flocculation properties
Flocculated density - this density is used to relate the mass and volume of trapped
asphaltene for permeability reduction.
Solubility
Permeability reduction and rock grain structure properties are defined for each rock type.
Trapped asphaltene - the insoluble asphaltene will flocculate with a distribution of particle
sizes. Flocculated asphaltene with a diameter greater than the trapping diameter (Dt) will be
trapped and contribute to permeability reduction. The trapping diameter is a function of the
rock grain structure and porosity, and is defined next.
f Dg
Dt = a
(1 - f ) 3
, where a is a dimensionless trapping diameter multiplier used for matching
Dg
and is the grain diameter. To trap all of the solid asphaltene, set a to zero.
Reversibility - if the model is irreversible, then only the solid asphaltene that is not already
trapped may irreversibly accumulate as trapped asphaltene. If the model is reversible, then
all of the solid asphaltene, including that previously trapped, will be partitioned between
trapped and non-trapped solids according to the particle size distribution.
Permeability reduction - the trapped asphaltene will reduce the permeability according to
the equation below.
n
æ C ö
k = k çç1 - ÷÷
, where C is the trapped mass per unit volume of asphaltene, r a is the trapped
è r af ø
asphaltene density and n is a permeability reduction index.
2.3.12.2Wax
Waxes are modelled in REVEAL as a solubility limited component in the oleic phase, that
once precipitated may become trapped within the pore structure of the rock reducing
permeability.
The details for the wax model are exactly analogous the asphaltene, except that the
solubility is temperature rather than pressure dependent.
The wax input data can be accessed once the solids option and wax component have been
selected in the control section.
The initial dissolved wax concentration within the oil phase should be entered in the
initialisation section.
Flocculation properties
Flocculated density - this density is used to relate the mass and volume of trapped wax for
permeability reduction.
Solubility
Permeability reduction and rock grain structure properties are defined for each rock type.
Trapped wax - the insoluble wax will flocculate with a distribution of particle sizes.
Flocculated wax with a diameter greater than the trapping diameter (Dt) will be trapped and
contribute to permeability reduction. The trapping diameter is a function of the rock grain
structure and porosity, and is defined next.
f Dg
Dt = a
(1 - f ) 3 , where a is a dimensionless trapping diameter multiplier used for matching
Dg
and is the grain diameter. To trap all of the solid wax, set a to zero.
Reversibility - if the model is irreversible, then only the solid wax that is not already trapped
may irreversibly accumulate as trapped wax. If the model is reversible, then all of the solid
wax, including that previously trapped will be partitioned between trapped and non-trapped
solids according to the particle size distribution.
Permeability reduction - the trapped wax will reduce the permeability according to the
equation below.
n
æ C ö
k = k çç1 - ÷÷
è , where C is the trapped mass per unit volume of wax, r a is the trapped wax
r af ø
2.3.12.3Sand
The sand model in REVEAL requires that the solids option is selected in the control section
and that the components SandWater, SandOil and SandGas are present. These
components represent the concentration of sand in each of the three possible mobile
phases.
First there is the transport and trapping of solids (sand). This is a general solid transport
model and is not limited to sand. The transport and trapping is dependent on the solid
particle diameter and the pore throat diameter distribution defined in the physical section.
Trapping may lead to permeability reduction. Each mobile phase may transport sand and
the total sand is partitioned between the phases present according to partitioning
coefficients.
Secondly, there is a model in REVEAL to predict sand generation, arising when the stress
within the reservoir rises sufficiently. A calculator is provided to estimate this failure criterion
based on pre-consolidation failure (Ref 24 and 26).
Sand properties
The sand particle diameter is defined, as well as the partitioning between oil/water and gas/
oil.
Once the shear rate (see mobility where gc = 1) for a given mobile phase exceeds the critical
shear rate for transport, then a fraction of the sand present with a block will be transported
and the remainder will be trapped. The fraction that is trapped is calculated from the particle
size and the pore throat distribution (y(x)). dp is the effective pore throat diameter, and sp is
its log STD (standard deviation). A plugging efficiency (E) is also added to account for
bridging effects.
2
é ln( x / d p ) ù
- 0.5 ê ú
1 êë sp úû
y ( x) = e
2ps p d p
The trapped fraction is given by:
d é1 1 æ ln( d / d p ) öù
E ò y ( x)dx = E ê + Erf ç ÷ú
êë 2 2 ç s 2 ÷ú
0 è p øû , where Erf is the error function.
If significant trapping occurs, then a buildup of solids can occur. This may result in
permeability reduction. The permeability reduction is parameterised by a permeability
reduction index (n), sand density (rs) defined in the physical section and total sand mass
concentration (cs).
n
æ c ö
k = k 0 çç1 - s ÷÷
è r sf ø
Rock properties may be defined for all rocks, or for each defined rock type.
The sand trapping properties and their use are defined above.
Sand is generated when the reservoir pressure falls below a critical value and the stresses
consolidating the rock cannot be supported by the pore pressure.
Once the pore pressure has fallen below its critical value, then the rate of sand generation is
defined to be a function of total shear over the time step. Since shear rate has units of s-1
the total shear is the total shear rate multiplied by the time step.
Critical shear rate - sand may only be generated once the total shear rate exceeds this
value.
Sand generated per unit shear - the mass of sand generate per unit shear.
Maximum sand generated - the maximum sand that may be generated over the life of the
simulation.
Cap effective stress - this is equivalent to the pore pressure reduction from the initial value
before sand failure can occur. It is the preconsolidation effective stress at which plastic
(sand) failure occurs.
This is the most important parameter and may be estimated using the PLOT button.
The main idea of this model is that laboratory tests that calculate preconsolidation (Cap)
effective stress when end cap hardening occurs may be used to estimate failure.
End cap hardening is the point at which the grain structure starts to fail and is indicative of
plastic deformation and is used for the criteria for sand production. This occurs before
catastrophic (shear) failure.
The model in REVEAL follows the work in Ref 26, and relates the isotropic preconsolidation
(Cap) effective stress to that in a non-isotropic reservoir.
As the pore pressure falls, the vertical stress is assumed to be constant and the horizontal
stresses reduce according to the poro-elastic coefficient entered. A mean (S) and variance
A stress path (blue line) is considered, starting at the initial reservoir pressure and reducing
the pore pressure. As the pressure reduces, the minimum principal direction stress reduces
according to a poro-elastic coefficient.
A shear failure criteria (green line) is defined from the angle of friction (Mohr's circle), and
the two stresses S and Q.
The elastic limit (red line) is calculated by relating the isotropic preconsolidation effective
stress limit to an isotropic effective stress limit.
The pore pressure reduction before elastic deformation is reported and is the value
recommended in REVEAL for sand failure.
Model equations
P0 – P Pressure reduction
S1 Maximum stress
S2 = S20 – dS/dP (P0 – P) Middle stress
S3 = S30 – dS/dP (P0 – P) Minimum stress
Note that while these equations are used for the plot, during a simulation the three principal
direction stresses (S1, S2, S3) are calculated using the full rock mechanics method
accounting for thermal and pressures effects as well as strain. From these S and Q may be
calculated, then a shear failure criteria (angle of friction) and hardening failure (cap
pressure) may be calculated. Note that the cap failure uses the user input angle of friction.
If the calculated failure criteria exceed those for the rock, then failure is predicted. In the
case of the sand generation model, this is when the calculated cap pressure exceeds the
NOTE: To be able to select annular flow through a multilateral well description, the
"Friction and Heat Transfer" radio button must be selected in the above screen.
Well list
Wells may be added using the Create button. Once a well has been added, its properties
may be modified by selecting the well in the list. A well may be deleted by selecting it in the
well list and using the Delete button. The well name (or label) is set in the well identification
section.
Sort Alphabetically - the well order is permanently sorted alphabetically and will be used in
the order elsewhere in the interface and results.
Trace component averaging - this models define how the concentration of components
within phases from producing wells are calculated. The default option (block) sets the
component concentrations equal to the concentrations present within the producing block,
and is generally recommended. The average option sets the component concentrations
equal to a horizontal spatial average, which makes the assumption that component
concentrations have a cubic form near the well.
28 ci , j ,k - (ci -1, j ,k + ci +1, j ,k + ci , j -1,k + ci , j +1,k )
c=
24
Shear model - the shear model applies a shear thinning correction for water injection wells
containing polymer and gel components. See the mobility section for more details.
Well identification
Well label - a name for the well that can be edited to identify the well.
Enter well position by - the method of defining the well completions can take three forms.
For radial and curvilinear geometries the first two wells are defined by the geometry and
their location cannot be altered. Additional wells for these geometries are not
recommended.
Convert to multilateral - this will convert a completion table or vertical column well to a
deviation survey (multilateral well). Care should be taken with this option since clearly a
trajectory cannot be accurately calculated from a completion table.
Allow unstable THP control - if this option is selected (default), then a well exhibiting
unstable flow will be allowed to flow, if it is not selected then the well will be closed for the
current time-step. Unstable flow is defined to be when the gradient of the VLP curve
changes sign at lower rates indicating that the frictional gradient is insufficient to maintain
steady tubing flow.
For the completion table or vertical column method of defining the well location, the data for
each block associated with the well are entered. For the completion table, the I,J,K
coordinates of the well must be entered for each block.
The block connection factor (CF) is defined below. This may be entered directly, or the
constituent parts entered, or calculated from the well geometry (kh and re).
2pkh
CF = a
ær ö
ln çç e ÷÷ + S
è rw ø
where CF is the well connection factor and a is a unit conversion factor. kh is the effective
penetration of the well, rw is the wellbore radius and re is the effective radius at which the
block pressure is defined. S is the mechanical/perforation skin.
Completion table
For the well-bore heating model, the earth and electrode locations are identified in the final
column of the completion or layer data table.
Multilateral well
If the well is a multilateral or defined by a deviation survey, then it must be given an identifier
name. Select the Edit Multilateral button to enter a deviation survey.
NOTE: To be able to select annular flow through a multilateral well description, the
"Friction and Heat Transfer" radio button must be selected in the Well Section - well
positions and properties screen.
A reference location for the top of the well must be entered in either grid or map axes. A
hierarchy of connected tubing sections (possibly consisting of several branches) can be
added or deleted from the tubing list. For each tubing section a deviation survey is entered
using either grid coordinates or deviation survey coordinates. Any interval on the tubing
section may be completed and given a radius, skin, roughness, internal diameter and heat
transfer coefficient (well conductivity) and PI multiplier. The well may be viewed using the
View button at any time. Note that deviation surveys can be imported from previously
exported files.
Excessive discretisation of the well (short lengths) may significantly reduce performance.
Tubing Flow
The friction for tubing is calculated from the roughness (R), by first calculating an effective
roughness (Reff) from the hydraulic diameter (Dh).
R
Reff =
Dh
This is then correlated with the Reynolds number using the Moody diagram to calculate a
friction coefficient (F). The frictional pressure drop is then calculated.
2
FL æ Q ö
DP = 1 r
2 D çè A ÷ø
h
If the user selects the tubing to be an orifice, then a discharge coefficient (K) is required and
the frictional pressure drop is calculated.
2
æQö
DP = 1 rK ç ÷
2 è Aø
Heat Transfer
Considering the heat transfer from the fluid flowing in the annulus to the fluid flowing in the
tubing, this heat transfer will be by way of three components: the heat transfer by way of
convection from fluid to tubing wall, by way of conduction through the tubing wall, and by
way of convection from the tubing wall to the fluid. Alternately if the tubing fluid is hotter than
the annular fluid, then heat transfer will be in the other direction.
Of these three elements, the conductivity of the pipe wall is a relatively large value as
compared to the other two. However, the total heat transfer is the combination of the three
elements, the actual heat transferred will be highly dependent upon the lowest value of
these three.
Before the release of IPM Version 7.5, the Heat Transfer Coefficient input for the Multilateral
well is the total heat transfer coefficient across the fluid from the annulus to the tubing (or
from tubing to annulus). The convection components of the heat transfer were implicitly
considered in the total heat transfer coefficient.
With the release of IPM Version 7.5, this heat transfer coefficient represents just the
conduction through the tubing wall. The forced convection elements are taken into account
by considering the Nusselts number.
Heat transfer between annulus fluid and tubing wall and from tubing wall to tubing fluid is
modeled using a forced convection analogy with Nusselt number (Nu) correlated with
Reynolds (Re) and Prandtl (Pr) numbers. The heat transfer between the annulus (or base
pipe when no annulus is present) is modeled using the the user entered effective total heat
transfer coefficient.
For multi-phase flow, all parameters are calculated as mass weighted fractions of the
constituent phases.
All heat transfer coefficients are with respect to the well internal area (p.ID.ID/4).
Gravel Pack
Gravel packs may be specified using a similar model to that in PROSPER and calculates a
Darcy and non-Darcy contribution to pressure drop from the reservoir to the well.
DP = aQ 2 + bQ
2
9.08 *10 -13 bB 2 rL mBL 1.47 *10 7 A=
p æ Pdiameter ö
a= b= b= ç ÷ S pf Peff Pint
where 12 A2 , 12 *1.127 *10 -3 KA , K 0.55 and 4 è 12 ø
b is the turbulence factor which may be calculated (above) or entered directly by the user
For an open hole completion, the area (A) is calculated
A = 2prw Pint
, where rw is the flowing wellbore radius.
The Vs (screen velocity is calculated) and may be used as a well control constraint in the
schedule section.
If the gravel pack is modeled with the annular flow model, then the gravel pack flow-pressure
drop relation is also used for flow along the annulus, with the area (A) being the annulus flow
area and the length (L) being the interval length.
If annular flow is present, then flow of heat and fluid between annular and tubing may be
modeled. The heat transfer coefficient is relative to the tubing ID. Roughness and ID/OD
for the casing are required.
Additionally, the casing and inflow flow may be set to zero for a section of completion
modeling a packer.
The fluid flow between the tubing and annulus may take several foms.
1] User - the tubing - annular flow is modeled using an orifice plate model.
2
1 æQö
DP = rK ç ÷
2 è Aø , where K is the discharge coefficient, Q is the flow rate per unit length and A is
3] Screen - various screens are allowed, effectively giving very low flow resistance between
the tubing and annulus. For the screens, an orifice type pressure drop is calculated using a
discharge coefficient of 1.
4] EqualizerTM - the geometry and pressure loss characteristics for these ICD devices is
included, and the various geometries available may be selected.
The user should take care that the deviation survey is discretised to model the correct
lengths for the equipment modeled. Adjacent equipment of the same type does not require
additional deviation survey disretisation. For example is 3 joints consecutively have 40'
equalizers of the same type, then a single entry for a 120' segment is correct, and will
generally reduce computation time compared to modeling 3 individual sections of 40' each.
REVEAL initially calculates the intersection of the completions with the matrix grid blocks. It
then calculates the Peaceman connection factors [Refs 7,13].
The effective radius (re) is calculated using Peaceman's equations modified for irregular
grids and partially penetrating/deviated wells. Peaceman's equation for a fully penetrating
vertical well with non-uniform grid dimensions and anisotropy is given below.
1
2
æ k ky 2 ö
ç x Dy 2 + Dx ÷
ç ky kx ÷
è ø
re = 0.28 1 1
4
æ kx ö æ ky ö 4
ç ÷ + çç ÷
çk ÷ ÷
è y ø è kx ø
The Peaceman well connection (PI) accounts for the logarithmic pressure distribution
around a vertical well, and for a given rate (Q) and bottom hole pressure (Pwf) sets the
appropriate mean block pressure (P) that will give the correct inflow (Q=PI(P-Pwf)) and total
rate to surrounding grid blocks using the linear Darcy formula.
Heater Conductivity
If an electrical heater is defined in the control section, then an electrical heater may be
specified for any well segments by entering a heater conductivity. This conductivity relates
the heating of the fluid within the wellbore from the heater, and the well conductivity now
relates the heating of the reservoir from the heater.
The heater conductivity is also with respect to the well internal area.
If this option is selected, then maximum power and maximum temperature for the heater will
PI modifiers
Non Darcy factor - a non-Darcy factor may be applied to the gas phase of any well. This
factor is scaled for each completed block according to the Darcy connection factor (assumes
equal drawdown for completed blocks) and applied as a rate dependent skin.
The block geometrical connection factor (CF) prior to the non-Darcy effect is defined as
2pkh
CF b =
æ re ö
ln çç ÷÷ + S
è rw ø
and is modified to include the non-Darcy skin as
2pkh
CF bnonDarcy = Dwell å CF b
ær ö b
ln çç e ÷÷ + S + Db Qb Db =
è rw ø , where CF b
Note that if the well completion blocks are entered as a table with only the total connection
factor, the non-Darcy skin will be applied with the denominator of the connection factor
assumed to be unity.
PI Multiplier - the optional PI multiplier will multiply all of the well connection factors for all
blocks intersected by the well regardless of the well type (vertical column, completion table
or multilateral).
Min XFlow DD - this may optionally be set to limit the minimum drawdown associated with a
well completion. This can be useful for numerical reasons, where there is very large mobility
and hence potentially vanishingly small pressure drop between the well and completed
block. For example steam injection into a reservoir with high permeability, may have
extremely large injectivity, where the well to completed block drawdown may be less than 10-
3 psi causing cross-flow instabilities. This method is adjusted automatically within REVEAL,
but may be over-ridden with this option. The default internal value for this parameter is 0.1
psi for all wells and 1.0 psi for steam models.
Filter cake - a compressible filter cake model is available for each well and may be
accessed by selecting the filter cake button. See the filter cake page for more details.
Pseudo Pressure - a pseudo pressure calculation is performed to modify the inflow for gas
wells. Note that currently, only density and viscosity are included in the psedo-pressure
calculation.
éPù P
ê mz ú (Pres - Pwf )
Pres
ò dP
ë û res is replaced by
Pwf mz
A PI is calculated base on a produced rate, Pwf and mean reservoir pressure. In REVEAL,
the drainage region pressure may be calculated by two main methods (the default and
Drainage method (diffusivity) - if the diffusivity method is selected, then the drainage
region associated with each well is calculated based on a diffusivity transit time from the
well. This method does not require a well to be flowing and the regions for all wells may
overlap. Also, for this method the diffusivity time is required to be input and the drainage
regions may be updated only at the start of the simulation, or at each time step.
Diffusivity time - the maximum diffusivity time at which blocks are associated with a well.
The larger this value, then the larger the drainage regions. If a negative value (-1) is
selected, then the diffusivity time will be set to the current time step size.
Update - the diffusivity drainage regions are updated every simulation time step. This is
always used if the diffusivity time is set to a negative number indicating the current time step
should be used.
Drainage method (streamlines) - if the streamlines method is selected, then the drainage
region will be calculated every time step, based on the region where flow is towards each
producer (or away from each injector). This is equivalent to the extent of streamlines
towards or away from each well. This method depends on the well production rates and for
a shut-in well, the drainage region consists only of the blocks perforated by the well. One of
the limitations of this method is that the drainage region would change if the rates are
changed. For this method, the drainage regions for all producers do not overlap, and the
drainage regions for all injectors do not overlap.
If the REVEAL model is part of the RESOLVE model, then when generating the IPR's in
RESOLVE, the Drainage Region option specified here in REVEAL will not be considered.
Wellbore friction and heat transfer - if this option is selected then an internal diameter and
absolute roughness should be entered for every well segment of the multilateral well
description, whether it is completed or not. This option is only available for multi-lateral well
descriptions. By default he wellbore friction model uses a no-slip frictional pressure drop
model, taking into account a mean density and viscosity at each node within the wellbore.
Use gas slip flow correlation - if this is selected than a slip flow correlation (Petroleum
Experts 2) is used to calculate the holdup, density and viscosity.
Use Polymer/Gel Viscosity - this option is only available if polymers or gels are present. If
this option is selected, then the aqueous phase mobility will be modified by the current
viscosity model including shear thinning. The shear rate (g) within the tubing is defined as:
4Q
g =
pr 3
The effects of polymer and gel within an injecting thermal fracture model attached to the well
are also included. The shear rate within the fracture is defined as:
4u
g =
w
Max Segment Length - this is the maximum tubing segment length used when the multi-
lateral friction model is present. If pipe segments exist that are longer than this length, then
additional nodes will be added to improve the discretisation of the wellbore friction
calculation. Note that excessively short segments may slow calculations with long tubings.
A default value of 100 ft is present.
Cross Flow - a cross flow model is available for any well. It is recommended that crossflow
is used for wells for which a trajectory and wellbore friction has been set using the multi-
lateral well model, otherwise the crossflow fluid will be the combined produced or injected
fluid not taking into account the local fluid within a wellbore. This model is not
recommended to be used in conjunction with fractures, since cross flow within the fracture is
not modelled.
Annular Flow - tubing (base pipe) and casing (annular) flow are allowed for multi-lateral
wells. If this is selected, then annular data and ICDs may be modeled.
If cross flow is present, then the well must always remain overall an injector or producer.
This may be important when connecting to GAP through RESOLVE.
The default (top of well tubing) location of the Pwf reference pressure depends on whether
the well is defined by completion table, vertical column or a multilateral. For a completion
table or vertical column, the Pwf is located at the top centre of the first block in the
completion list, whether this block is completed or not. For a multilateral well the Pwf is
located at the first (reference) node.
If a reference depth is set that does not correspond to the default (top) reference depth, then
a static pressure drop is calculated from the 'top' node to the reference depth based on the
density estimated at the reference depth.
The reference depth pressure is calculated differently for any well model with a deviation
survey and frictional pressure drop calculations (usually termed multilateral well with friction).
For this type of well definition, the first node is the reference start coordinate for the well.
This is usually the top of the completion and may be connected to TPD tables with the
same reference depth. However, occasionally it is desirable to model a well inside REVEAL
above the usual Pwf reference - perhaps to model thermal heat transfer to the overburden.
In this case if the user specified a reference depth below the first node of the well model,
then the pressure inside the tubing at this depth is the desired Pwf, which cannot be
calculated with a static gradient. However, this is solved by ensuring the total system
response satisfies the desired Pwf at the reference depth within the tubing.
In the case where a multilateral well with friction is specified and the reference depth is
within the well trajectory, then the tubing pressure at the first measured depth equal to the
Note that this is the tubing (base pipe) pressure and not the annulus or any other well
internal pressure at this depth.
Also note that the first measured depth is the point inside the tubing at the specified
measured depth closest to the first node - this is required for cases where the well trajectory
may have multiple pressures at the desired reference depth (e.g. multi-lateral or horizontal
well).
Lift curve
A PROSPER lift curve (*.tpd) may be imported. Generally it is recommended that the lift
curve is imported and associated with a well in the schedule section rather than in the well
section. This is because a well may change from an injector to a producer in the schedule,
and even if a lift curve is defined in this section, it must be reset in the schedule section. A
lift curve is only required in this section if REVEAL is being controlled by GAP/RESOLVE and
the schedule is effectively ignored. Care should be taken to ensure that the imported lift
curve is of the correct type (e.g. water injector or producer) for the well.
2.3.13.2Filter cake
The filter cake model is applied to wells and fractures associated with water injections.
If this model is being used with wells (as opposed to fractures), then the internal surface
area of the wellbore is used to calculate the filtrate buildup. Therefore, a multi-lateral
(deviation survey) wellbore description is recommended, and the completion table well
description is not recommended unless the wellbore direction (X, Y or Z) is used to define
the wellbore. If the completion table is used and the well direction is not defined, then it is
assumed to be vertical, and the kh (if entered) is used to estimate the well length.
Data entry is optional, with the default applying no filter cake skin. A concentration of filtrate
equal to zero corresponds to the model being switched off. A non-zero value will result in
the model parameters being applied.
Several filtrate models are provided (see SPE 28488), but in general this data should be
obtained from a core test. Select the mineral and oil coated status, they use the apply
button to set the properties.
The remaining data relate the filter cake permeability to its porosity and the porosity to the
applied pressure drop across the filter cake (compressibility). A core test should be
performed that obtains the pressure drop across the filter cake after known total water flow
at a constant rate. Additionally, the filter cake thickness should be obtained dynamically as
the test is being performed.
The sample data provided should only be used as guidelines. In general data matched from
a core test is required.
The permeability is obtained from the filter cake pressure drop (DP) and filter cake length (D
L).
Q( ft 3 / d ) m (cP )DL( ft )
k (mD ) =
6.3266 ´10 -3 A( ft 2 )DP( psi )
The porosity is obtained from the cumulative water volume passed (W) and the filter cake
length.
rw
Ww = ADL(1 - f )
rf
The permeability-porosity relation should then be fitted to either an exponential or power
law.
k = k 0 (1 - f )
n
k = k 0 e n (1-f )
or , where k0 and n are entered as the two required parameters.
Finally a minimum porosity is required that accounts for the maximum filter cake
compression and minimum permeability.
These data are used to calculate the filter cake skin as a dynamic function of cumulative
water injected per unit area and the filter cake pressure drop.
Note that if the maximum porosity is set to one and the power law equation is used for the
permeability-porosity relation then the commonly used compressible filtrate equation is
reproduced.
k = k 0 (cDP )
n
, which is often expressed in terms of specific filtration resistance (r), which is the
reciprocal of permeability r = r0 (DP ) .
s
2.3.13.3Fractures
This screen is only active if fracture models is selected in the control section. It initialises
the fracture type (producing or thermal injection), location and initial dimensions.
Verification and validation documentation for the fracture models in REVEAL may be
obtained from Petroleum Experts.
Further information on rock mechanics and thermal fracturing: Rock Mechanics and Thermal
Fracturing.
All fractures have an origin at the centre of a grid block (with coordinates IJK), associated
with a completed well. The fracture then has a two-dimensional shape running down the
centre of adjacent blocks with constant (X, Y or Z) coordinate.
Some general comments about the thermal fracture model are present lower down on this
page.
Fracture list
Use the Add button to add fractures to the model. Select a fracture in the fracture list to
alter its properties or use the Delete button to delete the fracture. The Clear button will
delete all fractures.
Auto Generate Fracture Seed - this option may be used to seed multiple potential fractures
along a well, effectively including most or all perforated blocks. These seed locations will be
flagged as such in the Fracture Position screen as Auto generated fractures.
As such, these fracture locations will be tested each timestep and if it looks likely that the
fracture may initiate, then the most promising location will be included in the full fracture
calculations. If a fracture has already propagated into a seed location, then an additional
fracture will not be started here.
This method is intended to help initially with analysing potential fracture initiation, rather than
an automatic option that removes the requirement to consider where fractures may initiate.
Fracture position
Give the fracture a label name or use the default and select a well to be associated with the
fracture. Every fracture must be associated with a well. For both injection and producing
fractures more than one fracture (multi-layer fractures) may be associated with a well.
The location of the fracture origin is then defined. For wells with a completion list or vertical
wells, the completed block number for the fracture is entered. Note that this is the
completed block number and not the layer number. For a multi-lateral well the coordinates
of the fracture centre are input; use the Calculator button to select a completion segment
and interpolate a position along the completion (using either an X,Y or Z coordinate).
The following sketch illustrates a well entered in REVEAL using the "multilateral description".
The blue lines correspond to the well trajectory as the red lines correspond to the completion
intervals. The fracture position (origin) is defined with three geometric coordinates X0, Y0
and Z0. It has to be within a completed block.
The option "Coordinates Calculator" is used to calculate the three coordinates X0, Y0 and
Z0 by fixing only one of them. The user has to enter the completion interval where the
fracture origin is located (between the two block coordinates [X, Y, Z] and [X', Y', Z']),
clicking on the left boxes as shown below:
Once the completion interval is selected, one has to enter one of the three coordinates X0,
Y0 and Z0 (say X0).
The other two coordinates (Y0 and Z0) are interpolated, clicking on "Calculate", by the
program which assumes that the fracture origin is situated on the straight line defined by the
two ends of the completion interval.
Note that for multi-lateral wells, the fracture origin will be moved from the input position to
the centre of the block containing the input position when the calculation is run. This is
because the fracture origin must be defined at a block centre, since the connection of the
well to the block is defined by reference to the block centre.
Fracture model
Model - three fracture models are available, a 1D analytical thermal fracture model
(Geertsma deKlerk), a finite-element thermal fracture model (3D model) and producing
fracture model. The first two models are thermal injection fractures, where the shape of the
fracture evolves as the fracture propagates, while the producing fracture model has a static
fracture shape, assumed to be sustained by proppant or acid treatment.
Geertsma deKlerk - this model is basically a volume balance model based on a leakoff
correlation. The leakoff and spurt coefficients are the only additional data required for this
model. This model is a single wing model and the fracture origin should be positioned in the
first row of the grid (I=1 or J=1) so that the wing may propagate in the X+ or Y+ direction.
The propagation direction is normal to the minimum principal stress direction.
3D fracture - this model calculates the fracture shape including effects of stress changes
due to injected fluids, elastic fracture opening, propagation depending on rock strength, flow
within the fracture, leakoff rate balancing the well injection rate and Pwf. The propagation
direction is normal dependent on the minimum principal stress direction.
This model may be a single wing (Image ON), in which case the fracture is only calculated
on one wing (X+ or Y+) of the fracture. For this fracture the inflow from the second wing (X-
or Y-) is not added to the grid, therefore this fracture model should always be positioned at
the minimum X or Y coordinate (I=1 or J=1) within the grid. Reported injection rates will be
the total injected by the well-bore, and therefore may be as much as double that injected into
the reservoir simulation model. If the Image OFF option is selected, then both wings of the
fracture will be calculated and the fracture should be positioned within the grid model.
Fixed dimension fracture - this model uses a fixed fracture shape and width distribution to
calculate inflow from surrounding blocks to a producing or injecting well. The orientation of
each fixed dimension fracture may be normal to either the X, Y or Z directions.
The shape of the fracture plane may be rectangular or elliptical. The width at the fracture
origin is entered, and the width profile defined to be either constant (=central value) or
decrease with an elliptical cross-section towards the fracture boundaries.
Additionally, it is possible for the fracture geometry to be completely specified by the user.
In this case coordinates relative to the fracture centre must be entered (105 points in the
correct order), along with the width and permeability for each node.
For the user defined fracture, the node, coordinates, width and permeability are required.
The geometry data will have to come from an external source (or from a previously
calculated thermal fracture model in REVEAL). If only the centre and perimeter coordinates
are specified, then the internal node coordinates required by REVEAL may be calculated.
Additionally smoothing of the coordinates may be performed by equal area or equation
perimeter lengths (recommended).
Double/single wing - If only half of the fracture is defined because the injection well is at
the edge (first row) of the model due to symmetry reason, then the single wing fracture
model may be used. In general for almost all applications, the double wing calculation
should be used, this is because confusion can arise from the well rate being double that
injected into the reservoir for the single wing model and there are no performance
improvements using the single wing variant.
Initial dimension - for all three fracture models the initial dimensions of the fracture are
required; a half height above and below the fracture origin and a half length. For the
injection (thermal) fractures, this data is used to describe the initial fracture dimensions
arising from formation damage or naturally occurring fractures. The propagation of a
fracture starts when the well Pwf is large enough to generate a stress intensity at the
fracture tip greater than the critical stress intensity. Prior to propagation initiation, no inflow
from the fracture is assumed. A smaller initial fracture size will require a larger initiating Pwf
and hence longer Darcy (well completion only) inflow time before the fracture is initiated.
Generate fracture text debug data - if this option is selected, then data is output to the text
debug file listing properties at each node on the fracture surface at each time step. This
data may be large and therefore may not be output if this option is deselected.
Fracture properties
Orientation plane - this is the minimum principal stress direction and a fracture will
propagate with a plane parallel to this direction.
Permeability - for the 3D fracture and producing fracture, a two dimensional finite-element
grid is used and explicitly models the fluid flow and pressure drops within the fracture. For
these fracture models, the permeability (k) within the fracture must be defined. Four models
are available, including:
· constant permeability
· constant conductivity
· Fcd (dimensionless fracture conductivity)
· parallel plate with user multiplier
The latter two models depend on the fracture width (w), fracture half length (L1/2) and X-
direction reservoir permeability (kx) for the Fcd model, and are defined below.
Fcd k x L1 / 2
k=
w
w2
k=
12
Closed fracture width - this is the fracture width used for flow calculations within the
fracture for regions within the fracture where the fracture has previously been opened, but
has since closed.
Heat flux function - this describes the temperature profile within the fracture, and is
basically a power law correlation with a value of 1 corresponding to a linear temperature
profile.
Fracture skin - this may be included for this model, reducing injectivity with a positive value.
Non-Darcy beta factor - this may be entered for gas producing fractures, the pressure
gradient, gas velocity within the fracture is modified as follows:
1. In Field Units
2. In Metric Units
Therefore, if a beta factor corresponding to the metric units is obtained from correlations, it
will be needed to correct it to enter it in REVEAL in field units by dividing it by g, as illustrated
below:
This is the same concept than when considering a head calculation in metric and field (i.e.
from lb/mass to lb/force).
Leakoff and spurt coefficients - these parameters are required for the Geertsma deKlerk
model and are described separately.
Fracture shrink mode - this option is only for the 3D thermal fracture model.
In the case where a fracture stops propagating due to insufficient well rate or Pwf the
fracture shape calculation may either:
· keep the fracture area constant and reduce the width (width shrinkage)
· reduce the fracture area to maintain the propagation criteria on the fracture perimeter
(perimeter shrinkage)
· a more stable version of the perimeter shrinkage model is also provided that reduces
fracture shape oscillations in most cases - this is achieved by:
a) coupling the fracture to the well model using line source rather than central point where
possible.
b) not shrinking the fracture perimeter when it cannot be sustained open, rather using the
minimum fracture width to reduce flow into closed regions of the fracture.
c) better predicting high stress contrast barriers.
It is generally recommended that the predictive shrinkage model is used, since it better
handles fracture closure.
Fracture boundary mode - this allows the boundary fracture nodes to be spaced by equal
perimeter or equal segment area. The default option of equal perimeter is recommended for
almost all cases. The equal area option may be used for fractures that develop very large
aspect ratios, while remaining centered on the initial seed location.
The thermal fracture model couples the dynamic reservoir matrix conditions with a finite
element solution of fracture mechanics and an injection well performance.
The thermal fracture model is designed to test initiation and propagation of fractures. At
early stages, initiation is largely controlled by the Pwf that may be maintained and the
reduction in stress near the injection site where cooling occurs, which is a function of the
well injection rate. At later stages the size of the fracture will largely be controlled by the
leakoff rate and the shape by the stress distribution.
It is therefore strongly recommended to use a well injection curve with Pwf and temperature
defined for a range of injection rates.
More than one fracture may be 'seeded' along a wellbore, where sand and shales are
explicitly defined within the simulation model to investigate where a fracture may occur first
and whether it is likely to penetrate adjacent layers.
Additionally, fixed dimension fractures may be defined for production (or injection wells).
1] The stress field tensor within the reservoir is calculated in the minimum principal direction
defined by the user. The stress field within the reservoir is calculated at any time step from
the prevailing temperature and pressure distribution, the initial stress distribution, poro-
elastic and thermo-elastic stress reduction parameters.
2] Given the stress field acting to close any fracture, the pressure and width distribution with
a fracture of fixed perimeter dimension is calculated using an elastic stress-strain relation
coupled to the flow within the fracture and leakoff to the reservoir matrix. This is coupled to
the injection potential of the well. The elastic properties required for the fracture include
Young's modulus and Poisson's ratio.
For the thermal fracture model, a two-dimensional finite element grid is used and coupled
with the overall three-dimensional finite difference main model grid, as illustrated below for a
vertical fracture.
This finite element grid explicitly models the fluid flow and pressure drops within the fracture,
and is characterised by triangular internal elements and quadrilateral boundary elements.
The fracture properties are controlled by both pressure, temperature and flow variations
near the wellbore. The model is based on the calculation of the effects of the pressure
distribution variation due to injection, the stress applied on the fracture surface and the rock
elastic strain. The following parameters can therefore be considered in the fracture model:
The following relation will be used to balance a stress-strain integral equation over the
surface of the fracture:
P - σ = strain(w)
The parameters included in this equation are affecting the fracture as follows:
a) The pressure is acting to open the fracture and the stress is acting to close the fracture. It
will be a function of both pressure and temperature. The stress value taken into account will
not be referring to the specific pressure and temperature at the exact point considered, but
to the pressure and temperature distributions within the system. For instance, as the stress
is a function of rock expansion, it will be lowered if the temperature drops. Therefore, if the
point at which the stress needs to be estimated is surrounded by a cool area, the stress
value at this specific point will depend on the extension of this cool area.
b) The pressure distribution will be a function of the flow behaviour within both the fracture
(Qfrac) and the matrix (Qleakoff). The leakoff will be strongly dependent on the fracture
size, reservoir and fracture pressures and the mobility of injected fluid, which is strongly
temperature dependent through viscosity. The pressure distribution will then be function of
the ratio between the flow within the fracture (i.e. which will tend to open the fracture) and
the leak off flow (i.e. which will tend to decrease the fracture propagation capacity).
c) The injected fluid (Qinj) and central pressure (Pwf)/temperature (Twf) will be dependent
on the injection VLP and the fracture leakoff properties.
d) The fracture tip stress intensity represents the resistance of the reservoir medium to the
fracture propagation. It will be a function of fracture width (i.e. strain): effectively, as the
width of the fracture increases, the stress applied on the fracture focuses on the tip of the
fracture, and will tend to propagate the fracture.
To investigate accurately the initiation and propagation of the fracture, it will be needed to
have a relation between the well flowing bottom hole pressure and the well injection rate: it
will be needed to have a well VLP.
Therefore, for the pressure initiation, it will be needed to have a high flowing bottom hole
pressure, therefore linked to a low injection rate. However, it will be necessary as well to
reduce the stress as much as possible by cooling the near wellbore area. However, in order
to cool the near wellbore area, a high injection rate will be needed. Therefore, the fracture
propagation conditions would be a balance between flowing bottom hole pressure and
bottom hole temperature.
Fracture opening and propagation criteria - this model assumes a rectangular vertical
fracture with half-length (Lf) and a constant pressure (Pf) within the fracture. If this pressure
is greater than the rock stress (ó), then the fracture can open. The criterion for fracture
propagation is that Pf generates a stress intensity at the tip greater than the critical stress
intensity, KIc. Propagation stops when the stress intensity at the tip is equal to the critical
stress intensity.
Open condition
Pf > s
Propagation condition
K Ic
Pf > s +
pL f
Width and length equations - the width of the fracture at its widest point (ww) (injection
site) and the fracture half-length are related to the total fracture injection rate (Qf), leakoff
rate (QL), leakoff (C) and spurt (SP) coefficients, time (t), half-height (h), and history of the
evolving fracture area (A(t)). Basically, this model is a material balance model, where the
changing volume of the fracture is the difference between the injected and leakoff rates.
The volume of the fracture is a function of its length and central width, which in turn are
related to the elasticity and tensile strength of the rock for a given internal pressure.
Leakoff equation
t
C dA
QL = ò dt
0 t - t dt
G is the shear modulus and defined by Young's modulus (E) and Poisson's ratio (v).
E
G=
2(1 + u )
These equations are solved for the fracture pressure and leakoff rate for an input total
fracture injection rate. The result depends on whether the fracture is propagating or not.
The fracture pressure is then coupled to the injection lift curve, finally after iterations
returning a consistent total injection rate Q=Qf+Qw.
2.3.13.53D fracture
Both single-wing and complete (double-wing) fractures are possible using this model. A
finite-element grid is introduced, with triangular internal elements and quadrilateral boundary
elements. The fracture is therefore approximated by a 2D plane with fracture widths defined
over this plane.
A skin (S) may be defined for the fracture. The mobility connection factor (M) for a grid
block intersecting the fracture with an area of intersection (A) and pressure drop (DP)
between the fracture and grid block is calculated assuming linear flow in the a normal
direction (Y direction in equations below) away from both sides of the fracture.
æ M ö Ky kr p
Q = Aç ÷DP M =8
DY
åm
è1+ S ø p
A filter cake may also be defined using a user specified filter cake parameter (F). The filter
cake skin is dependent on the cumulative throughput of injection water into each matrix
block (qcum) .
F q cum k rock
S= F =C
DY A and k skin
where C is a constant describing the volume of the filter cake layer per unit volume of
injected water, and krock/kskin is the ratio of rock permeability to filter cake permeability.
Internal pressure width equation - the pressure and width within the fracture are related
by the following equation.
G 1
( P - s )( x, z ) = ò Ñ( ) × Ñw¢dA¢
4p (1 - u ) R R = ( x - x ¢) 2 + ( z - z ¢) 2
G is the shear modulus and defined by Young's modulus (E) and Poisson's ratio (í).
E
G=
2(1 + u )
Singularities are dealt with analytical expressions on the internal triangular elements. On the
outer quadrilateral elements, it is assumed that w µ a , where a is the distance from the tip
and w=0 on the outermost boundary.
The critical width (wc) at which the fracture will just propagate is defined at a small fixed
distance (a) from the fracture tip such that the stress intensity at the tip is equal to the critical
stress intensity for the rock (KIc).
4 K Ic (1 - u ) a
wc =
G 2p
The critical stress intensity KIC represents the additional pressure (DP above the minimum
principal stress) required to open a fracture sufficiently to propagate. For an initial fracture
size (a) of 1 ft (default value), this results in the following approximate relation for initiation
over-pressure.
When a = 1 ft, DP = 2.4 KIC. This relation may be used to enter an appropriate (KIC), if only
the initiation pressure (DP) is known.
Incompressible fluid fracture flow equation - the flow and pressure within the fracture are
related to the fracture leakoff rate.
-ò
w2 2
Ñ (P -
rh
)dV + ò M ( P - P mat )dA +
ò wdA - V0 - Q = 0
f
12 m 144 Dt f
Qf is the total fracture injection rate, added at the central node of the finite-element grid.
Volumetric storage rate within the fracture is included, reflecting the volume increase
ò wdA - V of the fracture since the previous fracture update
0 Dt f
.
Finite-element equation - the fracture width and leakoff equations are written in finite-
element form.
Solutionmethod - the finite-element equations are combined and solved iteratively for the
fracture widths using the Newton Raphson method.
-1
Fi ( w j ) = 0 Þ wi¢ = wi - lJ ij F j
¶Fi
J ij =
¶w j
where is the Jacobian and ë is a scale factor found using a line-search algorithm.
The finite-element fracture width solver is supplied with a total rate (Qf), and the shape of
the fracture is iterated on until a consistent shape is found with the stress intensity at the
fracture tip equal to the critical stress intensity (KIc) for the fracturing rock. The pressure at
the centre of the fracture (Pf) is returned and a top level of iteration is performed to ensure
that Qf and Pf are consistent with the total well rate (including flow directly from the well into
the rock matrix) and the bottom hole flowing pressure (Pwf).
Note that for a single wing fracture only the flow from the well completions and one wing of
the fracture are injected into the grid. However, the total well rate and Pwf must be defined
for both wings of the fracture. The result is that the reported injection rate (well and one
fracture wing) may be as little as 50% of the total well injection rate entered in the schedule.
Stress calculation - the stress on the fracture surface is calculated from the in-situ stress
field (sinsitu) and poro/thermo-elastic stress reductions (DsP & DsT). The in-situ stress is
defined by the user as a function of depth or by horizontal layer.
The Goodier displacement method (default) was provided prior up until IPM6 build 130, and
is still available for reference purposes. It assumes zero displacement on the model
boundary. While this model works well for most cases, an alternative model (Oedometric
displacement) is now provided and has some advantages.
2] Due to its formulation it handles grids with complex regions of inactive blocks better.
3] It better handles cases where the stress changes suddenly (e.g. due to producer
changing to injector).
4] Due to the vertical strain calculation included, it better handles horizontal fractures where
the vertical stress changes are important.
The poro and thermo stress reductions take a similar form and the equations used were
obtained from Koning [Ref 18].
s = s insitu - Ds P - Ds T = s insitu - Ds yy
The Goodier (c) displacement potential is first calculated over the entire FD (finite
difference) grid by solving Laplace's equation.
Ñ2c = -
(1 + u ) (A DP + AT DT )
p
E
DT = Treference - T
where DP = Pinitial - P and
The displacement potential could be used to calculate any component of the stress reducing
tensor. The Y direction stress reduction (perpendicular to fracture surface) is then
calculated. Similar forms for the stress reduction are performed if the principal stress
direction is in the X or Z direction.
E ¶2c
Ds yy = + A DP + AT DT
(1 + u ) ¶y 2 p
OedometricDisplacement potential
The Oedometric (c) displacement potential is first calculated over the entire FD (finite
difference) grid. Boundary conditions with zero displacement on the vertical and bottom
boundaries, and displacement allowed on the top surface are applied.
2
( K - G )de v + 2GÑ 2 c = -( AP DP + AT DT )(1 - v) /(1 - 2v)
3
E E ¶2c ¶2c ¶2c
K= G= de v = 2 + 2 + 2 = Ñ 2 c
where 3(1 - 2u ) , 2(1 + u ) and ¶x ¶y ¶z
The change in strain and stress is then calculated (for example in the y direction):
¶c 2 ¶2c
ey = Ds yy = ( K - G )de v + 2G 2 + ( AP DP + AT DT )(1 - v) /(1 - 2v)
¶y and 3 ¶y
Note that this displacement potential equation reduces to the Goodier displacement
potential described above, when top surface strain (compaction) is disregarded.
The reported (3D graphics results) compaction is the integral of vertical displacements (ez)
from the bottom upwards. Also, the vertical displacements are shown with a positive
displacement being downwards.
These methods are effective for thermal fracturing only once the cooled region is at least the
same size as the grid blocks being used. An analytical model for fracture initiation and
propagation within the fracturing block is used. The simplified model was derived from
references [Refs 9, 12, 14, 22]. An estimate of the cooled and flooded region radii are
calculated from the total downhole volume of injected water (W).
The pressure and temperature distribution within the cooled and flooded regions are
estimated as a function of radial distance (r) from the fracture centre. These simple
approximations assume that the temperature and pressure are at a mean between the
injection and reference/initial conditions at their respective cooled/flooded radii.
The thermo-elastic and poro-elastic stress reductions on the fracture surface within the
fracturing block are then calculated, assuming a 'circular' shape function of 0.5.
[
Ds yy = 0.5 AT (Treference - Tcooled ) + AP (Pinitial - Pflood )]
As the fracture extends beyond its initial block, the stress reductions calculated using the
Goodier displacement potentials are interpolated onto the 2D fracture surface. For this
interpolation, the stress reduction for the fracturing block is calculated using the simple
model above with the cooled temperature set equal to the injection temperature
(Tcooled=Tinj), and the flooded pressure set equal to the block average pressure
(Pflood=Pblock). Note that this stress reduction is only applicable once the fracture has
grown beyond its initial block.
The FE grid has internal triangular and quadrilateral elements on its boundary. The size of
the elements may vary as the fracture propagates, although their topology remains constant.
Variables are defined at the nodes of the grid. These variables include the fracture width,
internal fracture temperature and pressure, fracture surface stress, and derived quantities
such as injection water density and viscosity.
The FD grid has hexahedral elements, which have fixed size. Variables are defined at the
centre of the grid blocks and represent volume average properties, and therefore are
dependent on the grid block dimensions (especially near an injection source, where the
spatial variation of physical properties such as pressure and temperature are far from
linear). Relevant variables include pressure, temperature, permeability and phase
mobilities.
Some variables are required on both the FD and FE grids and linear interpolation is used to
transfer properties from one grid to the other. The FE grid basis functions are used to
interpolate to the FD grid, while interpolation from the FD to the FE grid is performed using
bilinear interpolation of four values at FD grid block centres.
The temperature within the FE fracture grid is set using the following formula (Meyer).
æ W ö
ç ÷÷
é
a=ê
( (
1 - x) 1 + 2 )
ù çè
ú
2ø
T = aTinj + (1 - a )Tmatrix (
ëê 1 + x + 2
2
)(
2 - 1 ûú )
where x is the fractional distance from the centre of the fracture to its tip, and W is a user
specified heat flux coefficient. Note that the temperature at the FE grid nodes is not a
function of the grid shape or area, since x remains constant as the grid grows.
The displacement mobility (S(kr/m)) of fluids within the FD grid is calculated using the FD grid
temperature, pressure and phase saturations. These are merely the mobilities used for the
flow within the FD grid. The previously injected water displacement mobility (calculated as a
water blocking fracture skin) uses the internal fracture temperature (FE grid) and FD grid
pressure to calculate the water viscosity with the water phase relative permeability end-point.
The thickness of the water blocking layer is calculated from the total volume of water
injected.
Finally, once the fracture shape, pressure and total rate have been calculated, the resulting
fracture is connected to the FD grid as a set of 'connection factors' and a constant rate
injection. The connection factors are calculated by considering the total flow from the FE
fracture grid to each FD grid block intersected by the fracture. Once the volumetric rate into
each FD grid block is calculated, the connection factor for that block is simply the rate
divided by (Pf-Pi), where Pf is the internal fracture pressure and Pi is the FD grid block
pressure. Several FD grid time-steps may be taken before the fracture is updated again.
The connection factors (and rate) remain constant during these time-steps, resulting in the
Pwf increasing until the fracture shape is updated again.
2.3.13.6Stress & elasticity
This screen is only available if thermal fractures are present and defines the mechanical
properties of the rock to be fractured and the initial in-situ stress.
Stress
Stress value at temperature - an initial reference stress and reference temperature are
input. If an optional temperature is not specified, then the reference temperature will be
assumed to be the initial temperature for each grid block.
Also, the reference pressure is set to be the initial pressure within the block. Therefore the
initial stress should equal the in-situ stress entered.
Depending on the stress layering method selected (below), the initial stress value may not
be required.
Stress model - the Goodier (zero boundary displacement - default) and Oedomentic
(includes vertical compaction) models are available - see 3D fracture model description for
more details.
The elastic coefficients (young's modulus and Poisson's ratio), elastic stress reduction
parameters (poro and thermo-elastic stress reduction) and the critical rock stress intensity
(sometimes called rock strength or fracture toughness) are entered layer by layer.
æ c ö
çç1 - g ÷÷(1 - 2u )
E cb
AP = a P aP = è ø
(1 - u ) and E
E is Young's modulus
u is Poisson's ratio
a P is the linear poro-elastic expansion coefficient
cg
is the matrix grain compressibility
cb
is the bulk matrix compressibility
æ cg ö
b = çç1 - ÷÷
è cb ø
is known as Biot's poro-elastic coefficient, which for consolidated rock is
sometimes estimated (Raymer) from porosity.
b = 1 - (1 - f )
3.8
Select the variable to entered, then select Add to enter data. Different data may be entered
for different vertical layers (Z increasing with depth), or the All button may be used to enter
the same data for all layers. Select a layer from the layer summary table to modify the data
or Delete the layer. The variable will turn from red to green when all of the data is entered,
or use the Validate button to check all required data has been input.
Set Defaults - this will set some nominal default values for stress properties and stress
layering, where no data has yet been entered.
It is possible to switch between two data entry modes for the poro and thermo-elastic
coefficient. If the Poro and Thermo coefs option is selected, then data for AP and AT are
entered. If the Biot and thermal exp coefs option is selected, then b and aT are entered.
Since the conversion between these input types requires Poisson's ratio and Young's
modulus, some checking of the conversion should be made in cases where data is entered
for multiple layers.
Stress layering
Four methods to modify in-situ stress by depth and layer are available.
Using the first two methods, a stress increment term may be added to the reference stress
as a function of layer or depth. Enter a top and bottom stress increment at the top and
bottom limit of each layer or depth range entered. This may be used to define stress
barriers or a vertical stress gradient. The increments need not be continuous (i.e. the
bottom of one layer need not be the same at the top of the layer immediately below). Note
that if layer stress variations are used, then data for each layer should be included if there
are inactive blocks within the grid.
Using the second two methods, the stress within a layer or by depth is calculated from a
stress offset, its true vertical depth and stress gradient (the in-situ stress simply being equal
to the offset + gradient * depth). In this case, the initial reference stress is not used.
A fracture will tend to propagate from its origin into low stress regions. To minimise large
distortions to the finite-element grid the in-situ stress field should be reasonably smooth (and
not a high stress barrier) at the fracture origin.
Generally we recommend using stress varying with depth or gradient, since this does not
cause potential problems with inactive layers within a model. Inactive layers (porosity zero)
have no data associated with them, therefore interpolation of stress when inactive layers are
present may be inaccurate.
In addition to defining the insitu stress profile in the three principal directions (X, Y and Z) is
is required to specify a stress profile for inactive regions and external regions. These are the
minimum principal stress to be applied when a fracture grows outside the gridded system.
Inactive regions refer to any inactive blocks that are either internal to the grid or located on
the side of the grid.
External regions refer to any inactive blocks that are located either above or below the grid.
Assume an initial reservoir pressure gradient of 0.45psi/ft for a naturally pressured reservoir
and vertical stress gradient (sv) of 0.9 psi/ft.
For depth z, the vertical stress is then sv = 0.9z psia, and the effective vertical stress sveff =
sv-P = 0.9z - 0.45z = 0.45z psi.
Poisson's ratio (v) may be used to estimate the effective horizontal stress using sheff = v/(1-
v) sveff. If v = 0.25, then sheff = 0.15z psi, hence sh = sheff + P = 0.6z psia.
If we set the horizontal stress gradient to 0.6psi/ft, the horizontal stress offset required is
0psia such that sh = 0 + 0.6 z.
The heating model applies a microwave frequency voltage across two points on a well and
calculates the heating effect within the reservoir, which in turn will reduce the viscosity of
heavy oils. The voltage generated (V) within the reservoir is calculated on the finite
difference grid used for the flow equations by solving Laplace's equation with boundary
conditions V=V0 on the electrode, V=0 on the earth electrode and no voltage flux on the
boundary of the grid.
Ñ(s × ÑV ) = 0
The heat supplied to the grid (W) is then calculated from the voltage field.
W = s (ÑV )
2
Resistivity
Rw is the water resistivity and is calculated using Arp's law, or input as a table of values as a
function of temperature.
(T ref + C)
Rw = Rref
(T + C )
If fluid does flow from PVT region to another, then the PVT description will always be that
defined for the region, rather than carried with the fluid.
Region List
PVT Files
Select the PVT file to be associated with the current region. The PVT files may be added to
or viewed. Generally, the PVT files are entered within the physical section.
RS - Gradient
This section is optional and can only be entered if the 'Variable Pb' option has been set for
the PVT. The 'Variable Pb' option provides the possible for multiple saturated oil tables and
a variable initial RS. The initial RS versus depth should be entered within this table. If this
table is not set, then a default Rs will be obtained from the PVT data entry screen. The
table is not extrapolated so sufficient depth range should be entered.
Temperature & Rs or Pb - this may be used to switch between Rs and bubble point for
data entry purposes. The data is always stored internally as Rs. The temperature is
required to enable the conversion between Rs and Pb for thermal PVT cases.
2.3.15.2Equilibration
This section initialises the reservoir for each equilibration region specified within the
reservoir section. Each equilibration region must have only one PVT, i.e. equilibration
regions must be a subset of the PVT regions.
The equilibration includes pressure and contact (oil/gas water/oil or water/gas) depths. The
pressure and contact depths are use during the initial reservoir equilibration to assign initial
pressures and saturations to all grid blocks.
Region List
Reference depths
One reference pressure is required at a reference depth for each equilibration region.
If a gas/oil contact is to be defined then the reference pressure will be the bubble point
pressure and does not require to be entered.
If an oil/water or gas/water contact depth is defined, then the reference depth and pressure
are only required if there is no gas/oil contact.
If no contacts are present, then a reference pressure and depth should be entered.
Although the reference depth can take any value, it should generally lie within the reservoir.
If a GOC is then calculated during equilibration then a gas cap will be present.
Thermal gradient
The thermal gradient must be entered for each equilibration region. The reference
temperature is the temperature at the temperature reference depth, and the gradient is the
initial thermal gradient (increasing with depth).
Initial wettability
The initial wettability is only required for models with relative permeability desaturation
controlled by adsorbed wetting agent. This model is enabled in the control section. A value
of -1 corresponds to initial low tension relative permeability, while a value of +1 corresponds
to initial high tension relative permeability. Intermediate values are possible and correspond
to intermediate (interpolated) desaturation.
Start status
Generally the model is initialised by equilibration using the specified contacts and initial
pressure defined in this section. If restart files are present within the REVEAL archive, then
these may be set using the 'Set Restart' option. Whenever, a REVEAL simulation is run,
the initialisation conditions specified will be used. The main menu option Run Simulation|
Restart Simulation... may still be used to over-ride the start conditions specified.
Additionally, the initial pressure, saturation, Rs and temperature may be explicitly specified.
If this option is selected, then the initial conditions will not generally be in equilibrium and
significant initial transient behavior may be expected.
It is possible to populate the user initialisation from a running simulation. At any time during
a simulation (e.g. at the start), the simulation may be paused and the user specified initial
data may be initialised from the main menu using the option Run Simulation|Generate a
User Restart Step. The user initialisation data may then be modified as required to alter
some initial values. To do this a time step must be completed - use the Do one step option
to completed a paused time step.
2.3.15.3User initialisation
This section is only available if user initialisation is specified in the equilibration section.
Data may be entered by selecting the <No Data> button, where either range or array data
may be entered. If any data is entered, then it should cover all active blocks within the
model. See the reservoir section to get information on how to use the range and array
selection methods.
The optional Reference conditions represent the pressure and temperature of the reservoir
at its initial equilibrated state (not the restart conditions). These are only used for rock
mechanic studies, where the insitu stress is defined relative to these conditions.
2.3.15.4Component initialisation
This screen is only available if more than three components (water, oil and gas) are present.
The initial concentrations of the trace components in their initial phase (aqueous phase for
most components) in mass fraction (component mass per unit mass of host phase).
Componentconcentrations
Select a component and enter its initial concentration. The concentration may be defined
over a number of range regions or for each grid block (array). See the reservoir section to
get information on how to use the range and array selection methods. Use the right mouse
button within the concentration input cell to toggle units between kg/kg and ppm.
This optional method may be used to modify a component's transport by effectively trapping
it in lower permeability blocks. The model is precisely the same as the sand trapping model
with a unit trapping efficiency and no permeability reduction. For example a gel component
may be excluded from entering low permeability blocks.
Electrical neutrality
Only used for water chemistry models, where electrical neutrality is required (all ions except
e-). Neutrality will be maintained internally by adding or removing the ion pair defined in the
water chemistry section, but the electrical neutrality of the initial concentrations of ions
entered may be tested and modified (usually by adding or removing H+, Na+ or Cl- ions)
after using the Calculate button. Alter the tolerance parameter to view the grids with charge
imbalances greater than a defined limit. Generally the electric neutrality should be better
than 0.05 charge/mole for all grid blocks. If the water is not electrically neutral, then this is a
strong indication that there has been a data entry or other error with the data.
2.3.16 Schedule section
2.3.16.1Well schedule
This section defines the schedule of well control (production and injection) and the time step
control.
Schedulelist
This lists the schedules that will be applied in chronological order. Select a schedule, then
all of the remaining data entered on this screen is applied separately for each schedule
entered.
It is possible to set the simulation to cycle over existing schedule entries in the list for a given
amount of time or until a constraint is breached. This is potentially useful for applications
such as WAG injection or polymer treatments. To create a cycle, select the Add or Insert
Sched./Cycle button. If there is more than one schedule prior to this in the list, you will be
given the option to create the new schedule as a cycle. Select from the list boxes the start
and end points of the cycle. REVEAL does not allow nested cycles, or cycles over schedule
entries that have conditional exit conditions (e.g. exit when water cut exceeds a certain
value). This is reflected in the validation of the list box entries. You may, however, enter a
conditional exit condition on the cycle itself.
Add Sched./Cycle - Add a schedule or cycle existing schedules at the end of the current list
of schedules.
Insert Sched./Cycle - Insert a new schedule or cycle existing schedules immediately before
the currently selected schedule.
Clear - Delete all of the schedules. If this is accidentally pressed, then Cancel the wizard to
prevent the deleted schedules from be saved.
Import from file - Schedules may be imported from an ASCII file with the following format,
all data is imported in the prevailing REVEAL units. The keywords are in capitals and the
names/values should replace lower case fields. The liftcurvename is the well liftcurve label
entered in the well section (the liftcurve must be already present in the REVEAL model).
This import method is largely superseded by the history method described below.
The time to the end of the current schedule, equivalent of the until statement, this follows the
well control to be applied for the schedule:
TIME time
The following figure shows the format of the text file which can be used to import the above
mentioned schedule.
(31/03/2007 = 39171 days since 01/01/1900; 01/01/2008 = 39447 days since 01/01/1900;
01/01/2009 = 39813 days since 01/01/1900)
View History - A well history may be imported or set up using this button. The history is not
applied to the schedule until the 'History->Schedule' button is used.
Restart file
A restart file may be generated at regular intervals or not generated at all. If a restart file is
generated it may overwrite the previous restart file or be added to a list of restart files.
It is recommended that for most models the restart files are suppressed. A restart file may
be generated interactively at any time during a calculation by pausing the simulation and
using the menu option Run Simulation|Generate restart step. If the simulation pauses
before the current time step is completed and the restart option is unavailable, use the Run
Simulation|Do One step command to complete the time step. The list of restart files may
be viewed or deleted using the menu option Project|Edit view project.
Suppress - When the Suppress feature is unselected, REVEAL will save the Restart files.
· The STANDARD (default) restart file stores only the data required to perform a restart and
should be used under most circumstances.
· A DEBUG restart file stores all current data structures (including workspace) and may be
very large and slow to write; the debug restart files should only be used for the fracture
IPR calculations or for diagnostic reasons if requested by Petroleum Experts.
· A BASIC restart file, which just contains the block pressures, saturations, Rs and
temperature and will occupy the least space.
Interval - set the time interval at which restart files are created. If there is no value defined
for the ‘Interval’ REVEAL will save the Restart file at each time-step. If there is a particular
value defined in the ‘Interval’ section, then REVEAL will save the restart files when the
current time since the last save exceeds the value entered.
Overwrite - select this switch to continuously overwrite restart files as the simulation
proceeds. If this option is used, then only the last restart file will be available.
Deleting Restart Files - It is possible to delete some of the Restart files by clicking on
Project | Edit / View Project. The list of Restart Files are displayed in this screen and if
required can be deleted from here.
This section sets the initial time step control and data entered is dependant on the solver
options (IMPES or implicit) used.
The first schedule must have an initial time step size, this should generally be set to a small
value, that will increase as the simulation progresses, this prevents a potentially large
number of retrys at the start of the simulation where transient behaviour may be severe.
Subsequent schedules may also have initial timesteps set, but this is not necessary.
General limits
The maxdt and mindt are minimum and maximum time step sizes and should not generally
be set. Sometimes the maximum time step size may be set to increase temporal resolution.
The limdT and limdP options are limits on temperature and pressure change during a time
step. Again these options should not generally be set, except in cases where rapid changes
in temperature or pressure are generating instability in the solutions obtained (e.g. large
oscillations in thermal fracture behaviour).
The volumetric error is the principal time step control parameter for the IMPES solver. It is
recommended that a value 1E-3 with 5 iterations or 1E-4 with 5 iterations is used. The
material balance volumetric error is defined as the fractional volumetric error at the end of
the time step (i.e. difference between porosity and total volume fraction of fluids present
within a gridblock calculated using the pressure and temperature at the end of the time
step). A smaller tolerance for the volumetric error may result in smaller timesteps and
require more solver iterations. Material balance iterations are not used with the implicit
solver, which only generates material balance errors as a result of explicit thermal effects
and incomplete convergence.
The saturation overflow limit is only required for the IMPES solver, and limits saturation
changes near the residual saturations of fluids, preventing undershoot in saturation
(saturations below the residual saturation). The default value is 0.01 and may be reduced to
0.001 in cases where very mobile phase saturations are oscillating near the residual
saturation (e.g. production below the bubble point). A reduction of this limit will result in
smaller timesteps being used and slow the simulation to improve stability.
The limit dC option only applies to the IMPES solver and sets a limit on the fractional change
in trace component concentrations within a time step. This option should generally not be
used. It may be applied to reduce timesteps near large concentration gradients to limit
numerical dispersion in some models.
Well schedule
Data is entered for each well by selecting the well in the list and selecting the well to be
closed, producing or injecting.
Closed
This well plays no part in the simulation. If crossflow is required for a well that has zero rate,
then set the well as a producer with zero rate.
Produce
A producer well, may be set as fixed PWF, fixed rate, fixed THP or fixed downhole rate. A
fixed rate well may be fixed liquid (oil+water), fixed oil, fixed water or fixed gas rate.
Inject
An injector well, may be set as fixed PWF, fixed rate, fixed THP, voidage or fixed downhole
rate. A fixed rate well may be fixed liquid or fixed gas rate, depending on the fluid defined
using the Injection fluid button.
A voidage injection well has a voidage fraction defined. This voidage fraction refers to the
reservoir volume removed by one or more producers. The producers relating to the entered
voidage fraction as set up using the Voidage wells button.
For an injection well, the bottom hole temperature and composition must be entered. If an
injection curve generated by PROSPER has bottom hole temperature data, then this may be
used by selecting the Use TPD Temp option. Use the Injection fluid button to set the
injector as water or gas and set the concentration of any trace components in the injection
fluid. Electrical neutrality for ions present in the injection water for water chemistry
calculations can be checked. See the initialisation and water chemistry sections for more
information. Generalised liquid (oil+water injection) or generalised gas (gas+water injection)
may also be defined. It should be noted that the 3-component PVT describing the water, oil
and gas properties is used for all injection and reservoir fluids. Therefore an injected gas is
always identical to a produced gas.
The relative permeability model for the injection must also be set. The options are:
1. Standard (the default model). In this case, the fluid mobility for a connected grid block is
given by the sum over phases of the rel perm for that phase divided by its viscosity.
2. End point. The relative permeability used will be the end point of the rel perm curve for the
injected phase.
3. Fixed. Enter a fixed value for the relative permeability that will be used in injection.
Options 2 and 3 are not available if wellbore friction or well cross-flow are being modeled
due to the possibility of multi-component injection.
If the injector has a filter-cake defined, then it may be cleared at the start of the current
schedule by selecting the Clear Filter Cake option. When the filter cake is cleared (an
assumed acid treatment), the model is returned to its initial state and filtrate will build up
from zero again as the injection proceeds.
Tubing Source
If a well has been defined as a multi-lateral with wellbore friction, then it is possible to use
this option to inject an additional fluid (e.g. diluent) into any location within the well (tubing or
annulus). The injection control must be of fixed pressure or rate (liquid, gas or reservoir)
and fixed temperature (or heat for steam). A negative injection rate will result in fluid
removal.
A well segment is defined within the multi-lateral well data entry, with each row of data entry
representing sequential segments. The source is added at the end of the given segment.
The total well rate reported is the rate entering or leaving the reservoir. The rates set using
this method are in addition to the main tubing rate set in the main well schedule control
window.
The Source Number refers to the possibility of multiple sources defined within the well.
Tubing Pump
If a well has been defined as a multi-lateral with wellbore friction, then it is possible to use
this option to apply a pump performance curve within any segment of the well (tubing or
annulus). For an injector the pump head is generated from heal to toe (i.e. in the presumed
direction of flow), and reversed for a producer.
A pump attached to a well is deleted if the Lateral Segment is set to None. The pump
characteristic curve is only deleted when the Delete Pump option is selected. Use Add
Pump to create a new pump characteristic curve. A pump characteristic may be used for
more than one pump in different schedules.
The characteristic pump type name may be changed by editing it in the Pump Type
dialogue.
The Pump Number refers to the possibility of multiple pumps defined within the well.
The following schematic shows possible methods to inject using tubing and annular flow.
Lift curves
For any control mechanism (required for Pws control) a lift or injection curve may be
associated with the well. Use the Import button to import the lift curve. Ensure that the
curve type (e.g. Oil - naturally flowing for an oil producer or Water injector for a thermal
fracture well) matches the well. A label name may also be given to the lift curve. The lift
curve should cover the full range of possible condition (GOR, water cut, rate etc.) for the
model being investigated.
Previously imported lift curves may be assigned to several wells without re-importing the lift
curve.
Constraints
Use the Constraints button to enter constraints or abandonment conditions on the well.
If an constraint is violated, then the control will change. For example, if a maximum Pwf is
exceeded for a fixed rate injector, then the control will switch to fixed Pwf injector until the
rate rises above the initial rate and the Pwf falls below the constraint when it will revert to
fixed rate.
If an abandonment condition is violated, then the well will be closed, with no cross-flow.
Perforations
For wells that have completions defined by completion table or vertical well (not multilateral)
use the Perforations button to enable/disable or modify the perforation properties.
This option is only partial in its implementation, and it is therefore recommended that if
perforations are scheduled to change then multiple wells representing the different
perforations are modelled.
Wellbore heating
If a microwave wellbore heating model is present, then the heating can be turned on and an
electrode voltage applied. If the heating is turned off, then no heating will take place.
If the electrical wellbore heating model is present, then it may be turned on and maximum
heater power and maximum heater temperature specified.
Efficiency - downtime
A well efficiency value is applied to the cumulatives, but not the instantaneous peak well
rates. A value of 1.0 represents zero downtime, while a value of 0.9 represent 10%
downtime. The input and reported rates will be the peak rates and the reported cumulatives
and reservoir material balance will be the mean rate; mean rate = efficiency*peak rate.
Steam
If a steam model is present, then the injection fluid is assumed to be steam (set Injection
Fluid to water), and an enthalpy rather than temperature is required. Use the Steam
Calculator button to calculate steam enthalpy as a function of pressure and quality, and
view its position on the steam phase envelope. For all injection fluids (e.g. generalised liquid
or gas), the injection temperature is defined by the specific enthalpy of water entered.
If a well has well-bore friction and heat transfer set (multi-lateral well model) and is an
injector with no wellbore heating model, then an option to keep the heat content constant
within the tubing is displayed. With this option set, conduction losses from the tubing are
only applied to the reservoir and not to the tubing fluid. This approximation may be used to
model a well that is heating (or cooling) a reservoir by recycling a fluid; the reservoir heating
is supplied by an assumed fluid that is not being injected.
Exit conditions
The schedule will run until an exit condition is met. Use the left mouse button to select
options in the exit condition table. An exit condition will be until a given time in days/date, or
for a given time in days.
History
This screen may be accessed using View History or History->Schedule. The history
screen should only be used with a dated calculation. See Options|Dates on the main
REVEAL bar to set a non-dated run to dated.
OK - save the current history and exit the screen. If the history screen was enabled using
View History, then the data is saved and control returned to the schedule. If the history
screen was enabled using History->Schedule, then the data is saved and the current
schedule is deleted and overwritten with data from the history screen.
Current Well - data for each well is defined. If data is not present, the well is shut-in. As
dates added to the history are automatically added for all wells.
Temperature - Injection wells require an injection temperature that may not be present in
some imported history schedules. This should be set, then applied to all wells, or just the
current well using the buttons Set All Well Temperatures and Set Current Well
Temperature. The temperatures will be set for producing and injecting wells, but only used
in the simulation schedule for injecting wells.
Clear Current Well - delete all data for current well. The dates will remain since these are
defined for the remaining wells.
Clear All Wells - delete all the data including the dates. This is recommended before any
schedule data is imported.
Export Current (All) Well to File - the data will be exported to a text file that may be
manipulated in EXCEL for example.
Import Current (All) Well from File - data from a text file will be imported. It must have
exactly the same format as the exported text. Therefore it is recommended to export some
data to a file, modify the file, then re-import the modified data. Note that data is imported
using the current set units.
This method is designed to import a history match, NOT a prediction schedule, since these
will typically be more complex with group control and additional constraints.
You will be prompted to specify whether the file is using metric or field units.
Note injection temperatures are not imported, and non standard history schedule files may
not be read correctly.
If a well control is defined at one date, this control method will continue through subsequent
dates unit it is stopped or modified by another well control statement.
Status
This option may be used to change the well control method that will be set in the REVEAL
schedule.
It may be set for a single well or all wells for which applicable data is present (for example a
fixed rate injector cannot be have its status changed to fixed Pwf producer).
2.3.16.2Thermal fracture
This screen sets the thermal fracture update options, and is only displayed if a thermal
fracture is present. The update options are applied separately to each schedule and each
thermal fracture.
Fracture Schedules
The fracture schedules match the schedules defined for wells. Select each schedule to view
the fracture schedule.
Select each fracture in the list to update its update criteria. The criteria define how often (if
at all) the fracture calculations are performed. The most frequent and recommended default
is every time step.
Update - if the fracture update is set to off, then no fracture calculation will take place for the
current schedule. If it is set to on, then three update criteria are provided. The first criteria
to be met will cause the fracture shape to be updated. If an update criteria is left blank then
that criteria will not be used.
If more than one fracture is associated with a well, then a fracture update will be performed
including all fractures associated with the well every time any of the fracture update criteria
are met.
Timesteps - the fracture will be updated every given number of timesteps. The default is 1,
which updates the fracture every time step and is recommended.
Days - the fracture will be updated at a constant frequency. This is optional and only has an
effect if the timesteps is set to a value larger than 1.
Pressure - the fracture will be updated when the pressure at the centre of the fracture
changes by a fixed amount. The fracture model calculates the fracture size, grid connection
factors, central pressure and injection rate every time it is updated. The well constraint was
used during the fracture update to calculate the fracture pressure, injection rate and
connection factors. Therefore, after subsequent normal iterations (without fracture update
using the same connection factors), a change in the fracture pressure reflects changes in
the reservoir arising from the injection and is a good measure of when the fracture should be
undated. This option is recommended with an update pressure of about 50 psi. If the well
connected to the fracture is controlled by a constant Pwf, then this update parameter will not
result in fracture updates. This is optional and only has an effect if the timesteps is set to a
value larger than 1.
Grid refinement is not available for radial or curvilinear grids, or using the original IMPES
solver. Grid refinement is incorporated directly into the solvers with no additional iterations
required.
Every REVEAL simulation has a master grid, which consists of a topologically regular
hexahedral grid, with NX, NY and NZ blocks in the X, Y and Z directions. Therefore a total
of NX.NY.NZ grid blocks are defined and may be identified by three integer indices (I,J,K).
Some of the master grid blocks may be inactive (reference porosity set to zero). Grid
refinement is achieved by defining a set of contiguous (touching) master grid blocks, and
then defining refinement parameters for the refined regions. More than one refined region is
possible.
A maximal range is defined for each refinement, it includes all of the master grid blocks
contained within a region (Imin,Jmin,Kmin) to (Imax,Jmax,Kmax), where subscripts min and
max are the minimum and maximum master grid indices in each principal direction for the
refined region.
The following graphic provides an example. Refinement (yellow blocks) is defined for (1,3,4)
to (4,4,4) and (3,5,4) to (7,5,4). The maximal range is (1,3,4) to (7,5,4), (outlined in red).
1 Refined blocks must consist of a connected (contiguous) selection of master grid blocks.
2 The boundary of each refined region must either be coincident with the master grid
boundary or be surrounded by master grid blocks, not other refined regions i.e. refined
regions must not touch each other. This limitation is currently extended to preclude any
two refined regions that have any overlap in their maximal range.
1 Define the extent of the refined region within the main grid.
The extent of the refined region is defined within the reservoir section of the main input
script.
2 Define wells
Any wells or fractures present within a refined region are identified in the wells section of the
main input script and must be specified as multi-lateral well that means they are described
by a deviation survey rather than a list of connected blocks.
The well control (fixed Pwf, Pws or rate and constraints) for all wells is controlled within the
schedule section of the main input script.
The refined grid geometry and properties assigned in a separate refinement script.
This is achieved by selecting refinement input script, which has the same form as the main
input script, using a script generating wizard, except that fewer sections are required. The
following pages detail the input options required to be entered in the refinement script.
relperm section - initialise end point scaling values for the refined region if present
initialisation section - initial component concentrations within refined region
The first screen is used to enter a label for the refinement. Generally it is best to use a
separate label for each refinement datablock. Enter a unique label name and select Edit
Refinement. Once the refinement has been entered use the Plot and Validate buttons to
check the refinement coverage.
The second screen defines the grid refinement. The coverage section at the top of the
screen identifies the maximal range for the refinement. The maximal range is listed for each
principal direction (X,Y and Z) and covers blocks on the master grid. Only some of the
blocks implied by the maximal range may actually be refined (e.g. if the refined region is not
a complete hexahedral).
The refinement is defined separately in the X, Y and Z directions. Select the direction for
data to be entered. X, Y and Z direction data must all be entered. For each direction, data
must be entered for each master grid block listed in the coverage, regardless of whether
refinement is actually required.
The refinement data is therefore entered for each master grid block in each of the three
principal directions. Refinement data takes the form of normalised ratios to subdivide the
master grid block. A value of 0.5 will subdivide the master grid block into two equal blocks,
values of 0.2, 0.4, 0.6 and 08 will divide the master grid block into five equal blocks, and if
no data is entered, then no refinement is recorded. In this last case a warning will be
applied, but the simulation may be run.
In the following example, the master grid is 15 by 15 by 1 (NX by NY by NZ) and the refined
region is identified as including master grid blocks (9,10,1) to (10,10,1) and (9,9,1) to (9,9,1)
representing a simple 'L' shape. Therefore, the maximal range in the X, Y and Z directions
are (9 to 10), (9 to 10) and (1 to 1). The following refinement data was entered.
The table entry for X direction, master grid block 10 is shown below.
Generally, Use Parent Grid Values should be used to set refined block properties to the
parent master grid properties; this is the default option. Use the Plot and Validate buttons
where available to check coverage. See the reservoir input script for the master grid input
script for more information entering data on these screens.
Porosity - either enter porosities for the refined grid using the same input method as was
used for the master grid, or select the Use parent grid values button, which will copy the
values from the master grid into the refined grid variables.
Permeability - either enter permeabilities for the refined grid using the same input method
as was used for the master grid, or select the Use parent grid values button, which will
copy the values from the master grid into the refined grid variables. Note that if parent grid
properties are required, then these should be set for each of the X, Y and Z directions
separately using the tab at the bottom of the screen.
Absolute transmissibility - this is optional, the default being that the transmissibilities are
calculated from the grid geometry and permeability.
Net to gross - this is optional, the default being unit net to gross ratios. Either enter net to
gross ratios for the refined grid using the same input method as was used for the master
grid, or select the Use parent grid values button, which will copy the values from the
master grid into the refined grid variables.
Pore volume multiplier - this is optional, the default being unit pore volume multipliers.
Either enter pore volume multipliers for the refined grid using the same input method as was
used for the master grid, or select the Use parent grid values button, which will copy the
values from the master grid into the refined grid variables.
Rock type - enter the coverage of each rock type within the refined grid. Rock types are
defined within the main grid script and will be listed in the rock list. Ensure full coverage of
the refined region.
PVT region - enter the coverage of each PVT region within the refined grid. PVT regions
are defined within the main grid script and will be listed in the rock list. Ensure full coverage
of the refined region.
Equilibration region - enter the coverage of each equilibration region within the refined
grid. equilibration regions are defined within the main grid script and will be listed in the rock
list. Ensure full coverage of the refined region.
Connate water and gas saturations - this is optional, the default being to use the critical
saturations defined in the relperm section of the master grid.. Either enter connate
saturations for the refined grid using the same input method as was used for the master grid,
or select the Use parent grid values button, which will copy the values from the master grid
into the refined grid variables.
File
Options
Edit
Input
Project
Run Simulation
Results
View
Window
Help
2.5.2 File
New open a new REVEAL archive. A REVEAL archive is all of the input
data, associated files (PVT lift curves etc.) and results that
archived into a single file with extension rvl.
Open... open an existing REVEAL archive.
Close close the current REVEAL archive.
Save Project save the current REVEAL archive.
Save Project As... save the current REVEAL archive with a new name.
Save Scripts save changes made to the input script to the current REVEAL
archive, does not save result data.
Print... print the input script or 3D display, depending on which window is
active.
Print Preview preview and print the image to printed.
Print Setup... initialise the printer and associated options.
Set Data Directory set the default directory tree that will be used for Open and Save
operations.
Use Last Directory if this option is selected, then the last directory used will be the
default directory for Open.
Purge Temp Directory this will delete all temporary files created by REVEAL. These
potentially large files are normally deleted at the end of a session,
but remain if REVEAL terminates unexpectedly and may build up
over time.
Preferences set some preferences, including:
default data recording frequencies
water chemistry database file
memory allocation
plotting style (connected or step) and backwards compatibility
option for compressed plot data storage, also precision for
reported output
3D view options (left or right handed orthogonality)
Register Imported Components this registers the drivers used to import ECLIPSE and VIP
models. This is performed automatically during installation, but
may be required if several versions of REVEAL are present.
Toggle Enable Menus this is on by default and toggles whether all of the menus are
available.
(files) list of the previous 10 REVEAL archives, select one to open it.
Exit end the REVEAL session.
2.5.3 Options
Units set or change the units system to be used, all data in the input
script and wizard will be changed to reflect changes to the units.
Dates Use either days or date to control the schedule.
ICD Database Add equipment to the Equalizer database.
If the current REVEAL window is the 3D graphics then the following menu options are
available.
If the current REVEAL window is the 3D graphics then the following menu options are
available.
Select Multiple Blocks select some blocks using IJK coordinates to view 2D plot of
variables (against time). Use Results to view the selected blocks.
Unselect All Blocks deselect all blocks selected.
2.5.5 Input
Script Wizard start the input wizard, for a single section or multiple
sections.
Control start the wizard at a selected screen in the control
section.
Reservoir start the wizard at a selected screen in the reservoir
section.
Physical start the wizard at a selected screen in the physical
section.
Relative Permeabilities start the wizard at a selected screen in the relperm
section.
Aquifer start the wizard at a selected screen in the aquifer
section.
Mobility start the wizard at a selected screen in the mobility
section.
Export Grid data Export all of the grid geometry and petrophysics to an
ASCII file.
Clear grid results Delete all of the 3D graphical results to reduce the size of
the REVEAL archive.
Save well and reservoir results Save the current stream well and average well results.
Existing result streams may also be renamed or deleted.
Delete well and reservoir resultsDelete all saved well and average reservoir result
streams.
The grid data is output to a text file using the following keywords (where applicable). See
ASCII import for the definition of these keyword.
DIMENSION
CORNERS
PORO
NTG
PERMX
PERMY
PERMZ
MULTX
MULTY
MULTZ
TRANX
TRANY
TRANZ
MULTPV
SATNUM
PVTNUM
EQLNUM
FIPNUM
SWCR
SWU
SOWCR
SOGCR
SGCR
SGU
KRW
KRO
KRG
SWL
SGL
KRORG
KRORW
KRWR
KRGR
SWLPC
SGLPC
The following user initialisation arrays are also output if data is present.
SWINIT
SGINIT
POINIT
RSINIT
TEMPINIT
END
Debug view the debug or water chemistry debug files. These
text files contain diagnostic information not displayed
elsewhere.
If the current REVEAL window is the 3D graphics then the following menu options are
available.
Results of Selected Cells display and plot the results (2D variable v time) of
selected data cells in the 3D display.
2.5.9 View
Toolbar enable/disable the run/graphics toolbar towards the top of the main REVEAL
window.
Navigator enable/disable the Help Viewer and Navigator window on the left of the
REVEAL window.
2.5.10 Window
Cascade cascade the REVEAL windows.
Arrange Icons arrange any iconified windows.
Tile vertically tile the REVEAL windows vertically.
Tile horizontally tile the REVEAL windows horizontally.
(windows) bring a selected window to the foreground.
2.5.11 Help
Help Index Start the online help at the first page (Contents).
Help Search Start the online help.
Script On-Context Brief description of keyword in input script, move the mouse over
the script to view the on-context help.
About REVEAL... REVEAL version and Petroleum Experts contacts.
Enter the import facility by invoking Input|Import from simulator or ASCII file.
The import procedure consists of an Import Wizard of three screens to take you through the
import process.
Select from the top the format that the data is in. At the moment the following formats are
supported: ASCII, Eclipse binary, Eclipse ASCII, VIP MAP, and VIP VDB (split or non-split).
The details of this screen obviously depend on the format selected - for more information go
to the specific sections in the help.
For each of the import formats, the second screen presents options specifying which
properties are to be imported.
A status screen will be displayed: this tells you whether the import of each section has been
successful or not. If any section has failed to import, highlight that section in the list and
press Details. A message box will be displayed with the reason for the failure.
On the right hand side of the status screen are some notes on the data that has been
imported. See the individual sections on the data source in question for more information.
4. Additional import
Some OpenServer scripts may be provided by Petroleum Experts on request for well
import.
2.6.2 Importing from ASCII
A single text file is required for the ASCII data import option. The text file to import should
be entered on the first screen in the import wizard. The units for the data should be those
currently selected for the REVEAL case.
The following keywords and data are required. Alternative syntax are specified in brackets.
Comments starting with 'C ' and '! ' are ignored.
Multiple equal numeric entries may be specified using a '*' e.g. '3*0' is equivalent to '0 0 0'.
DIMENSION (DIMENS) (SPECGRID) - followed by the grid dimensions NX, NY and NZ.
The following keywords and data are optional for grid block data. For each case there will
be NX.NY.NZ entries, and they will be ordered cyclically in the X, Y then Z directions with the
X direction cycling fastest.
NODES - followed by the node coordinates X,Y,Z for each node. There will be a total of
(NX+1).(NY+1).(NZ+1) nodes, and they will be ordered cyclically in the X, Y then Z directions
with the X direction cycling fastest.
NODES_8PT (CORP)- followed by the node coordinates X,Y,Z for each node. There will be
a total of (2*NX).(2*NY).(2*NZ) nodes, a total of 8 corner nodes per block. The 8 nodes for
each block are entered sequentially, and the blocks are ordered cyclically in the X, Y then Z
directions with the X direction cycling fastest. Therefore there will be 24 coordinates entered
for each block. The 8 corner nodes should be ordered as shown below.
4
3
Y
1 2
8
7 X
Z
5 6
CORNERS - followed by the X, then the Y, then the Z coordinates. The ordering is identical
to the NODES_8PT option, except that all of the X, Y and Z coordinates are input
sequentially, rather than (X, Y, Z) for each node. This is the CMG format.
MAPAXES - followed by the two (X,Y) coordinates of the origin (C1, C2) and the two
coordinates of the X axis (X1, X2) and the two coordinates of the Y axis (Y1,Y2).
POROSITY (PORO)- followed by the grid block porosities (inactive blocks have a zero
porosity).
TRANSX (MULTX) - followed by the grid block transmissibility multipliers in the X direction.
The transmissibility multipliers are applied to the block face in positive direction.
TRANSY (MULTY) - followed by the grid block transmissibility multipliers in the Y direction.
TRANSZ (MULTZ) - followed by the grid block transmissibility multipliers in the Z direction.
ABSTRANSX (TRANX) - followed by the absolute grid block transmissibility values in the X
direction
ABSTRANSY (TRANY) - followed by the absolute grid block transmissibility values in the Y
direction
ABSTRANSZ (TRANZ) - followed by the absolute grid block transmissibility values in the Z
direction
KRWR - followed by the 3 point endpoint scaling critical water relative permeability
KRORW - followed by the 3 point endpoint scaling critical oil/water relative permeability
KRORG - followed by the 3 point endpoint scaling critical oil/gas relative permeability
KRGR - followed by the 3 point endpoint scaling critical gas relative permeability
ROCKTYPE (SATNUM) - followed by the grid block rock types (integers > 0).
PVTREG (PVTNUM) - followed by the grid block PVT region identifier (integers > 0).
EQLREG (EQLNUM) - followed by the grid block equilibration region identifier (integers > 0).
FIPREG (FIPNUM) - followed by the grid block fluid-in-place region identifier (integers > 0).
DIMENSION
222
NODES
3*0
100 0 0
200 0 0
0 100 0
100 100 0
200 100 0
0 200 0
100 200 0
200 200 0
0 0 100
100 0 100
200 0 100
0 100 100
100 100 100
200 100 100
0 200 100
100 200 100
200 200 100
0 0 200
100 0 200
200 0 200
0 100 200
100 100 200
200 100 200
0 200 200
100 200 200
200 200 200
POROSITY
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
PERMX
100
100
100
100
100
100
100
100
NETTOGROSS
11111111
TRANSZ
100 100 100 100 100 100 100 100
NNC
1
1 1 1 2 2 2 0.3
END
2.6.3 Importing wells from ASCII
A single text file is required for the ASCII import of multi-lateral wells data.
The units for the data should be those currently selected for the REVEAL case.
The following keywords and data are required. All fields are required an no additional data
should be present within the text file.
For each well the keyword WELL should appear first and the keyword END should complete
For each lateral, the keyword LATERAL should be used first, followed by the LATDATA data
for the lateral.
After all of the lateral data (deviation survey) is entered, the PERF and PERFDATA
keywords may be used consecutively for each perforation in each lateral. The perforations
should be ordered sequentially.
Further information on the data can be obtained by looking at the multilateral well wizard.
Keywords
Definitions
LATDATA required keyword. Only the X Y Z MD data is required for the first point of the
lateral deviation survey. Subsequent tubing data (roughness ID wellHTC
heaterHTC) refers to the well segment connecting lateral coordinate points.
X X coordinate of deviation survey.
Y Y coordinate of deviation survey.
Z Z coordinate of deviation survey.
MD measured depth of deviation survey.
roughness well roughness (required for all lateral points apart from the first).
ID well internal diameter (required for all lateral points apart from the first).
wellHTC well heat transfer coefficient (required for all lateral points apart from the first - if
this data is not required a 'dummy' value should be entered).
heaterHTC well electrical heater heat transfer coefficient (required for all lateral points
apart from the first - if this data is not required a 'dummy' value should be
entered).
Example
WELL Well2 1 0 1 1 1 1
LATERAL 1 0
LATDATA 950 50 50 0
LATDATA 950 50 75 25 0.0006 4 8 8
LATDATA 850 150 100 168.6140662 0.0006 4 8 8
PERF 1
PERFDATA 25 168.61 0.354 0 1
END
WELL Well3 1 0 1 1 1 1
LATERAL 1 0
LATDATA 950 450 50 0
LATDATA 950 450 100 50 0.0006 4 8 8
LATDATA 900 400 150 136.6025404 0.0006 4 8 8
LATDATA 800 250 175 318.6052876 0.0006 4 8 8
LATDATA 400 150 175 730.9158502 0.0006 4 8 8
LATERAL 2 1
LATDATA 600 200 175 0
LATDATA 300 450 225 393.7003937 0.0006 4 8 8
LATERAL 3 1
LATDATA 500 175 175 0
LATDATA 520 55 215 128.0624847 0.0006 4 8 8
LATDATA 525 25 255 178.3118629 0.0006 4 8 8
PERF 1
PERFDATA 318.6052876 524.7605689 0.354 0 1
PERFDATA 627.8382095 730.9158502 0.354 0 1
PERF 2
To import the geometrical and physical data (including tabular data), the Eclipse files
required are the binary output grid geometry (*.grid or *.grd or *.egrid) file and initialisation
file (*.init or *.ini). The *.init file is generated by ECLIPSE using the keyword INIT. The *.
egrid file is generated by ECLIPSE using the keyword GRIDFILE. Formatted version of
these files can also be read (.fgr and .fin). See the Eclipse manual if these files have not
been generated.
To import the restart data (solution and well data) restart file(s) will be required (*.rst or *.
unrst). These may be in individual or unified format (this must be specified on the load
screen).
The importer can also read the ASCII deck to retrieve the corner points to a higher precision
(ZCORN & COORDS). This is useful when corner points are offset to a high starting value,
meaning that single precision calculations on the transmissibility can be in error. To read
the corner points directly, select the 'Read grid from COORD/ZCORN.. option), and give the
importer the name of the base text file of the Eclipse import. Any 'Included' files in this file
will be opened automatically, although you must ensure that the paths are set correctly to
allow the importer to find the relevant files. Note that the $DIR Eclipse environment variable
will be replaced by the importer internally by './'.
If external transmissibilities and pore volume multipliers are used then the single precision
corner point geometry is sufficient for all internal calculations with the following exception.
The calculation of multi-lateral well grid intersection where the well segments are less than
about 10-7 of the X or Y grid coordinate values may fail if the single precision (egrid) binary
import is used. In that case, either import using the ZCORN & COORDS high precision
import or increase the well segment lengths. A large number of small well segment lengths
should be avoided in any case for performance reasons.
There is no direct analogue to the REVEAL rock type within Eclipse. Rock type arrays can
be imported optionally from the SATNUM, PVTNUM, or EQLNUM arrays.
Rock compressibilities can only be imported if a rock type array is imported from the
PVTNUM data in Eclipse. (This is because there should be a rock compressibility value
defined for each individual value in the PVTNUM table). The rock compressibility is only
available if the rock compaction facility is not being used in the Eclipse data set.
Note also that the rock compressibilities are set at a given reference pressure. This
reference pressure is not imported into the REVEAL data set and should be set manually if
required. This is because the REVEAL reference pressure is used in calculations other than
that for rock compression.
Relative Permeabilities
In REVEAL, residual saturations, relative permeabilities, and capillary pressures are all
dependent on a defined rock type. Each rock type has a set of residual saturations for all
phases, and for each set of residual saturations there will be a set of capillary pressure
tables and relative permeability tables. There may be more than one set of rel perm tables
for each set of residual saturations - indeed, this would be required if you were using
directional rel perms.
In Eclipse, there is no direct analogue to the REVEAL rock type. Arrays such as SATNUM
and PVTNUM have similar meanings but are used in different ways within Eclipse (for
example, SATNUM is used to specify rel perm tables, PVTNUM is used to specify separate
PVT areas and, optionally, rock compressibility values).
For this reason, no attempt is made to assign the imported rel perm data to any particular
rock type regardless of whether the rock regions have been defined or not. Each rel perm
table (of which there may be several) is assigned to All Rock Types, and it is up to the user
after the import has been carried out to assign the rel perms to the required rock region. See
the Relperm section on the input wizard for more information on how to do this.
For Eclipse two phase systems, REVEAL will generate dummy rel perm tables for the
phases that are not present in the simulation. These, of course, will not affect the calculation
if the phase in question remains absent.
PVT
REVEAL imports oil or gas PVT data from Eclipse. It is not currently possible to import an
Eclipse condensate PVT.
The Petroleum Experts black oil PVT module consists of two sections: a correlation data
set and a tabular data set. If both sets are present, the tabular data is used in preference:
the correlations are used to fill in 'gaps' in the tabular data. When a PVT table is imported
from Eclipse, it is expected that all the required tabular data will be present and so there will
be no need for the correlation data. Dummy correlation data is generated by the import
process: this should not affect the PVT calculations.
The REVEAL PVT is always three phase (water, oil, and gas). It is nevertheless possible to
import Eclipse 'dead oil' (i.e. no gas phase or no dissolved gas) cases: in these situations a
nominal low value for Rs is provided for the saturated tables and no undersaturated tables
are generated.
When undersaturated tables are used by REVEAL, a controlled miscibility setting must be
provided by the user. This determines the rate at which gas will dissolve in the oil if the
reservoir is pressurised. The import process sets this value to infinity (i.e. gas completely re-
dissolves if it can): the user is free to change this value after the import. See Eclipse
keyword DRSDT.
Eclipse PVT tables are isothermal - REVEAL tables are not. It is possible in REVEAL to
generate several saturated tables (each with up to 5 undersaturated tables 'hanging' from
each) for various temperatures. When the import is carried out, only one saturated table will
be generated. The temperature for this table will be the reference temperature for the
simulation if specified, or 100 degrees F if not.
Eclipse may contain several PVT tables (corresponding to the PVTNUM array). REVEAL
only uses one black oil PVT. After the import the status screen will display the PVT files that
have been generated by REVEAL. Select the PVT file that you would like to use in
subsequent REVEAL simulations. The other PVT files will remain within the archive and can
be swapped into the simulation at a later date.
When a 'live' oil PVT is imported, you must tell REVEAL the initial bubble point pressure for
the reservoir. The is used to calculate the initial Rs from the saturated curves that have been
imported.
EndPoint Scaling
The endpoint scaling saturation arrays corresponding to the Eclipse keywords SWL, SWCR,
SWU, SOWCR, SOGCR, SGL, SGCR and SGU may be imported. Additionally, the relative
permeability endpoint scale factors KRW, KRO, KRG, KRORG, KRORW, KRWR and
KRGR, and capillary pressure lower limits SWLPC and SGLPC may be imported. Check for
Well Data
This is imported as a table over completed blocks (ijk) with connection factors as calculated
by Eclipse.
Solution Data
A REVEAL format restart file will be generated from which simulation restarts can be run.
See the Run Simulation menu item for more information.
Control section
Eclipse may be run in 5 point or 9 point mode; its default is 5 point, whereas the default in
REVEAL is 9 point.
Reservoir section
The non-neighbour connections associated with faults are imported directly, whereas the
NNCs associated with pinchouts are set by REVEAL. Check that the Eclipse keywords
(GAP etc.) associated with the PINCH command correspond to the options set on the NNC
screen in the reservoir section. If the externally imported transmissibilities are being used,
then the pinchout connections will automatically be generated according to the imported
model and the pinchout data specified will not be used.
Physical section
Thermal properties are not imported and should be set, even for isothermal runs. For
thermal calculations the PVT should be reviewed and thermal dependence added.
Imported metric PVT may have slightly different properties depending on the metric system
imported, since the definition of standard conditions varies between countries that use
metric units. This difference is however small.
The relative permeability tables should be associated with the relevant rock type. Select
each relperm table in turn then select the rock types to which it applies. Often, there is a
simple on-to-one correspondence.
If J-Leverett capillary pressures are required then this option should be set, and the default
oil/water interfacial tension set in the physical section. If J-Leverett capillary pressures are
used, then check that the values have not been altered by a units conversion before
modifying the capillary pressure method.
Aquifer section
Numerical aquifers are imported directly, since they consist of standard gridblocks with large
pore volumes. However, analytical aquifer models require to be set up manually in REVEAL.
Wells section
Check that the cross flag was set; it is set by default in REVEAL.
With VIP import, check the well data is imported correctly, since some of the well
specification methods in VIP are handled differently.
Initialisation section
Set the Rs versus depth table. This data is may not be imported (only imported if the table
is Rs v depth, not Pb v depth) and should be obtained from the original deck for each PVT
region.
Schedule section
Schedule data is not imported directly and simple comparison runs should be performed to
validate the imported data. ECLIPSE history match data may be imported from the
schedule section.
This data can also be imported using the ASCII data import.
The units for the data should be those currently selected for the REVEAL case.
On the first import wizard screen select the Eclipse (ASCII) option from the drop down list.
On the resulting screen you must specify the dimensions of the grid that you are about to
import, as this data may not be present in the grid file that you specify later on. The table on
the lower part of the screen allows you to enter several ASCII files that contain the data for
different areas of the grid. The columns of the table are as follows:
Box definition - x1, y1, z1, x2, y2, z2, 'all grid': These define the sub-region of the total
grid that is to be imported from the ASCII files that follow. Alternatively, click 'all grid' if the
ASCII files contain coordinates over the entire grid.
ACTNUM file (optional): If you wish, you may specify a file which contains the ACTNUM
array for the grid so that only coordinates of active blocks are imported
COORD file: This file contains the COORD card of the Eclipse deck.
ZCORN file: This file contains the ZCORN card of the Eclipse deck.
Note that the VIP analogues of PVTNUM, SATNUM, and EQLNUM are IPVT, ISAT, and
IEQL.
Two different VIP formats are supported. For any format the import process starts by
selecting 'Input | Import from simulator or ASCII file' from the main menu.
1. MAP data
To load data of this format, select 'VIP MAP format' from the drop down list at the top of the
screen. Enter the root directory for the case under 'Directory'. Enter the files to read: the
'core file name' is the ASCII file ending 'i.dat' (the 'i.dat' will be appended automatically). The
'core file MAP name' is the binary file ending '.map'.
If you choose to import restart/solution data then check the box marked 'Load Solution/
Restart data'. You will then have to fill in equivalent fields to those above for the 'exec' data.
2. VDB data
This format can appear in two different but equivalent forms - VDB files from VIP are either
'flat' (the data is archived into a single .vdb file) or 'split' (the vdb file is actually a separate
directory under Windows).
First determine whether you have a flat or split format VDB file and check the 'Split VDB file'
box if it is necessary.
To load data of this format, select 'VIP VDB format' from the drop down list at the top of the
screen. Enter the root directory for the case under 'Directory'. Enter the vdb file name (the
extension .vdb will be appended automatically) and click 'Load'. The cases in the archive will
be listed in the box. You must now select the studies from the list for the core data (grid
properties) and exec data (solution data).
Enter the i.dat (and optionally the r.dat) file name in the fields at the bottom of the screen.
The 'i.dat' and 'r.dat' are appended automatically.
The following steps show how to import a split VDB VIP file output into REVEAL:
1. Specify the directory where the *.vdb folder, *.dat files, and the include folder resides
2. Specify the VDB directory name excluding the *.vdb extension
3. Select the Load case names button – the case name will appear
4. Select the case name to high-light it then click the Core study and Exec study
buttons
5. Enter the Core file name and Exec file name excluding the i.dat and r.dat extensions
then click Next to load the file
2.7 Graphics
2.7.1 Visualisation
Use the , , , and buttons to view the results. The results may also be viewed
interactively during a calculation.
The button provides average reservoir properties such as mean phase pressures,
saturations and volumes. These data may be viewed, plotted and printed, or copied to the
clipboard for import into another application.
The button provides well results data, including instantaneous and cumulative rates,
GOR, water cut and phase pressure and saturation data at well blocks.
The button provides a three dimensional display of the fluid properties that were selected
for display ( Run Simulation|Select Properties...). Note that the variables and frequency
with which they are to be stored must be set before a calculation is run. It includes graphical
representation of wells, completions and fractures.
The button deletes all of the stored 3D graphics, thus reducing the size of the REVEAL
archive.
The button allow the user so save the current well and average reservoir properties to
saved streams. It also allows, previously saved streams to be renamed and deleted.
The button deletes all saved well and average reservoir properties result streams.
The button generates a 3D visualisation of the grid and initial static variables such as
porosity, permeability etc.
The frequency of the well results and 3D properties to plot may be selected before a run
using the button .
The button provides a three dimensional schematic of the wellbore with the intersected
grid blocks. If a wellbore model has been set up in the input deck this view will display the
results of the wellbore calculations, i.e. the calculated properties at the nodes and in the
tubing. It also provides information on any crossflow that may be occurring.
The 3D graphics requires the display driver to be operating with a screen area of at least
1280*1024 pixels and 16 bit (high colour) resolution.
If the current window is the 3D graphics window, then the drop down menus Options, Edit
and Results are specific to 3D graphics. The additional drop down menu Playback is also
available if the current window is a 3D graphics window .
Rotation
- to rotate the view, click the left button of the mouse and drag the mouse in the direction
that you would like to rotate. The rotation axis is perpendicular to the direction of mouse
movement and in the current focal plane of the view.
- to rotate the view about an axis normal to the screen and passing through the current focal
point, press the Ctrl key with the right mouse button. The speed of rotation is proportional to
the distance from the centre of the screen to the mouse position.
- the centre of rotation may be set by zooming in from two different (preferably orthogonal
directions).
Zooming
- area ('rubber band') zooming can be achieved by holding down the Ctrl key while dragging
the mouse with the left mouse button depressed.
- alternatively, click on the magnifying glass icon ( ) in the toolbar and then click and drag
across the area to be zoomed into.
- a single click with the magnifying glass icon ( ) selected will perform a zoom in of a fixed
Panning
- panning can be achieved by holding the shift key while dragging the mouse with the left
button depressed. Essentially, the viewing position is shifted parallel to the focal plane of the
view, although the effect is to 'drag' the objects from one position to another.
3D visualisation preferences
To invoke the preferences screen from any 3D view, select Options | Preferences... from the
main menu. This is also accessible from a right click.
Lookup tables - the colour tables for different view properties can be changed. The default is
for a basic RGB graduation for pressure and default properties, with phase saturations
represented by a single colour with a graduation in colour saturation. To change a lookup
table, adjust the palette at the top of the screen to the starting (low value) colour and click on
the button at the left hand side of the lookup table that you are changing. The table will
change to reflect the selection. Then perform the same action for the ending (high value)
colour. The lookup table is calculated by interpolating HSV values between the top and
bottom of the table.
View properties:
- the perspective mode determines whether the view is generated with parallel rays or by
applying a false (but perhaps more visually pleasing) perspective based on a view position.
The parallel projection is recommended if the distance measurement tool is used.
- the background colour can be changed by adjusting the sliders on the colour palette.
- the mouse rotation sensitivity governs how quickly the view is rotated for a unit movement
of the mouse position.
The graphics toolbar (below the main toolbar at the top of the REVEAL screen) contains
most of the functions that are available from the visualisation window. Some functions are
different depending on whether the current view is a 3D view or a wellbore (Xflow) view -
these differences are detailed below.
Animation buttons:
Advance the view by one step
Animate the view results from the current step
Advance to the last step
Reverse the view by one step
Selection buttons:
(3D) Allows cells to be selected. As the mouse is moved over the view, the grid cells
below the mouse pointer are highlighted. Click on the required cell to select it - 2D results for
this cell can then be viewed by invoking Results | Results of selected cells. Many cells can
be selected at once.
(Xflow) Allows results for an item in the view to be displayed at an instant in time.
Move the mouse over the item in question and a window will appear giving the current time
step results for the item. If the view contains grid blocks and wellbore items (tubing and
nodes) it can be difficult to select a tubing node rather than a grid block. To get round this,
invoke the 'Object Properties' screen (either from the toolbar or Options | Viewing properties)
and change the 'pick mode' selections.
(3D only) Unselects all cells.
(3D only) Invokes a screen to allow cells to be selected from IJK lists or blocks
perforated by wells.
Zoom buttons:
These allow the view to be zoomed in or out.
Also, the mouse wheel and <control> left click rubber band may be used to zoom in or out.
This is equivalent to pressing F5, i.e. the view is reset to the initial zoom.
Cell Results:
(3D) Invokes a screen with the time dependent results for the currently selected set of
cells.
(Xflow) Invokes a screen with time dependent results for all the items in the system
(grid blocks, calculation nodes, and tubing)
(Xflow) Invokes a screen with wellbore results that may be plotted as a function of
measured depth for each of the timesteps
(3D) Export grid and 3D graphical results to text file. Either all data within a grid or
data for selected blocks may be output. If all data for a grid is selected, then optionally, the
active grid blocks and grid corner point geometry are also output. The active blocks are first
listed, cycling through X, Y, Z. Only data for active blocks is then presented. The grid
coordinates are listed for each active block (X,Y,Z) for the 8 corners of each active cell,
ordered (1,1,1) (2,1,1) (2,2,1) (1,2,1) (1,1,2) (2,1,2) (2,2,2) (1,2,2). The data for selected
times and variables are exported to the file for all active or selected blocks using the
prevailing units for the 3D results.
Distance measure:
This tool may be used to measure distances. Ensure that the Z direction scaling
(invoked from and the Details button for Grids) is unit and that the projection mode is
parallel.
Property buttons:
These options may also be accessed using a right click within the 3D view screen.
(3D) Invokes a screen allowing you to change the variable that is currently displayed.
It also allows you to view point scalar data rather than cell data. The point data is
interpolated from the grid block corners and weighted by the inverse square of the distance
to the corners.
(Xflow) Invokes a screen allowing you to change the variable that is currently
displayed for the different object categories. The tubing variable can be set to the calculated
fluid rate, or alternatively can be set to display simple interpolated values between the end
nodes.
(3D) Invokes a screen that allows the properties of the objects in the view to be
altered, e.g. the transparencies or visibilities of the grid objects, and whether to display
surface or wireframe data. It is also possible, from this screen, to display subsets of grid
cells (normally a plane of blocks in X, Y, or Z) and to change the z scale factor. Most of the
visualisation options are accessed from this option. There are sub-buttons that may be used
to refine the viewed data.
(Xflow) In addition to setting general object properties, the 'pick mode' can be
changed. The pick mode determines those objects that are candidates for picking when
'selection mode' is entered. It may be desirable, for example, to remove grid blocks from the
pick mode to allow easier picking of nodes and inflow objects.
Scale. Sets the ranges of values that are mapped to the colour tables.
Playback. Sets various playback / animation options.
The last field on the display is a well selection list box. Select from the drop down list the
well data that you wish to view.
Additional debug output is created during a water chemistry calculation and can be view
using the menu command Results|Debug|Debug Water Chemistry.
The finite element fracture variables are also output in detail to the debug output file.
The debug output file contains much general model information not displayed elsewhere.
The most useful information it contains falls into three categories.
Initialisation data - including the analytical well PI calculation results and post equilibration
saturations and pressures for each block.
Runtime data - includes time step data which gives information on the number of iterations
(IMPES and implicit formulations), what variable is controlling the time step, maximum
volumetric error and maximum variable changes. See the table at the end this page for
information on the time step control summary (8 digit summary at the end of each completed
time step). Additionally, fracture data for the finite element grid is output in detail for each
thermal fracture calculation.
Completion data - includes error and warnings at the end of a calculation, total runtime
statistics and some information on the final state of the calculation.
f Fracture update
d Implicit solver (diverging Newton steps)
e Implicit solver (estimated next time step)
l Maximum number of linear solver iterations
3 Cause of retake - No retake
n Negative concentrations
v Volumetric flow limit
m Material balance constraint
p Pressure constraint
t Temperature constraint
c Concentration constraint
d Implicit solver (diverging)
4 Cause of 'on-hold' - Not 'on-hold'
m Material balance constraint
p Pressure constraint
t Temperature constraint
c Concentration constraint
d Implicit solver (diverging)
5 Limit reached - Not limited
l Minimum time step
u Maximum time step limit
6 Volumetric flow c Total volume inflow (Courant)
s Mobile phase saturation undershoot
w Total well inflow/outflow
7 Implicit solver i Pre-conditioner failure
l Linear solver failure
d Newton steps diverging
c Newton steps not converged
p Pressure change too large
s Saturation change too large
8 Unused
Statistics and information are also located at the start and end of this file, including the
following information.
2.9 Engineering
2.9.1 Contents
This section provides descriptions of the reservoir engineering models and solution methods
provided by REVEAL that are not described elsewhere in detail. It concentrates on the
underlying physical processes and the numerical approximations used to model them.
This designed as an overview of the equations solved. More detail is given for individual
models in rest of the help manual.
The transport equations are formulated on the basis of phase properties (saturation, density,
relative permeability, viscosity and capillary pressure).
Components - a component is a chemical species (or mixture of chemicals) that forms the
basis of the fluids present. The components water, oil and gas are always present within all
models.
Components are partitioned within phases. For an oil reservoir, the water component is
present within the aqueous phase, the oil component present within the oleic phase and the
gas component present within the oleic and gaseous phases. For a condensate reservoir,
the gas component is only present within the gaseous phase, while the oil component is
partitioned between the oleic (dropout) and gaseous phases. For a dry gas reservoir, both
oil and gas components are partitioned within the gaseous phase (no oleic phase). If a 4th
micro-emulsion phase is present, then the water, oil and gas components will be partitioned
between their original phase and the micro-emulsion phase.
Only components that affect the phase densities are considered volumetric. These
components include water, oil, gas, non-reservoir injected gas, surfactant, and the two
possible alcohol components. All other components are non-volumetric, they only contribute
to the transport equations by modifications to phase mobilities, or not at all for tracer
components.
2.9.3 Transport equations
Transport equations - laminar flow through a porous medium is assumed, and quantified
by Darcy's equation in oilfield units for each phase (p).
k .kr p æ r ph ö
q p = -6.3266 Ñçç Pw + Pc p - ÷
mp è 144 ÷ø
(i)
where qp is the Darcy velocity (ft/d)
k is rock permeability (D)
krp is phase relative permeability
mp is the phase viscosity (cp)
rp is the phase density (lb/ft3)
h is the depth (ft)
Pw is the water phase pressure (psi)
Pcp is the phase capillary pressure (psi)
The accumulation of mass (mp) of a phase into a control volume (V) is then defined by a
summation of fluxes over the surface area (A).
m p = -Ñ × (r p q p A)
(ii)
The accumulation of mass into volume Vp is then subject to phase compressibility (cp) and
rock compressibility.
cp = -
1 ¶V p
=
1 ¶r p ¶ (V p r p )
V p ¶P r p ¶P
V p = fVS p mp =
(iii) ¶t
Equating these accumulation terms leads to a material balance equation.
¶ (fr p S p )
V - Ñ × (r p q p A) = 0
(iv) ¶t åSp =1
This differential equation is non-linear and also requires to be discretised both spatially and
temporally before it can be solved numerically.
For all solution methods, a harmonic average permeability (k) is used at grid block faces,
while different upstream weightings for face mobilities (Mp) are available for the implicit/
explicit solver options. A face volumetric transmissibility (Tp) is also defined, resulting in a
final version of the transport equation.
kr p
Mp =
mp T p = 6.3266 AkM
(v) p
¶ (fr p S p ) æ æ r p h öö
V + Ñ × çç r p T p Ñçç Pw + Pc p - ÷÷ = 0
¶t è è 144 ÷ø ÷ø
(vi)
Implicit solution - for this solver option, the transport equation is solved with respect to the
oil phase pressure (Po) and the three phase saturations (Sp). A single point upstream
weighting is applied for mobility and density.
IMPES solution - for this solver option, the transport equation is solved in two steps using a
total volumetric implicit pressure (explicit transmissibility and capillary pressure) solution to
calculate the water phase pressure (Pw) and an explicit concentration (saturation) update
using the calculated phase Darcy velocities. The implicit pressure solution uses a total
compressibility term (c) including rock and fluid phase compressibilities.
¶Pw æ r ph ö
Vc + å T p Ñ 2 çç Pw + Pc p - ÷=0
¶t è 144 ÷ø
(vii) p
Tp æ r ph ö
qp = - Ñçç Pw + Pc p - ÷
A è 144 ÷ø
(viii)
The explicit nature of this formulation allows more sophisticated upstream weightings for
phase transmissibility, trace component concentrations and density, reducing numerical
dispersion, but more severe limitations on the time-step size are required to ensure stability.
Trace component concentrations are updated using the phase Darcy velocities and
upstream weightings for component volume fractions.
For more information on the solver options see the control section of the input wizard help.
The IMPES solver, first solves an implicit pressure model, resulting in phase Darcy velocities
(qp) between neighbouring grid blocks. The transport of trace components in the explicit
phase of the solve, is calculated by calculating mass fluxes of the trace components (Fc). If
dispersion and diffusion are not present, then the trace component mass fluxes are
calculated using upstream weighting of component concentrations within associated phases
(Ccp) and the phase Darcy velocities.
Fc = å r c q p C pc
(ix) p
If dispersion or diffusion are present, then the trace component mass fluxes are modified by
calculating a dispersive flux (Gcp), dependent on the component concentration gradient.
Note that trace components are only partitioned within one phase (unless a middle phase
micro-emulsion is present) and the component density is equal to its host phase density (i.e.
volumetric and mass fractions of component within phase are equivalent).
(
Fc = å r c q p C pc - G pc )
(x) p
qp
( )
G pc = fS p D pc + q p a Tp ÑC pc +
qp
(a Lp (
- a Tp ) q p × ÑC pc )
(xi)
where Dcp are component diffusion coefficients, and aLp and aTp are longitudinal and
transverse phase dispersion lengths.
Numerical dispersion may be minimised by selecting the fct/2-point upstream weighting for
component concentration in the control section of the input script.
2.9.5 Heat transport
For both the IMPES and implicit formulations, the thermal heat transport equations within
REVEAL are applied after the pressure and component concentrations have been updated.
Therefore, the phase Darcy velocities between grid blocks is known and the heat transport
is calculated explicitly with respect to the flow and pressure.
Convective heat transport (heat flowing with the fluid) and optionally conductive heat
The accumulation of heat (J) into a control volume (V) is defined by a summation of
conductive and convective fluxes over the surface area (A). The thermal conductivity is a
harmonic average between adjacent blocks, and includes contributions from the rock and all
phases present. The phase heat capacities (Cpp) are those calculated at the end of the
time step. In oilfield units, J has dimensions of (BTU/d).
J = -Ñ × ( Ak ÑT ) - å Ñ(q p r p Cp p AT )
(xii) p
The accumulation of heat into volume V then results in a temperature change (heat
transport equation).
¶ (HT )
-J =0
(xiii) ¶t
where H is the total heat capacity (BTU/F) of the control volume V (grid block), calculated
before and after the flow is updated (beginning and end of time step).
For the IMPES formulation, or the implicit formulation when the CFL limit is selected, the
heat transport equation is solved explicitly for temperature (T) i.e. J is first calculated, then T
is updated. This has the advantage that upstream weighting models (fct/2-point
recommended) may be used for convective thermal fluxes, reducing numerical dispersion.
The upstream weighting is the method used to estimate the heat capacity (rp.Cpp) at the
interface between adjacent blocks.
For the implicit formulation, the CFL limit is not observed, and the explicit method used for
the IMPES formulation is unstable. Therefore, the temperature is calculated by implicitly
solving the heat transport equation in one step, a 1 point upstream weighting is used for
calculating convective thermal fluxes.
Heat source terms are also added for well-bore heating, well inflow/outflow and overburden/
underburden heat flow.
If Joule Thomson effects are included, then the change in pressure over the time step
results in a term reflecting the corresponding enthalpy change.
2.10 References
2.10.1 References
1 Van Everdingen A.F., Hurst W., The Application of the Laplace Transformation to Flow
Problems, Trans. AIME 156, 1949.
2 Carter R.D., Tracy G.W., An Improved Method for Calculating Water Influx, SPE 1626-
G, 1960,
3 Geertsma J., deKlerk F., A Rapid Method of Predicting Width and Extent of
Hydraulically Induced Fractures, SPE 2458, 1969.
4 Wiliams B.B., Fluid Loss from Hydraulically Induced Fractures, SPE 2769, 1970.
5 Todd M.R., Longstaff W.J., The Development, Testing and Application of a Numerical
Simulator for Predicting Miscible Flood Performance, SPE 3484, 1972.
6 Cinco-Ley H., Ramey H.J., Miller F.G., Pseudo-skin Factors for Partially-Penetrating
Directional-Drilled Wells, SPE 5589, 1975.
2.11 OpenServer
2.11.1 OpenServer
OpenServer is the Petroleum Experts implementation of an open architecture for all of its
software products. It allows external control of the programs with using the interface.
Typically it is used for one of the following purposes.
where datatag and command are strings containing data identifiers or commands which
possibly contain arguments. If an argument is a string, then it will need to be included within
double quotes.
In the following documentation only the datatag and command string syntax is defined.
Scope
This section is designed to complement the Petroleum Experts IPM OpenServer manual,
providing REVEAL specific implementation information.
See the OpenServer examples in the sample files section for basic examples using EXCEL
macros to control REVEAL using OpenServer.
The following sections describe the OpenServer commands specific to REVEAL, and the
data structures that may be accessed. The data structures fall into three categories; script
data, results data and runtime variables.
All of the data exchanged via OpenServer will by default be in oilfield units. See the main
OpenServer documentation to see how data may be transferred in alternative unit systems.
Data Types
All REVEAL string datatags and commands start with the tag "REVEAL".
There are 6 main datatag types that may be accessed when before a simulation is run or
after it is completed. The datatag for a specific piece of data can be found by using
<CONTROL> right click within the interface.
Runtime datatags correspond to the actual data structures invoked to run REVEAL.
Therefore, altering a SCRIPT datatag during a simulation will have no effect. Runtime
datatags have the tag "REVEAL.MASTER".
OpenServer in REVEAL
The OpenServer may be accessed from external applications such as EXCEL or RESOLVE.
Alternatively, runtime data may be accessed at the start, during, at the end of a simulation
using the inline script in REVEAL. A 'stopped' script may also be run, when the simulation is
paused or stopped.
Several macro function commands are supplied to alter data and flags consistently during a
simulation (e.g. for well control). These should always be used in preference to setting data
variables manually.
Clearly extreme case should be taken modifying runtime variables during a simulation.
To access the inline script and run a 'stopped' script use the buttons and .
The OpenServer commands may also be run individually using the button . This option
also includes summaries of the available REVEAL specific commands.
To toggle whether to run with the script or not use the option Run Simulation|Run with
Script.
The syntax in a script must be correct, and it is best tested thoroughly before a simulation is
run using this feature.
The logmsg function may be used to send a string to the text debug file.
The current REVEAL timestep, time, date and step may be obtained using the following
script functions. The timestep is the current timestep, starting from zero, which may be non-
zero when starting from a restart. The step variable is always initialised to -1 at the start of a
run, is set to 0 after any initialisation/equilibration at the start of the first simulation timestep,
and is then incremented for subsequent timesteps.
timestep = REVEAL.TIMESTEP
time = REVEAL.TIME
date = REVEAL.DATE
step = REVEAL.STEP
Breakpoints and other debugging of scripts may be performed using Microsoft tools.
Commands
The REVEAL specific function commands are listed blow. Some functions have more than
one name for backwards compatibility reasons. Additional well specification keywords
required to automate a well description in the input script may be found in the OpenServer
examples.
NEWFILE()
Function: Start a new REVEAL project file
Arguments: None
Example: "REVEAL.NewFile()"
OPENFILE(filename)
Function: Open an existing REVEAL project file
Arguments: filename - if the filename contains 'white space' characters, then it should be
enclosed with double quotes ("")
Example: "REVEAL.OpenFile(C:\Petex\testfile.rvl)" ; "REVEAL.OpenFile(""C:\Petex
directory\test file.rvl"")"
SAVEFILE()
Function: Save an existing REVEAL project file
Arguments: None
Example: "REVEAL.SaveFile()"
SAVEASFILE(filename)
Function: Save a REVEAL project file with a new name
Arguments: filename
Example: "REVEAL.SaveAsFile(C:\Petex\newfile.rvl)"
SHUTDOWN()
Function: Exit REVEAL
Arguments: None
Example: "REVEAL.Shutdown()"
RUN_BLOCK()
Function: Run/continue while blocking other OS communication (recommended)
Arguments: None
Example: "REVEAL.Run_Block()"
RUN()
Function: Run/continue a simulation (not recommended)
Arguments: None
Example: "REVEAL.Start()"
RESTART(restart_number)
Function: Start a simulation from a restart file and pause before the equilibration
Arguments: restart_number - an integer reflecting the restart file number starting from zero.
Use the Project|Edit / Review Project.. menu option to view the stored restart
file available
Example: "REVEAL.Restart(0)"
INITIALISE()
Function: Start a simulation and pause before the equilibration
Arguments: None
Example: "REVEAL.Initialise()"
ONE_STEP()
Function: Take one time step for the simulation
Arguments: None
Example: "REVEAL.One_Step()"
STOP()
Function: Stop a simulation
Arguments: None
Example: "REVEAL.Stop()"
PAUSE()
Function: Pause a simulation
Arguments: None
Example: "REVEAL.Pause()"
READ_SCRIPT()
Function: Read the current script..
Arguments: None
Example: "REVEAL.Read_Script()"
WRITE_SCRIPT()
Function: Rewrite the script following changes to the input, required for changes to the
script to be registered for subsequent simulation runs.
Arguments: None
Example: "REVEAL.Write_Script()"
OPEN_DATABLOCK(datablock_label)
Function: Open a datablock for data read or write in the input script
Arguments: datablock_label - the label (name) associated with a datablock (red font) in the
input script
Example: "REVEAL.Open_Datablock(""_xperm"")"
WRITE_DATABLOCK(datablock_label)
Function: Rewrite the datablock following changes to the input, required for changes to the
datablock to be registered for subsequent simulation runs.
Arguments: datablock_label - the label (name) associated with a datablock (red font) in the
input script
Example: "REVEAL.Write_Datablock(""_xperm"")"
OPEN_WELLTRAJ(datablock_label)
Function: Open a multilateral well datablock for data read or write in the input script
Arguments: datablock_label - the label (name) associated with a datablock (red font) in the
input script
Example: "REVEAL.Open_WellTraj(""well1"")"
WRITE_WELLTRAJ(datablock_label)
Function: Rewrite the datablock following changes to the input, required for changes to the
datablock to be registered for subsequent simulation runs.
Arguments: datablock_label - the label (name) associated with a datablock (red font) in the
input script
Example: "REVEAL.Write_WellTraj(""well1"")"
CREATE_PVT(fluid_type, pvt_label)
Function: Add a PVT.
Arguments: fluid_type - the fluid type of the PVT to be created (0-oil, 1-gas, 2-condensate)
pvt_label - label for the PVT.
Example: "REVEAL.Create_PVT(0,""PVT1"")"
IMPORT_PVT(file_name, well_label)
Function: Import a PVT.
Arguments: file_name - file name of the PVT file to be imported
pvt_label - label for the PVT
Example: "REVEAL.Import_PVT(""C:\PVT1.pvt"",""PVT1"")"
ADDWELL(well_label, welltype)
Function: Add a well.
Arguments: well_label - the label (name) associated with the well to be added
welltype - integer specifying well type (0-completion table, 1-vertical column, 2-
multilateral)
Example: "REVEAL.Addwell(""well1"",2)"
DELETEWELL(well_label)
Function: Delete a well.
Arguments: well_label - the label (name) associated with the well to be added
Example: "REVEAL.Deletewell(""well1"")"
SORT_WELLS()
Function: Re-order the wells alphabetically.
Arguments: None
Example: "REVEAL.Sort_Wells()"
READ_HISTORY()
Function: Read current history data from archive into memory.
Arguments: None
Example: "REVEAL.Read_History()"
WRITE_HISTORY()
Function: Write history data to schedule and script.
Arguments: None
Example: "REVEAL.Write_History()"
Call DoCmd("Reveal.Read_History")
nwell = DoGet("Reveal.Script.Well.Count")
count = DoGet("Reveal.Script.History.Count")
Call DoSet("Reveal.Script.History.Add",1)
Call DoSet("Reveal.Script.History["+Cstr(count)+"].Date.DateStr","1/1/2010")
FOR iwell = 0 TO nwell-1
Call DoSet("Reveal.Script.History["+CStr(count)+"].Well.Add",1)
Call DoSet("Reveal.Script.History["+CStr(count)+"].Well["+CStr(iwell)+"].Status",1)
Call DoSet("Reveal.Script.History["+CStr(count)+"].Well["+CStr(iwell)+"].OilRate",1000.0)
NEXT
Call DoCmd("Reveal.Write_History")
LOAD_CELLRESULTS(grid_number)
Function: Load the cell results into memory for a given grid. This function will first unload
any cell results previously loaded for other refinement grids. Only cell results for
the currently loaded grid may be obtained using cell result OpenServer variables.
Arguments: grid_number - each grid has an integer, with the first main grid being zero and
refined grids starting from one. Optionally, a subset of a grid may be loaded to
save memory and cpu time. The subset is defined over the interval [X1,X2], [Y1,
Y2] and [Z1,Z2], and entered as LOADCELLRESULTS(grid_number,X1,Y1,Z1,
X2,Y2,Z2).
Example: "REVEAL.Load_CellResults(0)"
CLEAR_CELLRESULTS()
Function: Unload from memory any cell results currently loaded.
Arguments: None
Example: "REVEAL.Clear_CellResults()"
EXPORT_CELLRESULTS()
Function: Export grid and 3D graphical results to text file. The active blocks are first listed,
cycling through X, Y, Z. Only data for active blocks is then presented. The grid
coordinates are listed for each active block (X,Y,Z) for the 8 corners of each
active cell, ordered (1,1,1) (2,1,1) (2,2,1) (1,2,1) (1,1,2) (2,1,2) (2,2,2) (1,2,2).
Arguments: grid_number - each grid has an integer, with the first main grid being zero and
refined grids starting from one.
output file - results file to be written to.
[Variable number] - Optional integer specifying the variable to be reported,
indexed from 0 (-1 is all variables).
[Timestep number] - Optional integer specifying the timestep to be reported,
indexed from 0 (-1 is all timesteps).
Example: "REVEAL.Export_CellResults(0,"C:\results.txt",3,-1)"
LOAD_XFLOW_BLOCK_RESULTS()
Function: Load the Xflow well block results into memory. This operation is only required to
be performed once, prior to all OpenServer operations on the Xflow well results.
Arguments: None
Example: "REVEAL.Load_Xflow_Block_Results()"
LOAD_XFLOW_WELL_RESULTS()
Function: Load the Xflow well tubing results into memory. This operation is only required to
be performed once, prior to all OpenServer operations on the Xflow well results.
Arguments: None
Example: "REVEAL.Load_Xflow_Well_Results()"
WATCHEM_EQUILIBRATE()
Function: Perform a water chemistry equilibration calculation based on the 'Input|Water
Chemistry Produced Fluid Calculation' screen. All of the input data (pressure,
temperature, souring time, water rate, oil rate and gas rate) must be set by
OpenServer. Additionally, all of the well concentration concentrations should be
set by OpenServer. After the calculation, the equilibrated concentrations may be
obtained by OpenServer.
Arguments: None
Example: "REVEAL.WatChem_Equilibrate()"
DELETE_CELL_RESULTS()
Function: Delete all of the 3D cell results.
Arguments: None
Example: "REVEAL.Delete_Cell_Results()"
SAVE_RESULT_STREAMS(label)
Function: Save a copy of the current well and average reservoir results streams.
Arguments: label - label for results streams
Example: "REVEAL.Save_Result_Streams(""run_1"")"
DELETE_RESULT_STREAMS()
Function: Delete all saved well and average reservoir results streams.
Arguments: None
Example: "REVEAL.Delete_Result_Streams()"
DELETE_RESTART(label)
Function: Delete a specified restart file.
DELETE_ALL_RESTART()
Function: Delete all restart files.
Arguments: None
Example: "REVEAL.Delete_Restart()"
SET_SCRIPT(status)
Function: Set the runtime internal script status.
Arguments: status - script status 0:Off 1:On
Example: "REVEAL.Set_Script(0)"
Script data
The script or input data variables may be read or written using the OpenServer.
If the data to be read/written is within a datablock, then the datablock should be opened
using the Open_Datablock command, then saved using the command Write_Datablock
once the modifications are completed.
The OpenServer data strings can be obtained using <CTRL> + mouse right click within
input wizard. This should always be used to identify the OpenServer string.
Once changes have been made to the input data, the Script_Write command should be run
to register the changes.
Example - set a transmissibility multiplier barrier for a horizontal layer when the data is input
as a range; the second range (index 1) is being modified
DoSet ("REVEAL.Script.Reservoir.Data[11][1].Value",0.0)
DoCmd ("REVEAL.Script_Write()")
Example - set the porosity when the data is entered as a datablock array for block (3,2,1) to
0.2 - note the indexing starts at zero and cycles (Z,Y,X)
DoCmd ("REVEAL.Open_Datablock(""_porosity"")")
DoSet ("REVEAL.Block._porosity.Tab[0].Data[0][1][2]",0.2)
DoCmd ("REVEAL.Script_Write()")
Results data
The reservoir average and well results can be accessed using OpenServer.
The OpenServer data strings can be obtained using <CTRL> + mouse right click within
output data results.
The well and average reservoir results data OpenServer strings have the following form:
"REVEAL.WellRes[{stream_label}][{well_lablel}][timestep].Variable"
"REVEAL AveRes[{stream_label}][{region_lablel}][timestep].Variable"
n_timesteps = DoGet("REVEAL.WellRes[0][0].Count")
Example - total cumulative oil for current stream at the 10th recorded time step
CO = DoGet("REVEAL.WellRes[{Well Results}][{Total}][9].CumOilProduced")
Example - bottom hole temperature for first saved stream, second well, at the 6th recorded
time step
BHT = DoGet("REVEAL.WellRes[1][2][5].REVEAL.BottomHoleTemperature")
PV = DoGet("REVEAL.AveRes[{Average Results}][{Total}][0].PoreVolume")
Runtime data
All of the internal REVEAL data are available during a simulation. This data is not available
once a simulation has been stopped. Since this data is extremely large and most of it of no
interest only some variable will be specified. Great care should be taken setting internal
calculation variables to the point where it is not recommended for most variables, with the
exception of well control variables.
All of the runtime variables are indexed from 0. However, if the returned value is an index,
then the returned value is indexed from 1 (see ACTIND and KWM).
The following is a list of some of the useful Master variables that may be accessed. The
variables listed are those associated with time step and well control.
The following is a list of some of the useful runtime variables that may be accessed.
Contact Petroleum Experts for details of additional runtime variables if required.
Example - find the oil phase saturation for block IX,IY,IZ = (10,20,5) in the main grid
NX = DoGet("REVEAL.Master.NX")
NY = DoGet("REVEAL.Master.NY")
NZ = DoGet("REVEAL.Master.NZ")
IJK0 = (NZ-1)*NX*NY+(IY-1)*NX+IX
IJK = DoGet("REVEAL.Master.ACTIND["+Cstr(IJK0-1)+"]")
SO = DoGet("REVEAL.Master.S[1]["+Cstr(IJK-1)+"]")
Runtime Commands
These commands may be used during a simulation. They are mainly associated with well
control.
The units for data input may be set to the default internal REVEAL units using the command
(this is assumed for the examples below):
"REVEAL.RUN_DOUNITCONV(0)"
If the units set in the schedule section of the REVEAL wizard interface are required, then the
following command may be given.
"REVEAL.RUN_DOUNITCONV(1)"
The following completion control data may be accessed. This data should only be used for
wells defined as a vertical
column or as a completion
table.
If these methods are used with 'multi-lateral well' definitions, then the completion defined
skin (S) is included within the completed block effective radius (RE) and the block skin set to
zero; and the completion multiplier is included within the kh (KH). This is because multiple
sections of tubing with potentially different geometries and properties are combined into
effective properties for the grid blocks. Therefore a skin of 0 set for one of these blocks will
leave the block connection factor unchanged, regardless of the skin used in the completion
description.
"REVEAL.RUN_GETCOMP(""well_name"",block,""variable_name"")"
This command gets data for well_name, completion block number "block" with the
variable_name set to the variable to be retrieved.
The following is a list of the available data that may be retrieved. i.e. string values for
variable_name
Example - get the perforation status and flowing radius of block 3 of well "well1"
DoCmd ("REVEAL.RUN_GETCOMP(""well1"",2,""PERF"")")
status = DoGet("REVEAL.MASTER.OSVAR")
DoCmd ("REVEAL.RUN_GETCOMP(""well1"",2,""RW"")")
rw = DoGet("REVEAL.MASTER.OSVAR")
unit = DoGet("REVEAL.MASTER.OSUNIT")
If only the unit is required, an optional 4th parameter may be set to 1. This will allow the unit
to be returned if a simulation is not running and no runtime data is present. This option is
primarily there for RESOLVE.
The data RW,RE,KH,S,DIR should be replaced with numeric values corresponding to the
data listed in the table above.
If RW, RE, KH or DIR is less than zero, then the current value will remain unchanged.
If S is less than -1000, then the current value will remain unchanged.
Also, the ordering internally within REVEAL is altered from the vertical column or completion
table order if inactive blocks are completed (these are removed from the internal runtime
list).
If this flag is set to 1, then the block counter is indexed from zero, and is the same block
number as in the interface for vertical and completion table data entry regardless of whether
inactive blocks have been defined.
And, if completions 2 and 3 are within an inactive blocks, then only completions 1, 4 and 5
are listed within REVEAL, and may be obtained with either of these functions.
Note the additional 'placeholder' argument 4 set to zero required due to it being used to
indicate whether unit only data is required (see above).
Answer:
The Control section of REVEAL enables to choose between two types of horizontal point
scheme for the fully implicit solver: 5 point or 9 point.
The 9 point horizontal flow scheme enables to minimise grid orientation effects by allowing
diagonal flow, as illustrated in the diagram below, and is therefore the recommended (i.e.
and default option in REVEAL). It is believed to be a more realistic approach to fluid flow in
the reservoir.
If a 5 point average scheme is used then flow will be enhanced in the grid direction relative
to its diagonal direction, and on the other hand, the flow in the diagonal direction will be
under-estimated.
Therefore, this can generate differences in estimated breakthrough times for instance.
This can be shown by the following example: a simple grid with one injector and one
producer, both controlled with fixed rates.
The interest of this model is to be able to monitor the difference in water breakthrough time
between a 5 point scheme and a 9 point scheme.
Case 1: The injection and the production wells are aligned in the direction of the grid.
Comparing the water breakthrough obtained by running this model using 5-point or 9-point
averaging, the following results are obtained.
Due to grid orientation effects, the 5-point scheme will predict the water breakthrough in the
producer to happen around 3 month earlier than the 9-point scheme.
Case 2: The injection and the production wells are diagonally spaced compared to the grid
direction.
Comparing the water breakthrough obtained by running this model using 5-point or 9-point
averaging, the following results are obtained.
Due to grid orientation effects, the 5-point scheme will predict the water breakthrough in the
producer to happen around 3 month later than the 9-point scheme.
In summary:
- If the wells are positioned in the direction of the grid, a 5-point scheme will
predict a early water breakthrough
- if the wells are positioned diagonally to the direction of the grid, a 5-point
scheme will predict a late water breakthrough
It is important to consider that the 5 point scheme is the default used by ECLIPSE, therefore
this scheme should be used for imported models that have been history matched using this
option.
Stress is the same concept as pressure but applied to solids: a stress is the internal
distribution of force per unit area that balances and reacts to external loads applied to a
body. To summarise, it is a pair of equal and opposite forces acting on unit area of a body.
Stress can be different in different directions and is therefore a directional concept.
Mathematically, it is a second-order tensor with nine components, only six of which are
independent.
If one considers a certain solid body, the combination of all the stress applied to that body in
different directions will be referred to as the stress field applied to that specific body.
The main difference between the concepts of pressure and stress are therefore the medium
considered as well as the directional component.
2. Concept of Strain
Strain is the geometrical expression of the amount of deformation caused by the action
of stress (or combination of stresses) on a body.
Strain is therefore defined as being the change in size and shape of a body resulting from
the action of an applied stress field.
Strain can be for instance a rotation, distortion (shape change) or dilation (volume change).
If the application of a stress field results in the change of dimension of a line of the body
considered, it is said to be resulting in an extension strain.
If the application of a stress field results in the change in angle between two lines of the
body considered, it is said to be resulting in an shear strain.
ELASTIC STRAIN
When considering an ideal elastic strain behavior, the removal of the deforming stress
will lead to an immediate return of the body to its original unstrained shape.
An analogy of that type of strain is the compression and release of a spring.
The behaviour of perfectly elastic body’s is governed by Hooke’s law:
e=σ/E
e is the extensional strain = ∆L / L
σ is the stress applied
E is a constant known as Young’s Modulus, characteristic of the material.
PLASTIC STRAIN
In ideal plastic strain behavior, there is no recovery after removal of the deforming
stress: all the movement is permanent.
For a constant stress, the strain will increase linearly with time t, leading to the
following equation:
e = σ.t / η
e is the extensional strain = ∆L / L
σ is the stress applied
t is the time
η is a constant referred as the viscosity of the material.
Real rocks combine the properties of ideal elastic and viscous bodies.
The total strain might then be obtained by adding (at constant stress) the two previous
equations, leading to the following relationship:
e = σ / E + σ.t / η
Therefore a typical stress – strain relationship for a rock will be the following:
The stress at which fracture occurs might be referred as yield stress or material strength.
The importance of the plastic behaviour of a rock will depend on the following parameters:
· Differential stress (The difference between the biggest and smallest stresses applied
to the rock).
· Hydrostatic pressure (Affects the rock strength: When hydrostatic pressure increase,
the critical stress intensity will increase)
· Temperature (Decrease in temperature reduces the yield stress of strength of the
rock).
· Pore Fluid pressure (Modifies the ratio between 1and 3, facilitating rock failure).
· Strain rate (The extent of the period of time over which a certain stress is applied will
lead to a different strain behavior).
YOUNG's MODULUS
Young’s Modulus has been defined earlier as being the slope of the stress / strain
relationship.
Its dimension is Force / Unit Area, with a unit of psi if one considers standard oilfield
units.
A material that is difficult to deform will therefore have a high young’s modulus.
For instance:
Material Young’s Modulus (psi)
Rubber 1,500 to 15,000
Sandstone Approx. 500,000 to 2,000,000
Oak Wood 1,600,000
Aluminium 10,000,000
Alloy
Diamond 150,000,000
POISSON's RATIO
Poisson’s ratio determines the lateral displacement that a solid will exhibit to
accommodate a certain change in volume: when a sample of material is stretched in
Poisson’s ratio is therefore the ratio of the relative contraction strain (i.e. normal to the
applied stress) divided by the relative extension strain (i.e. in the direction of the
applied stress). It is a non-dimensional parameter.
For a perfectly incompressible material the Poisson’s ratio will be 0.5.
For an infinitely compressible material the Poisson’s ratio will be 0.
Guidelines regarding values of Poisson's ratios in different types of rocks can be found
in the illustration below:
Moreover, it is also possible to relate these concepts to the rock compressibility: a rock
with a high compressibility will tend to have a low Young’s Modulus (i.e. it will be easy
to deform) and a low Poisson’s ratio.
A rock with a high compressibility will then be associated with a relatively low stress
field.
A relationship can be build as well between grain distribution and stress: a very
homogeneous grain distribution will lead to a high Young’s Modulus and Poisson’s
ratio, and therefore to a relatively high lateral stress, as there will be only a small
possibility of deformation by grain re-arrangement.
A heterogeneous grain distribution will lead to a low Young’s Modulus and Poisson’s
ratio and therefore to a relatively low stress.
These basic relationships will enable to check whether a specific dataset makes
physical sense.
It is possible to see that the evolution of Young's Modulus and Poisson's Ratio
observed when comparing the sandstone layers and the shale does not make sense:
The Poisson's ratio in the shale is higher than in the sandstone, which will be expected,
however this is linked with a Young's Modulus that is lower for the shale than for the
sandstones.
In reality, in this case the correct Young's Modulus for the shale is 3.2e6 psi.
THERMO-ELASTIC COEFFICIENT
The thermo elastic coefficient translates the effect of temperature on the reservoir
stress field.
Let’s consider a sample of rock: the grains are kept together by cementation: if the
temperature of the rock is decreased (i.e. by injecting cold water in the reservoir for
instance) the rock will tend to shrink. However, because it is linked to the rest of the
reservoir, this specific sample of rock will not be able to shrink and its volume will have
to kept constant.
The decrease in temperature will then force the rock cementation to fight against the
shrinkage potential. This will then make the rock weaker and reduce the stress field.
The rock will then be more liable to fracture.
PORO-ELASTIC COEFFICIENT
The poro elastic coefficient translates the effect of fluid pressure on the reservoir stress
field.
Let’s consider a sample of rock: the grains are kept together by cementation: if the fluid
pressure of the rock is increased (i.e. by injecting water in the reservoir for instance)
the rock will tend to expand. However, because it is linked to the rest of the reservoir,
this specific sample of rock will not be able to expand and its volume will have to kept
constant.
The increase in pressure will then provide an additional "support" to the rock
cementation and make the rock stronger. This will result in an increase in the stress
field. The rock will then be less liable to fracture.
It is possible to notice that the injection of cold water will generally tend to decrease the
stress field around the wellbore, increasing the potential for fractures to be formed: the
impact of the temperature decrease on the stress field will generally be more
significant than the one of the pressure increase.
EFFECTIVE STRESS
The effective stress is defined as being equal to the total stress minus the pore
pressure.
The following relationship can then be considered:
eff = σtot - Ppore
If the effective stress is positive, the system is said to be in compressive state: the total
stress (i.e. that tends to keep the fracture closed) is higher than the pore pressure (i.e.
that tends to keep the fracture open). A fracture cannot initiate or propagate when
the system is in compressive state.
If the effective stress is negative, the system is said to be in tensile state: the total
stress (i.e. that tends to keep the fracture closed) is lower than the pore pressure (i.e.
that tends to keep the fracture open). A fracture can initiate or propagate when the
system is in tensile state.
The following steps are taken to estimate whether a fracture will be produced and how it will
propagate through time:
Flow Equation
The flow equation used will enable to calculate the flow within the fracture as well
as the leak-off rate.
The flow within the fracture is calculated based on the fracture conductivity: this
fracture conductivity in REVEAL can be setup to be independent of the fracture
width using the fixed FCD option or can be modified as a function of the fracture
width using the parallel plate option.
The leak-off flow will be calculated based on the pressure distribution around the
fracture: the leak-off flow will mainly be a function of the difference between the
pressure in the fracture and the pressure in the matrix.
The impact of the width gradient across the fracture on the fracture behavior
through time is important to understand:
- If a high width gradient is considered (i.e. the width of the fracture changes
very rapidly as a function of the fracture length), the pressure required to
propagate or even keep the fracture open will be high. This situation is
usually observed at the start of the fracturation process, when the fracture is
still relatively small.
Both the flow and the rock mechanics equations will be solved for a fixed fracture
shape to obtain fracture width and bottom hole pressure.
Iterations on the fracture shape (i.e. steps 2 and 3) will be performed until the stress
intensity calculated equals the critical stress intensity.
Iterations on the well flow rate will be performed as well until the well bottom hole
flowing pressure equals the fracture in-situ pressure.
It is important to notice that this iteration set will not be performed if the well is defined
as being a fixed rate injector: the fracture shape will then be dictated by the rate, which
will not be realistic.
In order to accurately model the fracture initiation and propagation process, the well
has to be controlled based on a fixed THP rather than on a fixed rate.
The following diagram will summarise the different relationships involved in the fracture
model calculations and the variables they depend upon:
Initially, we consider the stress field to be constant both spatially and temporally. In order to
propagate a small initial fracture we require an over-pressure (Pf- ) that is quite large. This
large BHP will typically correspond to a low injection rate.
This is indicated on the following diagram as point A.
As the fracture grows, the leakoff rate increases and the BHP required to maintain an open
propagating fracture reduces towards the reservoir stress.
This is indicated on the following diagram as point B.
We now consider the effect of cooling (which of course is injection rate dependent). As the
rock cools, it contracts and the stress reduces locally around the injector. As the stress
reduces, a lower BHP is required to open the fracture to propagation conditions. This is
thermal fracturing and is indicated on the following diagram by the dashed lines at
progressive times.
It is very instructive to consider the consequences of using such a model with an injection
well that is controlled by fixed rate or fixed BHP.
We now consider the effects of changing reservoir pressure. Reservoir pressure may
increase or decrease locally around an injector as a consequence of the entire reservoir
depletion.
A] Initially, within the reservoir, the in-situ stress will be above the reservoir pressure, and the
pressure required for fracture propagation will be above the stress. If this cannot be
achieved, then the fracture will not initiate.
B] If this pressure cannot be achieved initially, then a period of cooling is required to reduce
the stress until propagation can occur.
C] As the fracture propagates and the cooled region stabilises, the over-pressure required
for propagation reduces and the fracture pressure falls. As the fracture pressure falls, the
injection rate rises.
D] If the reservoir pressure falls, then the leakoff will tend to increase and the fracture
pressure will fall to maintain the leakoff. As the fracture pressure falls, the fracture will stop
propagating and start to close, until it collapses completely when the fracture pressure falls
below the stress.
E] If the reservoir pressure rises, then the fracture pressure will rise to maintain the leakoff.
When the fracture pressure rises sufficiently above the stress the fracture will propagate,
and continue to propagate as long as the reservoir pressure rises. If the reservoir pressure
rises above the stress, then the fracture size will be unbounded by the rock mechanics (the
formation is effectively unconsolidated).
These simple examples demonstrate how to approach analysis of the thermal fracture
model in REVEAL.
It is useful to look at the dynamic changes to fracture pressure, stress and reservoir
pressure.
3
317 REVEAL
3 Worked Examples
3.1 Worked Examples - Overview
This document contains tutorials for the Petroleum Experts software REVEAL.
· Dexterity Examples:
The first set of tutorials is for beginners and focuses on the dexterity skills needed to
use the program.
· Physics Examples:
The second set of tutorials assumes the user understands the basics of the program
and focuses more on physics and engineering issues relating to the program.
· OpenServer Examples:
The third set of tutorials focuses on the use of OpenServer: i.e. how to control the
program through external macros.
The models used in these examples can all be found under the samples sub-directory of the
main installation.
The models are distributed as REVEAL files characterised by the.RVL extension.
A detailed index of the examples available can be found in the Worked Examples - Index
section.
The following table can be used as a reference for the worked examples included in this
guide:
analyse the
results.
Importing an Demonstrates Dexterity Eclipse Import Step by Step
Eclipse model how to import and Examples
into REVEAL Eclipse deck
within REVEAL
and how to
compare the
results of both
software for a
similar simulation.
Use of radial Demonstrates Dexterity Radial Aquifer Step by Step
aquifers how to setup a Examples
radial aquifer in a
simple REVEAL
model.
Thermal Demonstrates Dexterity Thermal Fracture Step by Step
Fracturing how to setup a Examples
thermal fracture
calculation
including fracture
initiation and
propagation.
Souring Demonstrates Dexterity Souring Step by Step
how to setup a Examples
simple souring
model without
minerals (i.e. this
model is not using
the water
chemistry
module) being
defined in the
reservoir and
injected water.
Dry Gas Demonstrates Dexterity Dry Gas Step by Step
how to setup a Examples
REVEAL model
with a dry gas
PVT.
Retrograde Demonstrates Dexterity Retrograde Step by Step
Condensate how to setup a Examples Condensate
REVEAL model
with a retrograde
condensate PVT.
Radial Gridding Demonstrates Dexterity Radial Grid Step by Step
reduce fluid
viscosity around
the wellbore.
Asphaltene Demonstrates the Physics ExamplesAsphaltene Step by Step
use of the
Asphaltene model
associated with
permeability
reduction
calculations.
Non-Newtonian Demonstrates the Physics ExamplesNon-Newtonian Step by Step
Fluid use of REVEAL in Fluid
case the fluid
considered is a
non-Newtonian
fluid.
Equalizer™ Demonstrates the Physics ExamplesEqualizer Step by Step
Modeling use of complex
horizontal
completions, with
both tubing
screens and
Equalizer™
options.
OpenServer - Demonstrates the OpenServer OpenServer - Step by Step
Well Results use of Examples Well Results
OpenServer to
export all well
results to an
Excel
spreadsheet.
OpenServer - Demonstrates the OpenServer OpenServer - Step by Step
Well Production use of Examples Well Production
OpenServer to
report block by
block well
production rates.
OpenServer - Demonstrates the OpenServer OpenServer - Step by Step
Batch Matching use of Examples Batch Matching
OpenServer to
automate batch
calculations for
sensitivity /
matching
analysis.
OpenServer - Demonstrates the OpenServer OpenServer - Step by Step
In common to all Petroleum Experts software, the main functions should be accessed from
left to right across the menu bar.
Within one section of the menu, sub-section are organized so that logical progress can be
made by going from the top to the bottom of the list.
It is obviously advisable to save the REVEAL file archive (*.rvl) using File|Save Project or
File|Save Project As... at regular intervals.
The REVEAL archive file contains the script and additional project files such as PVT, lift
curve, output graphics etc. The archive files present may be viewed, added to or deleted
using the option Project|Edit / View Project....
The wizard may be used for one section only, or run consecutively through all of the
sections.
The wizard is activated with a right click inside the input script window (i.e. Start Wizard), or
by selecting Input (i.e. Script Wizard).
Once the wizard ends normally (section(s) completed, or Finish selected), the output script
is updated.
The only data stored internally by REVEAL is that written to the script and held in datablocks.
Datablocks headers are recognisable in the script as they are coloured in red.
To prevent the changes made in using the wizard from being written to the output script,
select Cancel.
The Next and Previous buttons can be used to navigate forwards and backwards through
the wizard screens.
The Validation, Plot and Calculate buttons may be used on some screens to check data
input.
The script and all associated data structures (including results) are only saved to the
REVEAL archive when the REVEAL project is saved.
On-Context Help
The on-context help can be invoked at any point when using the REVEAL script by selecting
the icon shown below to view a simple description of the data entered.
Move the cursor over the script to view the on-context help and turn the on-context help off
by de-selecting the icon shown.
When using the Wizard, the on-context help can be invoked by selecting the Help button on
the right hand side of the wizard screen.
3.3.3 Step 3 - Control section
This section sets the scope of the REVEAL model being created, and includes major solver
options.
Depending on the different options selected at that stage, the input data sections relevant to
the model will be automatically displayed in the right hand corner of the wizard screen.
The name of each input data section will be displayed in red and have a red cross
associated with it until all the input data needed has been entered. Once this is done, the
section name will be displayed in green.
The default solver options (i.e. Fully implicit solver and associated settings) are setup to
handle successfully a wide range of model, and should only be modified when facing
specific cases such as non-convergence issues for instance.
More information regarding the effect of the different solver options can be find in the Input
Wizard | Control Section.
The next screen selects the models that will be included and sets the reference depth and
temperature.
- A reference temperature is needed for certain correlations that require reference
conditions
- A reference depth is needed to report mean reservoir pressures
For this simple example, simply add the reference conditions as shown below, and select
Next.
The next screen enables to select reservoir components additional to the standard oil, gas
and water including non-reservoir injection gases.
In this example, none of these additional components are selected.
In the reservoir section, grid geometry and petrophysics characteristics are entered.
On the first screen enter a Cartesian grid with X and Y dimension set to 25 and Z dimension
set to 15, then select Next.
We are going to enter a very simple grid with 300 ft square and 20 ft deep blocks. Enter the
values as shown, then select Add to enter the Z direction depths.
Select Plot to view a wire frame mesh. Close the plot screen to return to the 'Reservoir
Section: grid input' screen and select Next.
The next screen enters the reference depth at the top of the grid. Select Add, then All, to
select all the blocks, then enter a value of 10000 ft.
This data has been entered and can be checked using the Validate button.
The list of data entered is not updated on the screen dynamically, but may be seen by
clicking left over the list.
There is no need to click on the Add button to confirm this set of data.
Select Next to enter the porosity data, select Add, then select All grid blocks, and enter a
value of 0.2.
Select Next to enter the X direction permeability, select Add, then select All grid blocks,
enter a value of 100 mD.
Select the Y Permeability tab at the bottom of the screen, and leave the Y direction
permeability multiplier at 1, select Z Permeability tab and set the Z direction permeability
multiplier to 0.1.
This will lead to the following distribution of permeability in the reservoir:
- Horizontal permeability is uniform through the reservoir and equal to 100mD.
- Vertical permeability is uniform through the reservoir and equal to 1/10th of the
horizontal permeability, therefore 10mD.
combination of these three indexes is unique and enables to characterise the location of a
cell in the grid.
The positive face of a cell in one direction is defined as the face enabling communication
between the cell considered (i.e. characterised by an index i) and the adjacent cell (i.e.
characterised by an index i+1), as specified by the diagram below.
These transmissibility multipliers are usually used to model the effect of transmissibility
barriers for instance.
We won't be using these so select Next to enter absolute transmissibility data.
If this is entered (and the drop-down list at the top of the screen is changed to say 'Yes')
REVEAL will not perform its own transmissibility calculations but will use these
transmissibilities directly.
These would normally be imported directly from the results of another simulator: it is
particularly important to use these absolute transmissibilities when trying to reproduce in
REVEAL the results of another simulator with the same model. More information regarding
this subject can be found in the External Data Import section.
We won't be using pore volume multipliers so select Next again to define rock types.
Ü Large pore volume multipliers can be specified at the edge of sector models to
ensure that the pressure at the reservoir boundaries stays constant during the
run.
We will have only one rock type and this is the default set on this screen (one rock type
covering the entire grid). The same goes for PVT, equilibration and fluid in place regions on
the next two screens.
The fluid in place region enables to define several oil in place regions in the model to obtain
information such as recovery factors per region for instance. One option will be to define one
After completing the PVT, equilibration and fluid in place region screens select Next to enter
non-neighbour connections, then Next again to enter grid refinement regions. We won't be
using either of these for this example.
This ends the reservoir section and the data entered should be saved. Select Finish to end
the wizard and write the data entered to the input script. Then select File|Save Project to
save the REVEAL archive.
The data entered so far can be seen by scrolling up within the input script window.
Use the right mouse button from within the input script window to restart the wizard at the
physical section by selecting Start Wizard|Physical.
PVT:
We are going to enter a simple (unmatched) black oil PVT for an oil that is undersaturated at
5000 psig and 200 F.
Select New to enter a new PVT, then select Oil for the fluid type and enter a name (e.g.
Getting Started), then select OK to bring up the PVT entry screen.
This is the same as other Petroleum Experts PVT entry and indeed previously created PVT
files can be imported directly using the Import option.
Do not do this now since we are creating PVT data from scratch and not importing an
existing file.
Enter the following black oil PVT data. We are not concerned with complexities of PVT
matching and miscibility during this tutorial, however, it is recommended to use the Variable
Pb option to generate the PVT tables, as illustrated below.
The fluid properties at different P and T can be estimated by using either black oil PVT
correlations or PVT tables, as per the other tools of the IPM suite.
Taking into account the volume of calculations to be done in REVEAL it is generally
preferable to generate PVT tables from a correlation (i.e. this technique is valid with either
matched or unmatched PVT correlations).
This will enable to decrease the simulation run time.
The range of pressures and temperatures considered when generating the PVT tables
should be wide enough to cover the reservoir conditions encountered during the run.
If not REVEAL will have to extrapolate the PVT tables and this may lead to erroneous
results.
For this reason a facility is available to generate tables from a correlation. Select Calc
Tables and enter the following ranges.
Next select Calculate, then OK and Done to return to the main PVT screen.
Select Tables to check the table data has been generated correctly, as illustrated below: in
this case, both saturated and undersaturated tables have been created for a range of
pressure up to the maximum pressure entered and for one single temperature, 200F.
When Done is selected to return again to the main PVT screen, the Use Tables option is
automatically selected, as illustrated below:
It is important to note that REVEAL is always performing fully thermal calculations, even if
the PVT is not defined as thermal.
1. IsoThermal PVT is defined: REVEAL will calculate how the temperature evolves in
the system, but will not modify the PVT properties of the fluid in situ.
2. Thermal PVT is defined (i.e. PVT tables include several temperatures): REVEAL
will calculate how the temperature evolves in the system and will modify the PVT
properties of the fluid in situ.
This will result in the correct modelling of injectivity in cold water injectors for instance,
where the change of water viscosity due to the drop of reservoir temperature modifies
the injectivity of the wells.
As REVEAL is always performing fully thermal calculations, the default thermal properties
should always be selected when setting up the model.
More over, it will be recommended to include thermal exchanges by conductivity by selecting
the "Thermal Conductivity" option, as illustrated below.
Once this has been selected, the Default thermal properties button should be used to
setup automatically the default values for the fluid and rock heat capacities.
Note that units may altered dynamically by left clicking over the unit (highlighted above).
Don't alter the units now.
Diffusivity and Dispersivity models can be selected in this screen as well. These options will
be available only if the IMPES solver is used.
Select Validate to check the data entered. Click right over any data entry cell and select
Validation Range to change the minimum and maximum values.
It is not necessary to alter the validation range for REVEAL to accept data input. Any
changes made to the validation ranges are saved with the file.
Compressibility Data:
Select Next to enter the rock compressibility, enter a value of 1e-5 psi-1 at 5000 psig for the
uniform pore volume compressibility, as illustrated below.
Select Next to enter various (mostly optional) viscosity model parameters. No data entry is
required for this model so select Next to complete the physical data section.
3.3.6 Step 6 - Relperm section
The relative permeability and capillary pressure data are entered in this section.
The first screen enables to select the relative permeability models to be used.
Relative permeabilities may be directional, well or interfacial tension dependent (i.e.
desaturation model), but not for this case so we will use the standard setup. Select Next.
The next step will be to create and define the different residual saturations and relative
permeability regions present in the model.
In the case considered, there is only one saturation and relative permeability region defined.
Select Add Region and make sure the Rock Coverage All checkbox is ticked.
Enter the residual phase saturations as shown and select Next.
Ü Residual saturations for desaturation and gas hysteresis would be entered on this
screen if these models were active.
Ü If the Data Entry option is set to Tabular rather than Parametric, one can enter the
residual saturations as tables rather than end points and Corey Exponent.
Tables can be copied and paste from an Excel spreadsheet for instance.
Enter the following data and select Plot to view the data entered.
Select OK, then Next to enter the capillary pressure data.
We are going to have no capillary pressure in this model, so enter the following tabular data.
Capillary pressures can be entered either under tabular form or using the J-Leverett
function.
This completes the relative permeability section, so select Finish to write all of the data
entered so far to the input script.
Save the REVEAL archive and restart the wizard at the Wells section.
Note that the Aquifer, Mobility, Phase behaviour, Adsorption, Water Chemistry and Solids
sections are not required for this simple example.
These sections are therefore greyed out in the progress window in the wizard right hand side
corner.
3.3.7 Step 7 - Wells section
This section enables to specify the different types of well (i.e. producers and injectors)
existing in the field modelled.
- User entered connection factors (i.e. this is the option used when data is imported
from a third-party simulator deck)
- Multilateral wells entered through their deviation survey. This type of well is defined as
Multilateral and wellbore friction and crossflow can be modelled when using this type of
well definition.
We are going to enter one horizontal well perforated at a depth of 10150 ft (centre of the
reservoir).
In the wells list select Create to add the well, then select Multilateral description in the
Enter well position by selection box.
Give the multilateral description an identifier name (e.g. horiz) and set the BHP (Pwf)
reference to Fixed depth and set a value of 10050 ft (remember the top of the reservoir is at
10000 ft and we have 5 vertical blocks of 20 ft each).
In REVEAL it will be possible to use tubing performance curves to describe the well outflow
performance. If this the case, it is important that the well reference depth set in that
section matches the one defined when generating the well outflow performance
curve.
In other words, the depth entered as reference depth in REVEAL should correspond to the
top of the perforation defined in PROSPER (i.e. lower depth in the PROSPER file downhole
equipment section).
Select the Edit Multilateral button to enter the deviation survey for the well.
Select the Change Reference button to set the first node of the well at coordinates
(2000,3750,10150).
Select OK once the reference position has been entered.
Select Add tubing and then OK. Next, enter the deviation survey as shown below.
Note that the internal diameter and roughness units have been change from feet to inches,
In order to obtain the image above, that shows a cut of the reservoir in the Y direction with
an upscaled Z scale and a transparency applied to the system, the following steps were
used:
- 5: Rotate the view using the mouse left button and zoom in/out using the mouse
roller button.
If the view becomes too distorted, the F5 button enables to come back to the initial
view.
- 6: The red floppy disk icon on the top right hand side of the view enables to save the
graphic configuration used.
Give a name to the file to be saved, and this specific viewing configuration can be re-
used directly by selecting the 3D | Load View option in the 3D graphical window.
- 7: Close the plot window to return to the wizard and select Next to complete the
Wells section.
These inputs are important for REVEAL to be able to know the status of the reservoir at the
beginning of the prediction calculation.
Since we only have one PVT region and one PVT description the default assignment has
been made already.
The PVT defined is using the Variable Pb option so the variation of Rs with depth has to be
specified, as illustrated below.
Reference depth of 10000 ft and reference pressure of 5000 psig will be used in that model,
which correspond to the reservoir centre.
The PVT has been defined as isothermal so there will be no thermal gradient to be defined.
This model is to be run for 1 year with a constant production rate of 10,000 STB/d.
Modify this as appropriate and select OK when this has been done.
It is possible to note that in this case, all the parameters have been selected to be reported,
and the frequency of the 3D grid array has been set to 1 timestep.
This is a setup that can be useful for initial runs to gain a good understanding of how the
model / reservoir is behaving. However, it will tend to generate a large amount of results,
which might not be practical, especially when working with larger models.
Start the calculation using the "Play" button ( ) and save the REVEAL archive once it has
completed.
When the simulation is running, the calculation progress will be displayed and it will be
possible to visualise the average, well, 3D and wellbore results using the visualisation
buttons below.
The following section describes how to access and view results in REVEAL.
Results in REVEAL can be viewed dynamically during the simulation run and analysed after
the simulation run.
In the main shortcut menu bar, use the buttons to view the results.
- The button provides average reservoir properties such as mean phase pressures,
saturations and volumes for the different regions defined in the model.
These data may be viewed, plotted and printed, or copied to the clipboard for import
into another application.
The Save button available on that screen enables to save this specific set of results
so that it can be retrieved even after another simulation has been run with the same model.
This can be used to compare results between different runs.
It is important to note that if the results are not saved that way, each time a new
run will be launched, results of previous runs will be overwritten and therefore lost.
- The button provides well results data, including instantaneous and cumulative
rates, GOR, water cut and phase pressure and saturation data at well blocks.
The Save button available on that screen enables to save this specific set of results
so that it can be retrieved even after another simulation has been run with the same model.
This can be used to compare results between different runs.
It is important to note that if the results are not saved that way, each time a new
run will be launched, results of previous runs will be overwritten and therefore lost.
- The button provides a three dimensional display of the fluid properties that were
selected for display (Run Simulation|Select Properties...).
It includes graphical representation of wells, completions and fractures.
The "Play" button enables the user to visualise REVEAL results through time for
the simulation run. The interval at which 3D snapshots are saved has been
defined prior to the simulation being run. For more information regarding how to
setup these, please refer to the Run Simulation section.
The "Fast Forward" button enables to go step by step through the run results
The "Play to End" button enables to go directly to the last 3D snapshot,
corresponding to the end of the simulation run.
The buttons respectively enables to recall a 3D view that has already been
saved and to save a 3D view.
The buttons respectively enable to Zoom In, Zoom Out of the current
view and to come back to a standard view.
The following is a list of recommended control functions within the 3D display window.
Left mouse rotates the image in wire-frame mode about the X and
Y axes.
Ctrl+right mouse rotates the image in wire-frame mode about the Z
axis.
Shift+left mouse pans the image. This may also be achieved by using
the left mouse button near the edge of the display
window.
Ctrl+left mouse selects a region to be enlarged.
Mouse Roller Button zoom In / Out
F5 returns the scaling to its original size.
W key sets the display to wire-frame mode.
S key sets the display to surface mode.
The following is a list of recommended options available using the right mouse button
within the 3D display window.
right mouse|3D Options set block shrink factors, surface transparencies and
select regions of blocks (usually a plane of blocks) to
view.
right mouse|Scale set the scale range for colour tables; set linear and
logarithmic scaling and the end points (minimum and
maximum values to scale between).
right mouse|Object Properties set visibility (presence or absence),
transparency, wire-frame or surface mode for
individual elements within the display (e.g. set
fractures to be wire-frame). Some element types may
be selected individually (wells, completions, fractures)
by selecting the appropriate element type with the left
mouse button in the Viewing Objects column of the
table.
right mouse|View set the variable to view.
right mouse|Playback Options set the range, interval and speed of 3D
playbacks.
It is possible to display separate results and runtime windows by using the View | Cascade
option in the main menu bar.
3. REVEAL file
Eclipse_Import.rvl
Model Setup:
The workflow below will describe how to import an isothermal Eclipse model in REVEAL,
what is the additional data required by REVEAL and what are the particular elements /
Eclipse keywords one needs to be particularly attentive to.
An Eclipse (i.e. or VIP) model is imported into REVEAL from binary files generated following
the keyword entry in these simulators. This is to ensure that the data obtained is not subject
to alteration by subsequent keywords in the input deck, but is the final results of all keywords
and represents the model to be simulated.
- To import the geometrical and physical data (including tabular data), the Eclipse files
required are the binary output grid geometry (*.grid or *.grd or *.egrid) file and
initialisation file (*.init or *.ini). Formatted version of these files can also be read (.fgr
and .fin). See the Eclipse manual if these files have not been generated.
- To import the restart data (solution and well data) restart file(s) will be required (*.rst
or *.unrst). These may be in individual or unified format (this must be specified on the
load screen).
- It is also currently possible to bring the corner points of an Eclipse grid into REVEAL
directly from the Eclipse ASCII deck. Specifically, REVEAL can read the COORD and
ZCORN cards and translate the data into a REVEAL datablock.
The consistency between Eclipse and REVEAL models in terms of Units system used is
taken care automatically by the importing workflow.
1. Create a new REVEAL file, by going to the File / New section of the REVEAL menu.
2. In the Input section of the REVEAL menu, select the Import from Simulator or ASCII
file option.
3. The first import wizard screen will appear. This screen enables to select the files to import
in REVEAL.
The first step to take in this screen is to select what type of file needs to be imported.
In order to import Eclipse files, it will be necessary to select the Eclipse deck (.init, .grid, .
rst/unrst, .data) option.
The Browse button can be used to select the directory where the Eclipse files are saved.
After doing so, it will be needed to enter the name of the file considered:
- name of the Eclipse init file
- name of the Eclipse grid file (if this file has got the same name than the init file,
there is no need to specify it again)
- name of the Eclipse data file (if this file has got the same name than the init file,
there is no need to specify it again)
To load the Well Data from the Eclipse deck, a restart file is required. REVEAL will import
the information about the completion of the wells only from the Restart files.
If the restart data needs to be imported, the Load solution / Restart data (for solution
data and well tables) option must be selected.
The name of the restart file then needs to be entered (if this file has got the same name
than the init file, there is no need to specify it again).
For this example, the file considered is a unified restart file (i.e. it is characterised by the .
unrst extension). It is therefore needed to select the Unified restart file option.
It is now possible to pass to the following import wizard step, which will enable one to select
the information to import from Eclipse to REVEAL. To do so, the Next button should be
used.
The following screen list all the information that may be contained in the Eclipse file and that
can be used in REVEAL. It is here possible to import all the data from the Eclipse file (i.e. by
selecting the All option on each of the sub-screen), what is going to be done in this example,
or to select individually the data that have to be imported from Eclipse.
As it can be observed, each sub-screen lists the Eclipse data corresponding to specific
model characteristics, such as geometry and petrophysical properties or connate saturations
for instance.
In this case, endpoint scaling is not use in the Eclipse deck, so the Endpoint scaling data is
not selected.
It can be seen that in the 'Well and Solution (restart) data' section the user has the ability
to select dates. These dates correspond to the dates on which the restart files were created
in Eclipse.
For the 'Well Data' section, it is possible that in the Eclipse Deck there are more than one
wells and that the wells come online at different dates. The restart file which has the
information for all the wells in the Eclipse deck will be the last restart file i.e. at the end of the
Eclipse run. Therefore by default REVEAL will select the last available date on which to read
the information about the wells.
The 'Solution data' section corresponds to the date on which to read the condition of the
reservoir. REVEAL will import the condition of the reservoir on the date selected in the
'Solution Data' section. To import the correct information about the reservoir, it is important
to select the first date, which corresponds to the date on which the forecast run was started.
REVEAL by default will select the first available date.
Once all the data to import have been selected, a REVEAL model will be created including
all the data from the Eclipse model that have been selected.
The following screen enables one to check the validity of the import process. It lists all the
parameters imported from Eclipse to REVEAL and specify if the import has been made
properly.
Here, it is possible to notice that all the parameters have been imported properly.
If a check is run in the Eclipse data file, it is possible to notice that these values were not
defined in the Eclipse file; therefore they have not been imported.
If several rock types / PVT tables are defined in the Eclipse deck (i.e. which is not the case
here), this screen will allow to relate the rock type maps imported from Eclipse to the rock
type maps used in REVEAL using the Map Imported Rock Tables to REVEAL rock types
and the Map PVT tables to REVEAL PVT regions option.
In order to get the model to run, the following elements need to be setup:
Using the REVEAL wizard, the screens presented below can be accessed:
- In the Schedule section: The Eclipse schedule is not imported in REVEAL. It then
needs to be setup.
For example, it will be possible to use the simple schedule defined below:
o an initial step size needs to be entered: here 1 day
o the well PROD is set to produce at a fixed rate of 2,000 STB/d from the
01/01/2007 to the 01/01/2008.
The REVEAL model can now be run as a classic REVEAL model is.
It will be important to proceed to some results quality control after the import procedure has
been done.
It is possible to find more detailed information regarding specific points of the Eclipse import
facility in the Importing from Eclipse (binary files) and the Importing from Eclipse (ASCII files)
section of the online help.
Results Analysis:
Using the model setup previously, it will be possible to check the validity of the REVEAL
model obtained through the import procedure by comparing similar run of the two models.
This can be quite useful as one of the main objectives of REVEAL is to integrate different
studies such as reservoir simulation, scale modelling, thermal studies, fracturing studies,
etc.. that are usually done in isolation in one unique model, that is based on the published
reservoir model.
It is therefore important for the engineer to be confident in the REVEAL results: under the
same conditions, they should reproduce the Eclipse results.
The Excel file Eclipse_Import_Results contains results of two similar runs of the model
above, one ran with Eclipse and one with REVEAL.
In this case, the well rates are fixed, but it will be possible to compare the well bottom hole
pressures as illustrated below.
Phase saturations in the different grid blocks can be checked as well and will be found to be
similar.
Therefore, once the import procedure is done, one can be confident that if setup exactly
similarly, the REVEAL model will behave exactly similarly to the Eclipse model.
It can therefore be use with confidence for the rest of the study.
Model Setup:
Two radial aquifers encroaching the X direction faces of a square reservoir are to be setup.
1. Select the Analytical Aquifer Model in the Control Section of the REVEAL input
wizard.
Once this is done, the aquifer section will be added automatically to the input script and the
input wizard, as illustrated above.
Go to this section of the wizard to enter the aquifer properties.
2. Specify the Aquifer Properties in the Aquifer Section of the REVEAL input wizard.
Two types of aquifer are available in REVEAL: Linear and Radial. Each of them could be
defined as infinite acting (i.e. no external boundary will be defined for the aquifer) or finite
acting.
- Aquifer 2 is an infinite radial aquifer encroaching the reservoir from the X+ face.
The connection area is defined as:
X from 13 to 13: the aquifer encroaches only the last column of grid blocks in
the X direction
Y from 1 to 13: the aquifer encroaches all the columns of grid blocks in the Y
direction
Z from 1 to 5: the aquifer encroaches all the rows of grid blocks in the Z
direction
The data for aquifer 2 is illustrated below.
It is possible to check the aquifer setup by plotting the aquifer blocks in a 3D view of the
initialised reservoir.
This can be accessed by selecting the t=0 button in the icon menu bar and selecting View |
Aquifer blocks.
ResultsAnalysis:
Once the model has been run, the impact of the aquifer can be analysed by plotting for
instance the water saturation evolution at certain points in time in a Y direction reservoir
slice.
This can be obtained by going to 3D View |, select the water saturation in the View section
and select Cutting Plane and Y=10 cutting plane in the properties section.
Contours have been plotted on the graph below as well as they illustrate well the importance
of the water encroachment and pressure support due to the aquifers.
Model Setup:
The reservoir considered is a square shape reservoir including a horizontal produced and a
vertical water injector.
The water is injected at surface temperature: the reservoir temperature will then be lowered
around the water injection wellbore. Rock stress being temperature dependant, the stress
field around the water injection wellbore will be decrease and may lead to a fracture forming
around the water injection wellbore.
Using REVEAL it will be possible to setup a POTENTIAL fracture at the water injection well
level and analyse whether this fracture is going to form and how will it be propagating
through time.
1. Activate the fracture model in the Control section of the input wizard.
2. Setup the thermal PVT in the Physical section of the input wizard.
For the variation of temperature due to injection of surface temperature water in the
reservoir is to be computed, it will be necessary to define the fluid PVT properties at different
temperatures.
It is important to note that if the PVT properties of the fluid are defined at only one
temperature, REVEAL will perform its calculations isothermally: it will not extrapolate the
PVT properties across a temperature range.
- Specify a range of temperatures and pressures over which the PVT tables need to
be generated.
This ranges of temperature and pressure should cover the range of temperature and
pressure that will be encountered during the life of the reservoir.
- Go to the Tables section to inspect the PVT Tables that have been saved.
- Make sure the "Use Tables" option is selected in the main screen.
3. Add the fracture to the fracture list in the Well section of the input wizard.
The potential fracture needs to be added in the well section.
Two consecutive screens enable to setup the fractures:
- The first screen enables to define the fracture model used and the fracture location.
More information regarding the fracture models can be found at the following location: Wells
Section | Fractures.
4. Turn the fracture update criteria ON in the Schedule section of the input wizard.
The fracture model will not be activated unless the fracture update criteria is turned ON.
The fracture update criteria can be found in the schedule section of the input data wizard, as
illustrated below.
It is important to notice that in the case considered, the temperature of the water injected
has not been specified, but is being taken from the lift curve assigned to the injection well,
as illustrated on the snapshot below.
ResultsAnalysis:
When the model is running, the calculation progress log will provide information on the
evolution of the size and injection volume associated to the fracture.
Once the run is ended, it will be possible to analyse the evolution of the following
parameters close to the water injection wellbore.
The same model has been run without the fracture being modelled. The plot below
illustrates the difference in the water injection rate at a fixed THP between both cases,
illustrating the impact of the fracture and therefore the importance of taking the fracture into
account when designing the water injection system for that reservoir.
3.4.5 Souring
Associated Files:.
The files associated with this example are located in C:\Program Files\Petroleum
Experts\IPM 7.0\Samples\reveal\\Dexterity_Examples\Souring
Model Setup:
Two souring models are present in REVEAL:
The downsides of this model are the fact that it requires short timesteps and has
been found not to model accurately the nutrient behaviour. This model has been super-
seeded by the activity based model described below.
Further technical details regarding both models can be found in the Souring section.
The model considered is constituted of one producer and one water injector. The souring
model (i.e. Activity Based Model) is activated in order to illustrate the development of the
SRB bacteria around the water injection wellbore and the consequent evolution of H2S
concentration in the reservoir.
1. Activate the Souring Model in the Control section of the input data wizard
Once the souring model is selected, the reservoir component list specified in the next screen
will automatically be updated to include the components needed by the souring model, as
illustrated below.
2. Specify the Partitioning Coefficients in the Water Chemistry section of the input
data wizard
In that example, no adsorption has been specified: all the species formed will be transported
with the fluid flow.
The adsorption section will then be left empty as illustrated below:
Once the list of components has been specified, one needs to specify the partitioning of the
H2S between aqueous and oleic phases, and between oleic and gas phases.
The partitioning is achieved by considering the H2S dissolved in the hydrocarbon phases to
be represented by an ideal gas in equilibrium with the aqueous phase.
The ideal gas H2S partial pressure is related to the mass concentration of H2S within the
hydrocarbon phase.
Reported separator concentrations are calculated using two partition coefficients that reflect
the effective partitioning which will be process dependent.
The Oil/Water partition coefficient defines the ratio (mass fraction of CO2 in separator oil)/
(mass fraction of CO2 in separator water). Mass fraction is lb/lb.
The Gas/Oil partition coefficient defines the ratio (volume fraction CO2 in separator gas)/
(mass fraction of CO2 in separator oil). Volume fraction is scf/scf.
If the "User H2S o-W partitioning" option is unselected, then the partitioning of H2S between
the oil and water phase will not be defined by the user, but an equilibrium database will be
used to estimate this partitioning.
More information on the partition coefficients can be found in the CO2 and H2S partitioning
section.
3. Specify the Souring model parameters in the Water Chemistry section of the input
data wizard
Once the partitioning data has been entered, the souring model parameters need to be
specified.
The temperature range entered enables to limit the activity of the SRB to a temperature
range they can physically sustain.
The concentration dependence section enables to define the minimum and maximum SRB
concentrations in the reservoir.
The growth and respiration dependence section enables to specify the mass ratio between
the carbon source and H2S and SRB respectively.
The nutritional efficiency enables to define the fraction of the SRB energy that is used for
growth and the fraction of the SRB energy that is used for respiration (i.e. and therefore for
H2S production).
The VFA activity rate enables to define the VFA consumption rate at the maximum SRB
concentration. In that case, at 100F, the activity of SRBs will be able to consume up to
100pm of VFA in a day.
The VFA available is partitioned between oil and water phases as defined by the VFA
partitioning parameter: a VFA partitioning of 10 illustrates the fact that the concentration of
VFA in the oil will be 10 times higher than the VFa concentration in water.
Once the reservoir water composition has been entered, the composition of the injected
water needs to be specified as well.
In order to do so, one needs to go to the schedule section and select the injection well. The
injection fluid section at the bottom of the screen enables to specify the injected water
composition.
ResultsAnalysis:
The model is then setup and can be run.
1. Initial Run
In the initial run results, the following elements can be looked at:
- The temperature around the injector is lowered to values that are suitable for SRB
growth
- The VFA concentration is decreasing around the injector, due to the fact that the
reservoir water is displaced by the injected water that does not contain any VFA.
- The SRB concentration is increasing in areas where the temperature is within the
correct range and VFA is available.
- The evolution of the H2S concentration as well as the time to H2S breakthrough can
then be monitored, as illustrated below for well 2.
This modification will lead to a more efficient VFA flooding phenomenom, as illustrated
below: at the same day than the snapshot above, the concentration of VFA in oil around the
injector well is reduced.
This will lead to a later and smaller development of the SRBs in the reservoir as illustrated
below.
However, due to the faster movements of water, the area of the reservoir that is cooled
down and therefore available for SRB to grow is larger than in the earlier run, leading to a
more important development of the SRB at the end of the run.
This example illustrates as well the importance of starting to work with small straightforward
models to fully understand the impact of all the model parameters prior moving towards a
larger system where interpretation will be more difficult.
Model Setup:
REVEAL includes similar options to the rest of the IPM suite when considering gas
modelling:
- A dry gas PVT model that enables to model dry gases or condensate with very low
dropouts. In that case, a constant CGR will be defined for the fluid and the liquid will only
dropout at surface conditions.
This will therefore lead to a single phase system unless water is present in the
system.
The setup of such a model is illustrated below.
The setup of a dry gas model is exactly similar to the one of an oil model (i.e. see the getting
started guide) apart from the PVT file setup.
In the physical section of the input wizard, the following steps can be taken:
1. Select "Gas" as the fluid type considered, and select a fluid label.
PVT tables can be generated (i.e. using table look-up techniques will tend to speed-up the
calculations) using the Calc.Tables section, however it is important to make sure that the
range of pressure and temperature over which the tables are generated is wide enough to
cover the reservoir prevailing conditions.
In this case, only one temperature is used as there is no cold fluid-injection: the downhole
and reservoir temperatures will therefore be assumed constant during the forecast.
The following screen will be displayed. Click on Calculate again to generate the tables.
Once the tables have been generated, select the Save button to save the PVT tables.
When going back to the main PVT screen, make sure that the Use Tables option has been
Results Analysis:
Plotting the initial gas saturation in the reservoir, we can observe that the gas-water contact
specified has been respected.
If the CGR evolution is plotted with time, it is possible to notice that the CGR is kept constant
in the reservoir, according to the assumption of the dry gas model.
Moreover, when considering the oil saturation, it is possible to note that it stays nil in the
reservoir for the entire simulation period, illustrating the fact that all liquid dropout will
happen at surface.
The main objective of this example is to illustrate the setup of a retrograde condensate
example in REVEAL.
Model Setup:
REVEAL includes similar options to the rest of the IPM suite when considering gas
modelling:
- A dry gas PVT model that enables to model dry gases or condensate with very low
dropouts. In that case, a constant CGR will be defined for the fluid and the liquid will only
dropout at surface conditions.
This will therefore lead to a single phase system unless water is present in the
system.
More information regarding how to model such a fluid can be found in the Dry Gas
worked example section.
The setup of a retrograde condensate model is exactly similar to the one of an oil model (i.e.
see the getting started guide) apart from the PVT file setup.
It is important to note that as for any application in the IPM suite, the validity of the black oil
retrograde condensate model needs to be checked prior using it for simulation purposes.
The validation procedure that needs to be used to check that model is described in details in
the PVT section of the MBAL manual.
The black oil retrograde condensate model should not be used if this validation
procedure has not successfully shown it is behaving accordingly to the real fluid.
In the physical section of the input wizard, the following steps can be taken:
1. Select "Retrograde Condensate" as the fluid type considered, and select a fluid
label
3. Match the Retrograde Condensate Model to experimental data and Generate PVT
tables
Results Analysis:
Analysing the results help us underline the differences between dry gas and retrograde
condensate models:
At t=0, the CGR in the reservoir is equal to 100 STB/MMScf, which correspond to the initial
CGR entered in the PVT at 5000psig.
Once the reservoir pressure starts dropping, the CGR evolution can be noted.
At a reservoir pressure of around 3850psig, the CGR has dropped to 45 STB/MMScf, which
corresponds to the vaporised CGR curve from the PVT.
The oil saturation in the reservoir evolves accordingly to the change in CGR, illustrating the
fact that the liquid dropout is taken into account at reservoir level.
Model Setup:
The following steps can be taken to setup a radially gridded model in REVEAL.
These models can be specifically used to analyse near wellbore behaviour for instance.
The global setup of the REVEAL model is similar to the getting started example apart from
the reservoir and schedule sections illustrated below:
The radial grid option requires a central well radius to be specified as well.
The uniform sector angle is selected, with a total angle of 3.6 degrees being selected.
Sector angles do not need to be specified as the uniform sector angle option has been used
previously.
In the schedule section, the Perforations section needs to be used to specify the well
characteristics.
The perforations section enables to define the layer over which the wells are perforated,
their flowing radius, skin and potential PI multiplier.
They are updated from the well section.
In that model, the central well is setup as a producer, and the external boundary well is shut-
in, creating therefore a no-flow boundary at the grid outer limit.
Results Analysis:
Once the model is run, it is possible to view the results in the 3D, seeing for instance here
the oil pressure increase near the injection wellbore.
Model Setup:
The following steps can be taken to setup a curvilinear gridded model in REVEAL.
The global setup of the REVEAL model is similar to the getting started example apart from
the reservoir and schedule sections illustrated below.
For the curvilinear grid option, the spacing between the well must be entered, and an
excluded fraction.
The excluded fraction is the fraction of the distance between the two wells excluded from the
model, which prevents stability problems near the wells. It should typically be set to about
0.05.
In the schedule section, the Perforations section needs to be used to specify the well
characteristics.
The perforations section enables to define the layer over which the wells are perforated,
their flowing radius, skin and potential PI multiplier.
They are updated automatically from the well section.
Results Analysis:
Once the model has been run, it is possible to analyse the evolution of water and oil
saturations in the system.
REVEAL.
Model Setup:
The model considered is a simple grid including two multilateral wells and three injection
wells.
Grid refinement around each of these 5 wellbores are defined.
In order to define these grid refinements, the following procedure was used:
In the reservoir section, the number of grid refinements to be described can be entered, as
illustrated below:
The coverage of each grid refinement needs to be specified in that section as well.
Once these grid refinements are defined, it will be possible to notice that new input scripts,
one per grid refinement are created.
One needs to access each of these individual scripts to define the grid refinement: for
instance, for the refinement inj1:
Select the Edit Refinement option to define the grid refinement details: for each direction,
one needs to define a refinement ratio.
This will describe in how many sections the initial grid block will be divided.
For instance, the screen below specifies that the row 18 will be divided in two sections
compare to the size of the initial grid block.
The next screen shows that the reservoir characteristics are directly taken from the parent
grid values.
Results Analysis:
When visualising the results, it will be possible to define the viewing properties of each grid
individually.
Model Setup:
This model is a simple square grid with two wells: one producer and one injector.
The objective of that example is to demonstrate the use of the water chemistry module: the
water injected will have a composition that will react with the reservoir water to form scales
species that may be transported or adsorbed within the reservoir.
1. Control Section
The Water Chemistry module needs to be activated in the control section and the
component list needs to be populated with the chemical species existing in both reservoir
and injected water as well as with the species that can potentially be formed when the two
waters are mixed.
2. Adsorption Section
In the model considered, we will assume that there is no adsorption phenomenon.
Therefore, the adsorption section will be left empty.
The next step enables to describe the partition coefficients between aqueous and
hydrocarbon phases and between oleic and gas phases for H2S, CO2 or N2 if they are
present in the system.
Partition coefficients can be defined at reservoir and separator levels. In the model
considered, the "User H2S )-W partitioning" option is unselected: the partition coefficients
wlll therefore be defined from correlations.
4. Initialisation Section
The initialisation section enables to specify the reservoir water composition.
5. Schedule Section
The schedule section enables to specify the composition of the injected water.
ResultsAnalysis:
When using the water chemistry module, two types of analysis can be done:
- Use the Water Chemistry Equilibration Tool to estimate the potential species that
are formed when mixing reservoir and injection water
- Use the full simulation run to study the formation / behavior of the different species
within the reservoir
This can be a useful way as well to check that all the species that are going to appear have
been added to the component list: effectively, if one component is formed but not in the
component list, its name will appear in red. The user will then have to add this component
within the component list.
If the plot option is used as illustrated below, one will be able to monitor the evolution of the
concentration of the different minerals as a function of mixing ratio.
- The injection water being rich in SO42-, the concentration of SO4- increases around
the wellbore.
- In parallel to the increase of SO42- around the injector, the concentration of Ba2+
drops. This is due to the formation of barite as underlined by the snapshot below.
As it is possible to notice, the barite concentration is higher towards the edges of the barite
rich area, showing that all the barite is transported (i.e. no adsorption) with the flood front,
illustrated below by the water saturation evolution.
Model Setup:
The field considered is a single layer field model with an horizontal producer and three
vertical injectors.
The model considered has been setup with the water chemistry option of REVEAL (i.e. see
the Water Chemistry example for mode details on how to setup this type of model).
In addition to the water chemistry parameters, adsorption parameters have been specified:
some of the chemical species formed in this model will be adsorbed on the rock surface.
In order to activate the permeability reduction option of REVEAL, the only modification to be
done to a model that has already the water chemistry option setup is to go to the adsorption
section and to specify a permeability reduction factor, as illustrated below.
This will then model the permeability reduction (R0) and porosity reduction due to adsorption
of species formed through the water chemistry reactions.
This permeability reduction is function of the adsorbed concentration, rock density (ñr),
original porosity (ö0) and user defined permeability reduction coefficient (PN).
Permeability reduction coefficients may be defined for each rock type or for all rock types.
The total permeability reduction is the sum of the permeability reductions of all adsorbing
components and is applied equally to all phases.
Results Analysis:
Once the model has been run, the following results can be observed:
- barite starts forming and being adsorbed around the second injector, due to the
injection of sulphate rich water in a barite rich initial reservoir water.
- this results in a permeability reduction around the same injector, as illustrated below.
- the impact of this permeability reduction on the liquid production of the producer well
can be seen below.
3.5.4 Surfactant
Associated Files:.
The files associated with this example are located in C:\Program Files\Petroleum
Experts\IPM 7.0\Samples\reveal\\Physics_Examples\Surfactant
Surfactants:More Information
Surfactants emulsify oil and water into a new phase (an emulsion), causing desaturation and
potentially enhanced recovery.
Surfactants are generally used in conjunction with other chemicals, such as alcohols, which
affect the phase behaviour, and polymers, which may also affect the phase behaviour and
which are important for mobility control. Salinity and divalent ion concentration have a
strong influence on phase behaviour, as does temperature and the equivalent alkane
number (EACN) of the oil, which varies as the oil phase composition (Rs) varies.
For surfactant flood simulations with REVEAL, up to six volumetric components may be
present (water, oil, gas, surfactant and up to two alcohols). Non-volumetric components
include salinity, and optionally polymer and divalent ions. Additionally tracer components
may also be present. Alcohols are always assumed to be active in the phase behaviour;
polymer may be active, or simply act as a mobility control agent. Adsorbed material is
assumed to play no part in the phase behaviour calculation.
Surfactant flood systems are described in many books on Petroleum Engineering; only an
outline of the theory is given below.
The phase calculations determine first the phases that are present in a given system, and
from there determine those phase properties. The steps that are taken are:
surfactant cases), then this phase is tested for immiscibility and split into separate oil and
gas phases if appropriate. Micro-emulsion phases containing both gas and oil (upper phase
in type II(+) cases, middle phase in type III cases, or single phase cases) are always
assumed to form a single miscible phase, regardless of whether the oil and gas are miscible.
If the Todd and Longstaff model [Ref 5] is used, it is applied to all miscible upper phases
(but not to middle phase or single phase micro-emulsions). The following table summarises
the number and type of phases present, and those phases to which the Todd and Longstaff
model is applied.
Phase Single phase No surfactant Type III Type II(-) Type II(+)
behaviour
P>Pb Micro-emulsionOil Oil* Oil* Micro-
Water Micro-emulsion Micro-emulsion emulsion*
Water Water
P<Pb Micro-emulsionOil Oil Oil Micro-
Gas Gas Gas emulsion*
Water Micro-emulsion Micro-emulsion Water
Water
The five phase regions identified are numbered from one to five, and may be plotted if
'Phase Region' is selected as a property to be stored during a calculation (Run Simulation|
Select Properties...).
Model Setup:
The model considered is a simple reservoir model with one horizontal producer and one
horizontal injector well, located in a grid refinement, as illustrated below.
These two wells are complemented by two additional vertical injectors.
Surfactants emulsify oil and water into a new phase (an emulsion), causing desaturation and
potentially enhanced recovery.
The following step by step procedure can be used in order to setup such a model:
1. Control Section
The surfactant model will only be available when the IMPES solver is selected. It will not be
available with the Fully Implicit solver.
This is due to the existence of a fourth phase (i.e. emulsion) that is strongly dependant of
the pressure, temperature and fluid compositions.
The presence of that fourth phase makes the application of the fully implicit solver method
very difficult.
IMPES solvers require less memory and less cpu per timestep. They require short
timesteps to be numerically stable and therefore are usually slower than implicit
formulations.
IMPES formulations allow higher order upstream weightings that can significantly reduce
numerical dispersion present within implicit formulations.
The default solver configuration is used in that model.
When selecting the general simulation data, it will be needed to select the surfactant model,
as illustrated below.
The component list can then be altered to include polymer, surfactant, salinity and two
alcohols.
2. Physical Section
The thermal and aqueous properties of the components added in the system need to be
defined in the physical section, as illustrated below.
3. RelPerm Section
The RelPerm section needs to be modified when a surfactant is present, as desaturation
parameters are required.
Effectively, when an emulsion is formed in the system, the interfacial tension between
phases tend to reduce, leading to a variation of the relative permeability curve.
In order to obtain the new relative permeability curve, it will be necessary to interpolate
between high and low tension relative permeability curves (i.e. the later usually tends toward
a straight line) as a function of the capillary number Nc.
Desaturation parameters are used to control that interpolation process.
The relative permeability curves then need to be entered for both low and high IFTs, as
illustrated below.
4. Mobility Section
Polymer tends to affect the effective salinity of the system, leading to a change in the ternary
diagram between the oleic, aqueous and emulsion components.
When it is present in the system, it will then be necessary to define the polymer parameters.
More information on the following screens can be found in the gel injection example
description.
5. Phase Section
The phase section enables to specify the input data needed by the surfactant model.
This includes:
5. Initialisation Section
In the model considered, it is assumed that no component is being adsorbed, therefore we
will leave the adsorption section empty.
However, the composition of the reservoir water needs to be specified in the initialisation
section. The reservoir water is characterised by a salinity of 10,000ppm.
6. Schedule Section
The schedule section is setup so that both vertical wells inject surfactant, the horizontal
injector is closed and the horizontal producer is producing with a fixed Pwf of 2200psig.
Results Analysis:
When running the model, the emulsion can be seen appearing around the second injector,
as illustrated below:
Model Setup:
The model considered is a simple reservoir model with one horizontal producer and one
horizontal injector well, located in a grid refinement, as illustrated below.
In this model, the reservoir fluid is a heavy oil, characterised by a high viscosity and
therefore a low mobility. The horizontal producer is located relatively close from the oil-water
contact, and therefore is affected by a rapid water cut build-up.
In order to delay the build-up of water in the reservoir, the water injector injects a polymer
and a cross-linker, which will react at reservoir level to form a high viscosity gel, that will
lower the water mobility around the producer.
1. Control Section
In the control section, the Polymer / Gel / Foamer option needs to be selected and the
component list needs to be updated to include the salinity, polymer, gel and cross-linker
components as illustrated below.
2. Mobility Section
The mobility section will then become available to edit. This section enables to define the
properties of the polymer and gel, and its main scope is to describe the modifications to pure
phase viscosities (obtained from the PVT) arising from chemical additives including
surfactants, polymers and gels.
2.1. The first screen of that section initialises the polymer and gel model and setup their
shear thinning parameters.
Two models are available for viscosity resulting from polymer and gel components: original
and Kuparuk models.
Both of these models calculate a thickening factor (i.e. noted TF) for the aqueous and micro-
emulsion (if surfactant is present) phases, subject to shear-thinning near wells.
The modified phase viscosity is obtained by multiplying the pure phase viscosity by the
thickening factor.
Because the thickening factor can be affected by shear-thinning, a shear rate calculation is
associated to these models.
This shear-rate calculation needs to be parametrised for each rock-type using a critical
shear rate specified by the user. By default, this model is inactive: it needs to be activated by
selecting the "Shear Model" section when defining the well in the Wells section of the input
wizard.
The thickening factor is calculated first at zero shear and modified afterwards to account for
shear rate. This modification is done using the gamma, alpha and optional shear-thickening
parameter: this later parameter will only have an effect if it is greater than 1.
2.2. The second screen of that section enable to specify the polymer and gel viscosity
parameters
Polymer and gel viscosity parameters (i.e. concentration and temperature) are used to
calculate the respective contribution of polymer and gel to the zero shear thickening factor
calculation.
They are usually tuned to laboratory data.
The effect of salinity on polymer viscosity can also be taken into account if the "salinity
dependence" option is selected.
2.3. The third screen of that section enable to specify the gelation and degradation reactions
characteristics
Reactions between polymer and cross-linker to form gel, and between de-chelation agent
(chelated cross-linker) and cross linker are modelled by calculating mass reaction rates that
are applied to the component mass concentration equations.
In the case considered, 3 components are present in the system: polymer, gel and cross-
linker. In that case, the 3-component reaction model should be specified.
The input datadeck of that section enables to define the conditions at which the reaction
between polymer and cross-linker occurs to form gel:
- the temperature needs to be greater than the temperature treshold Tr
- the polymer concentration needs to be greater than the polymer treshold
concentration Pc[0]
- the cross-linker concentration needs to be greater than the cross-linker
concentration treshold XLc[0]
If the reaction conditions are met, a reaction will occur to produce gel, with the mass
reaction rates per unit volume of water for polymer (Rp), cross-linker (Rxl) and gel (Rg).
Both gel and polymer could be setup to degrade as well at rates defined by rate (Rp0 and
Rg0) and temperature coefficients (Bp0 and Bg0), reducing the reaction rates for these
components.
In the case considered, polymer and gels are considered to be non-degradable.
2.4. The fourth screen of that section enable to define the amount of pore volume that is
non-accessible to the gel / polymer components
In the case considered, it is assumed that the entire pore volume is accessible to both
polymer and gel.
3. Adsorption Section
The different components defined in the gel/polymer models could be adsorbed on the rock
surface.
These reactions could be defined in the adsorption section.
Adsorbed components will not be transported across the reservoir and can lead to a
reduction in permeability.
The adsorption reaction is defined through an adsorption isotherm, here the Langmuir
isotherm: the parameter entry enables to modify the shape of that isotherm, and therefore
the behavior of the component considered.
The adsorption phenomenon can be made reversible or irreversible.
4. Initialisation Section
The initialisation section enables to specify the reservoir water contents: in the case
considered, the only element to specify is the water salinity, 35,000ppm.
5. Schedule Section
The schedule section enables to specify the timing and component concentrations of the
injection process.
In the case considered, the simulation run is divided in four different sections:
- the first schedule section specifies the injection of a water with a 10,000ppm
polymer concentration
- the second schedule section specifies the injection of a water without polymer nor
cross-linker
- the third schedule section specifies the injection of a water with a 10,000ppm cross-
linker concentration
- the fourth schedule section specifies no injection at all
Results Analysis:
The following results can be observed (i.e. one can load the "Slice" pre-saved view to go
through these results in the model provided):
- The mass concentration of polymer in water at the early days of the simulation
underlines the polymer injection of the first schedule section
At that point, no cross-linker has been injected, therefore no gel is being formed.
- The gel concentration in water starts increasing when the conditions for the reaction
between cross-linker and polymer are met.
- When studying the well results, it is possible to notice that as soon as the gel is
present in the system, the water cut evolution in the producing well is cut-down dramatically,
as illustrated below.
Model Setup:
The model considered is a radial gridded system with a producer well located in the middle
of the grid and an injector injecting from the grid external boundaries, as illustrated below.
The fluid considered is a low-GOR heavy fluid, and the purpose of this model is to illustrate
the impact of wellbore-heating processes on the well production.
In order to setup a wellbore heating system, the following steps can be considered:
1. Control Section
In order to setup a wellbore heating system, the following steps can be considered:
In this model, the microwave option is selected: this microwave option will apply a
microwave frequency voltage across two points on a well and calculates the heating effect
within the reservoir.
The voltage generated (V) within the reservoir is calculated on the finite difference grid used
for the flow equations by solving Laplace's equation with boundary conditions V=V0 on the
electrode, V=0 on the earth electrode and no voltage flux on the boundary of the grid.
The heat supplied to the grid (W) is then calculated from the voltage field.
The location of the electricity sources (i.e. electrode and earth) is defined in the control
section and the capacity of the reservoir water to transmit electricity between the two is
defined through a resistiity law in the wellbore heating section.
An electric heater option is available as well. The main difference with the microwave model
is that the electric heater will heat directly both the reservoir and the fluid inside the tubing.
The microwave option, on the other hand, will heat the reservoir directly and indirectly the
2. Well section
The location of the earth and electrode need to be specified in the well section, as illustrated
below.
4. Schedule section
This example is setup with three consecutive schedules:
- a 10 day long schedule where no heating is activated: in that case the heating
section is not selected in the schedule screen
- a 30 day long schedule where the heating is activated: in that case, one needs to
Results Analysis:
Heating up the wellbore will lead to a decrease in oil viscosity. The consequent increase in
fluid mobility will lead to a higher well production.
This can be found by analysing the results obtained in that case:
The wellbore results can illustrate the increase in temperature due to the heating process.
Comparing a "heated" run with a "non-heated" run, it is possible to notice the increase in oil
production in the heated run, confirming the previous analysis.
3.5.7 Asphaltene
Associated Files:.
The files associated with this example are located in C:\Program Files\Petroleum
Experts\IPM 7.0\Samples\reveal\\Physics_Examples\Asphaltene
Model Setup:
The model considered is a simple reservoir model with one horizontal producer located in a
grid refinement, as illustrated below.
Asphaltene is initially present in the reservoir oil, and the objectives of the model are to find
out how much of this asphaltene will precipitate in the reservoir.
1. Control Section
In the control section, the "Solids" component model needs to be selected and the
component list needs to be amended to include asphaltenes, as illustrated below.
2. Adsorption Section
Once the new components have been added, the adsorption section becomes available.
In the current model, we will consider that all the precipitated asphaltene is transported and
that there is no adsorption effect.
That section will therefore be left empty.
3. Solids Section
The solids section enables to define the asphaltene model parameters.
Asphaltenes are modelled in REVEAL as a solubility limited component in the oleic phase,
that once precipitated may become trapped within the pore structure of the rock reducing
permeability
pressure:
4. Initialisation Section
The initial dissolved asphaltene concentration within the oil phase should be entered in the
initialisation section, as illustrated below.
Results Analysis:
Once the model has been run, the following results can be observed:
- Due to the horizontal producer production, the pressure will decline within the
reservoir, as illustrated below.
- This pressure decline will lead to a decrease in the asphaltene solubility that is
translated in the formation of solid asphaltenes in the system, as illustrated below.
Model Setup:
The model considered is a simple reservoir model with one horizontal producer and one
horizontal injector well, located in a grid refinement, as illustrated below.
The fluid contained in that reservoir is a heavy-oil which exhibits a shear-thinning behaviour:
when subjected to stress, the fluid molecules unravel leading to a fluid viscosity lower than
what will be predicted for a classic fluid.
The viscosity of the fluid having a large impact on the fluid mobility, it will be important to
capture that effect in the simulation model.
The procedure used to setup the model for that example is a standard procedure apart from
the description of the fluid PVT.
1. Go to the Physical section of the input data wizard: A PVT file named "heavy" has been
defined.
Click on "Edit" to view the PVT entry
2. The classic black oil parameters have been entered, and PVT tables at different pressure
and temperatures have been generated and are in use.
However, it is possible to notice that the "Non-Newtonian Viscosity" option has been
selected.
This is the option that enables to take into account shear-thinning behaviors for instance. It
works in association with the "Visc.Tables" section.
The "Visc.Tables" section enables to specify rheological parameters for the fluid
considered:
- Yield stress: this is defined as the minimum stress at which fluid flow occurs
- Consistency index
- Shear Thinning: If this is equal to 1, the fluid considered is a newtonian fluid
If this is lower than 1, the fluid considered is a non-newtonian, shear-
thinning fluid
If this is higher than 1, the fluid considered is a non-newtonian, shear-
thickening fluid
This parameters are usually obtained from the lab at a specific pressure and temperature.
These parameters are used within REVEAL to calculate the apparent viscosity of the fluid
using the Herschel-Bulkely approach:
where t is the shear stress, t0 is the yield stress, K is the consistency index, gamma is the
shear rate and n is the shear thinning parameter
The apparent viscosity is then replacing the gas and oil viscosity specified in the PVT tables.
If the rheological parameters are defined for one specific temperature and pressure as it is
the case in this example, the viscosity will then only be shear rate dependant, and will be
independant from pressure and temperature.
REVEAL will not extrapolate these rheological parameters, it will only interpolate between
different given values.
Therefore, if one wants to make the apparent viscosity pressure and / or temperature
dependant, one will have to enter rheological parameters over the range of pressure and
temperature the reservoir is likely to be facing.
The maximum viscosity parameter enables to specify a maximum value for the viscosity
calculated: if the viscosity calculated is higher than the maximum viscosity specified, the
calculated value will be ignored and replaced by the maximum viscosity specified here.
Once the PVT has been setup, the model can be run.
Results Analysis:
The model has been run with two specific PVTs:
- one named heavy which includes the non-newtonian viscosity option
- one named heavy-newtonian which describe the same fluid, but without using the
non-newtonian viscosity option
One of the elements that can be underlined is that the well oil production is higher when the
This can be explained by plotting the evolution of viscosity with time for one of the producer
gridblocks.
As explained earlier, in the case of the non-newtonian fluid, the evolution of viscosity with
time is just due to the evolution of shear rate and is independant of the pressure and
temperature, due to the way the rheological parameters have been setup.
It is possible to notice that due to the shear-thinning behavior of that fluid, the viscosity of the
oil when the non-newtonian viscosity option is used is lower than the viscosity calculated if
the fluid is considered newtonian.
In that case, the permeability being the same, decreasing the viscosity will have the effect of
increasing the fluid mobility.
An increase in fluid mobility will lead to an increase in the well PI and therefore production,
as observed in that model.
3.5.9 Equalizer
Associated Files:.
The files associated with this example are located in C:\Program Files\Petroleum
Experts\IPM 7.0\Samples\reveal\Physics_Examples\Equalizer
Model Setup:
The model considered includes two separate reservoirs, both containing a long horizontal
well, as illustrated below.
Both reservoirs and wells are exactly similar apart from the interface between the tubing and
casing space. The first model has standard screens installed whereas the second model has
a set of Equalizer installed.
The main objectives of these Equalizer is to create a pressure drop between the tubing
and the casing, therefore enabling to balance the bottom hole flowing pressure (i.e. and
therefore the drawdown) along the wellbore.
In order to achieve this objective, the type of Equalizer used changes along the wellbore,
enabling for instance to generate higher pressure losses between the casing and tubing in
high productivity regions (i.e. heel and toe of the well for instance) and lower pressure losses
between the casing and tubing in low productivity regions.
In this specific case, the main objective of to reduce the impact of gas coning on the well
behavior.
This can be setup by using the "Annular Flow" option in the well section, as illustrated below.
The multilateral description will then allow for the type of interface between the tubing and
the casing to be specified, as illustrated below for both Equalizer and screen models.
Results Analysis:
Analysing the evolution of the gas saturation in the 3D results at two different points in the
forecast (i.e. 10.25 days and 187 days) will show the difference between the screen model
and the Equalizer model: as illustrated in the two snapshots below, it is possible to note
that the gas coning effect is less important in the Equalizer completion case than in the
screen completion case, due to the more balanced bottom hole flowing pressure along the
wellbore.
As a result of this, the gas production at the early stage of production is larger in the screen
completion case, as illustrated below.
The oil production, as illustrated below, is higher at early stages of production in the screen
completed well, due to the less important pressure losses in the wellbore, however, as soon
as the gas breakthrough, the oil production will be affected and the Equalizer completed
well will produce more oil.
The cumulative oil production plot is displayed below, illustrating the higher oil recovery
achieved in this case when the bottom hole flowing pressure along the wellbore is controlled
using the Equalizer completion.
The Excel macro associated with that example is located in the Well_Results folder and is
named: Well_Results.xls
The REVEAL file associated with that example is the following: OpenServer_Demo.rvl
This specific example illustrates how to retrieve well results through an OpenServer macro.
Model Setup:
All the OpenServer examples are based on a similar REVEAL model, the
OpenServer_Demo.rvl model.
This model is constituted of one producer and one injector well located in a relatively simple
grid as illustrated below.
All the macros are started from one single Excel macro template located in C:\Program
Files\Petroleum Experts\IPM 6.0\Samples\reveal\OpenServer_Examples\ and called
REVEAL_OpenServer_Template.xls.
With that specific macro, one wants to retrieve the results of both the producer and injector
wells once a simulation has been run.
- The two other sub-sheets are dedicated to the well results, one for the producer and
one for the injector.
2.Open the REVEAL file, select the unit system to be used and setup some headers for
the Excel sub-sheets
When getting the headers, it is possible to notice that the second part of the structure
focuses on getting the name of the units used.
This structure, along with the structure details in the section 3, includes a while loop that
enables to perform this specific macro structure for every well in the system.
A loop structure similar to the one used previously to loop through the wells is used in that
section.
This section is just a part of the total section, where all the results available for individual well
are specified and exported to a specific field in Excel.
The end of the macro structure is characterised by the end of the syntax for both loops
used, characterised by an incremental index statement (i.e. i=i+1) and a Wend (i.e. While
End).
The Set Server = Nothing enables to disconnect the OpenServer connection and the
message box enables to let the user know that the macro has ended successfully.
Results Analysis:
Once the macro has been run, results will automatically be displayed for each well in the
corresponding Excel sub-flowsheet as illustrated below.
The Excel macro associated with that example is located in the Well_Production folder and
is named: Well_Production.xls
The REVEAL file associated with that example is the following: OpenServer_Demo.rvl
This specific example illustrates how to retrieve block by block results from a REVEAL run.
Model Setup:
All the OpenServer examples are based on a similar REVEAL model, the
OpenServer_Demo.rvl model.
This model is constituted of one producer and one injector well located in a relatively simple
grid as illustrated below.
All the macros are started from one single Excel macro template located in C:\Program
Files\Petroleum Experts\IPM 6.0\Samples\reveal\OpenServer_Examples\ and called
REVEAL_OpenServer_Template.xls.
The specific objective of that macro is to retrieve block by block water, oil and gas
production for a user-specified well.
2. Start the REVEAL simulation run and retrieve the results at every time step
This specific section of the macro enables to run a simulation on a step by step basis, and
for each step, follows the following workflow:
ResultsAnalysis:
As per the code, results in the Excel spreadsheet will automatically be updated during the
REVEAL run.
It is important to notice that even so the results are reported in Excel, this does not change
the classic results reporting facilities of REVEAL.
Classic REVEAL results will still be available once the model has been run.
The Excel macro associated with that example is located in the Batch_Matching folder and
is named: Batch_Matching.xls
The REVEAL file associated with that example is the following: OpenServer_Demo.rvl
This specific example illustrates how to perform batch matching calculations through an
OpenServer macro.
Model Setup:
All the OpenServer examples are based on a similar REVEAL model, the
OpenServer_Demo.rvl model.
This model is constituted of one producer and one injector well located in a relatively simple
grid as illustrated below.
All the macros are started from one single Excel macro template located in C:\Program
Files\Petroleum Experts\IPM 6.0\Samples\reveal\OpenServer_Examples\ and called
REVEAL_OpenServer_Template.xls.
The specific objective of that macro is to perform batch simulations of the reservoir model
above by changing the reservoir permeability through the permeability multiplier. This
procedure will help the reservoir history matching procedure.
Each file run is saved separately for further analysis of the results.
2. Start the batch matching procedure, Setup the transmissibility multiplier and run
the simulations.
The batch matching procedure is run through a while loop, that enables to run a specific
section of code until the condition specified in the loop is met.
In this case, the procedure will be run while i <= imax where imax is the maximum number of
permeability multiplier entered.
3. Save the file at the end of the run and retrieve the results
Each time one step is finished, the index i is incremented by 1, which will lead to a new file
being setup with a new permeability multiplier.
Results Analysis:
Once the runs are finished, one will find a number of REVEAL files saved in the location of
the initial file equal to the number of permeability multipliers specified, as well as a summary
of time to breakthrough and cumulative productions in the Excel spreadsheets.
The Excel macro associated with that example is located in the Well_Control folder and is
named: Well_Control.xls
The REVEAL file associated with that example is the following: OpenServer_Demo.rvl
This specific example illustrates how to control a well with time through an OpenServer
macro: the macro will modify the wellhead pressure and fluid injection temperature through
time.
Model Setup:
All the OpenServer examples are based on a similar REVEAL model, the
OpenServer_Demo.rvl model.
This model is constituted of one producer and one injector well located in a relatively simple
grid as illustrated below.
All the macros are started from one single Excel macro template located in C:\Program
Files\Petroleum Experts\IPM 6.0\Samples\reveal\OpenServer_Examples\ and called
REVEAL_OpenServer_Template.xls.
With that specific macro, one wants to control the wellhead pressure and injection
temperature of the injector well at different points in time.
The following steps (i.e. accessed through the visual basic section of Excel) are taken within
the macro setup to do so:
2. Open the REVEAL file and setup the injection well schedule
The last section of that code enables to set the injection well control parameters that were
taken from Excel in the REVEAL script.
It will be possible to use that syntax only before the simulation is run. The script input cannot
be modified when the simulation is running.
In order to make a modification to the system setup while the simulation is running, one
In that section, the results of each simulation time step are exported to Excel.
The last section enables to monitor when the setup of the model needs to be changed: the
current time is monitored using the Time variable.
If the current time is lower than the time at which the schedule needs to be changed next,
the surface pressure and surface temperature will be equal to a time weighted average
between the surface properties of the injection well at the last time step and the surface
properties of the injection well at the time step when a change has been specified by the
user.
The save file command will automatically overwrite the REVEAL model used when running
the macro.
The Set Server = Nothing command enables to finalise the connection between REVEAL
and Excel.
Results Analysis:
When the run is ended, one can check the evolution of wellhead pressure and injection
temperature through time for the injection well and check that it has been setup according to
the schedule specified in Excel.
There is no Excel macro associated to this example as all the code is contained within the
REVEAL internal script.
The REVEAL file associated with that example is the following: Water_Injection_Allocation.
rvl
This specific example illustrates how to allocate a fixed amount of water to be injected in the
reservoir between the different injection wells, in order for instance to accelerate the oil
production (i.e. minimise the water cuts in the producing wells).
Model Setup:
The model used in that example is similar to the model used for the previous OpenServer
examples, apart for the number and location of the wells.
This model includes 3 producing wells and 4 injection wells located as below.
In the schedule section, all the wells are controlled by fixed rate.
The producing wells are controlled by a fixed total (i.e. oil + water) liquid rate and the water
injectors are controlled by a fixed water injection rate.
The internal script can be accessed through the script icon on the main menu bar.
1. Declarations Section
In the case considered, only two variables will be entered in the declarations section:
2. REVEAL section
The rest of the code is located in the REVEAL / RunPreTimestep section and follows the
following workflow:
It is important to notice that all the variables used in this script and specified as reveal.
master are runtime variable: these are related to variables internally calculated during the
solve process, but that are not always available in the REVEAL outputs, such as the ratio of
volumes between producer and injector drainage areas.
The model illustrated here has been run with and without the script and the following results
can be observed:
- When the model is run without the script activated, the total amount of water
injected is divided equally between the different water injectors.
- When the model is run with the script activated, the allocation of this total amount of
water injected is setup according to the weight associated with each injector that has been
calculated in the script.
This leads to the following allocation:
- One of the consequence of this re-allocation will be the decrease of the water cut in
some of the producer wells, such as the producer 2 illustrated below.
- However, the most important result is the increased cumulative oil production and
decreased cumulative water observed when comparing the voidage injection and the
managed injection cases, as illustrated below: