
- •Basics of Reservoir Simulation
- •with the
- •Eclipse Reservoir Simulator
- •Lecture Notes
- •Øystein Pettersen
- •Introduction
- •Prerequisites
- •1. Overview – minimum required data input
- •1.1 The grid
- •1.2 Petrophysics
- •1.3 Fluid properties
- •1.4 Soil properties
- •1.5 Equilibration
- •1.6 Well specification
- •1.7 Dynamics
- •1.8 Output
- •1.9 Simple Eclipse data file contents
- •A. Syntax
- •B. Data file (“BASIC data input example”)
- •A note on units
- •2. The RUNSPEC section
- •Grid dimension – keyword DIMENS
- •Phases
- •Unit system
- •Start date
- •Unified / Non-unified files (chapter 11)
- •Data checking only
- •Table dimensions
- •EQLDIMS
- •NSTACK (chapters 17-18)
- •Aquifer specifications – AQUDIMS (chapter 14)
- •Grid options (chapter 13)
- •Rock compressibility options (chapter 6)
- •Local Grid Refinement (chapter 15)
- •3. Structured grids (Corner point grids) (GRID section)
- •The Corner Point Grid
- •Defining a corner point grid in Eclipse
- •Moderately complex grids – FILL
- •4. Petrophysics (GRID section)
- •Average permeability
- •Transmissibility
- •Inactive cells
- •5. Fluid properties (PROPS section)
- •Tables in Eclipse
- •Relative permeability and Capillary Pressure
- •Two-phase curves (water – oil)
- •Three-phase relative permeabilities
- •PVT data
- •Water
- •Dead Oil
- •Live Oil
- •6. Soil compressibility (PROPS section)
- •7. Initialisation (SOLUTION section)
- •Datum depth
- •Contacts
- •Equilibrium – discussion – advanced issues
- •8. Time dependent input data (SCHEDULE section)
- •8.1 Well definitions and control
- •Well Specification (WELSPECS keyword)
- •Well Completions (COMPDAT keyword)
- •Production / Injection data (Keywords WCONPROD / WCONINJE)
- •Economic well constraints (keywords WECON, WECONINJ)
- •Other often used Well control keywords
- •8.2 Time stepping
- •Order of actions
- •8.3 Convergence Control I (keyword TUNING)
- •9. Regions
- •10. Simplified input and modification of Eclipse arrays
- •EQUALS
- •ADD, MULTIPLY
- •COPY
- •COPYBOX
- •11. Eclipse output, formats and files
- •File names
- •Textual output
- •The RPTXXX keywords
- •Time dependent vectors – SUMMARY data
- •Restart data and restart files
- •12. Restarting a simulation
- •The SKIPREST keyword
- •13. Fault modelling – Non-neighbour connections
- •The 7-point stencil
- •The fault layout – non-neighbour connections
- •Fault transmissibility multipliers
- •Defining a fault manually – the ADDZCORN keyword
- •14. Aquifer Modelling (GRID section)
- •Aquifer definition
- •Aquifer connection to reservoir
- •15. Local Grid Refinement
- •15.2 LGR on an irregular volume – Amalgamation
- •15.3 Wells on local grids – Horizontal wells
- •15.4 Horizontal wells and friction
- •16. Numerical Solution of the Flow Equations
- •The IMPES method
- •Solution of Non-linear Equations – the Newton-Raphson method
- •17. Iteration methods for linear systems
- •Direct, simple approach
- •The Gauss-Seidel method
- •Accelerators – the point SOR method
- •Conjugate Gradients – ORTHOMIN
- •Preconditioning
- •Preconditioning and Orthomin
- •Determining a preconditioner – Nested Factorisation
- •18. Convergence Control II – TUNING parameters
- •TUNING keyword summarized
- •19. Non-neighbour Connections and System Structure
- •A. GRF files in GRAF
- •A simple straightforward GRF file
- •Advanced GRF file
- •B. Some Considerations Regarding Grid Consistency
- •Grids planned for use in rock mechanics simulations
- •Embedding
- •Non-vertical coordinate lines
- •Honouring material properties of non-reservoir rock.
2. The RUNSPEC section
Since the RUNSPEC section comes first in the Eclipse data file it is described here. Many of the terms used in this description will not be defined before later, but are included here for completeness.
The section contains run specification data, i.e. information Eclipse needs at the very beginning of the job, before it commences reading of any other data, typically for determining how much computer memory to reserve for the different kinds of input.
Grid dimension – keyword DIMENS
Specification of the number of cells in x, y, and z-directions:
DIMENS
NX NY NZ /
Example:
The grid is 30 cells in the x-direction, 15 cells in y-direction and 5 cells in the z-direction (vertical) – will also be referred to as 5 layers.
DIMENS
--NX NY NZ 30 15 5 /
Phases
The phase definition specifies how many and which phases are present in the run. Each included phase is specified by one keyword. The alternatives are,
OIL WATER GAS VAPOIL DISGAS
(No slashes)
Example
For a standard three-phase problem we would specify,
OIL
WATER
GAS
Unit system
Specify the unit system the data are defined in (all data must be in the same unit system) Choose one of
FIELD |
(Standard oil-field units) |
METRIC |
(well known metric system) |
LAB |
(similar to metric, but everything is scaled down to lab size) |
(No slashes) |
|
17
Start date
Specify the date when the simulation starts, also called initial date or “day 0”. Date format is identical to the format in the DATE specification (see section 8.2)
Example
The simulation starts at April 14., 1997:
START
14 ‘APR’ 1997 /
Unified / Non-unified files (chapter 11)
Specify if unified files are to be used. Non-unified is the default and will be assumed if specification of unified is omitted.
Keywords:
UNIFIN
UNIFOUT
Data checking only
Eclipse can be requested to check the input data syntax without running the simulation. This is done by the keyword
NOSIM |
(no slash) |
Input errors in the SCHEDULE section will not be discovered before Eclipse encounters them. (Eclipse does not read the entire file before the run starts, only as much as it needs). By routinely doing a data check run after major changes, unexpected terminations of simulations due to data errors can be avoided.
Table dimensions
Eclipse needs to know how many tables we are going to define, and how many entries the tables will have when it sets up the run dimensioning, i.e. when the RUNSPEC section is read.
Technical note: This is because Eclipse is written in FORTRAN, and does not use dynamic memory allocation.
The appropriate keyword is TABDIMS, which contains the following relevant items, (for others, see Eclipse documentation)
1. NTSFUN:
2. NTPVT:
3. NSSFUN:
4. NPPVT:
5. NTFIP:
6. NRPVT:
Example
To set all values to their default:
TABDIMS |
|
|
|
|
|
|
-- NTSFUN NTPVT NSSFUN NPPVT NTFIP NRPVT |
/ |
|||||
1 |
1 |
20 |
20 |
1 |
20 |
EQLDIMS
Used to set some parameters for equilibration. Can be defaulted (omitted) in most cases.
18
Well data dimensions
Eclipse must know how many wells to allocate memory for, and how much memory is needed for each well. This is specified in the WELLDIMS keyword, with entries,
MAXWELLS Maximum number of wells in the model
MAXCONNW Maximum number of connections (completions) in each well
MAXGROUP |
Maximum number of groups in model |
MAXWELLG |
Maximum number of wells in a single group |
The default value for all the entries is zero, so this keyword must be specified if the model contains any wells.
Example
WELLDIMS
-- MAXWELLS MAXCONNW MAXGROUP MAXWELLG |
/ |
|||
18 |
6 |
1 |
18 |
NSTACK (chapters 17-18)
To redefine the size of the NSTACK, i.e. the number of search directions to store for use by the linear solver, include the keyword NSTACK. The default value of NSTACK is 10.
Example
To increase NSTACK to 25,
NSTACK 25 /
Aquifer specifications – AQUDIMS (chapter 14)
Specify maximum number of lines in the AQUNUM and AQUCON keywords. (I.e. not the number of connections defined, but the number of lines used to define the connections in the keyword)
Default values are zero, so this keyword must be specified if aquifers are used.
Example
AQUDIMS |
Max#ConnLines |
(rest not used for numerical aquifers) |
-- Max#NumLines |
||
5 |
7 |
/ |
Grid options (chapter 13)
The GRIDOPTS keyword is used to flag that negative index transmissibility multipliers are used. (And some other flags which are not used in these notes)
To allow for MULTX– and related keywords, set
GRIDOPTS
YES /
The default is “NO”, so the keyword is not needed if negative index transmissibility multipliers are not used.
Rock compressibility options (chapter 6)
When rock compressibility is defined by the ROCKTAB (or ROCKTABH) keyword, the keyword ROCKCOMP must be included in the RUNSPEC section. The keyword has two associated items,
1.Specify if rock compaction is reversible (elastic) or irreversible (plastic), or if tables with hysteresis are used. Choices are REVERS, IRREVERS, and HYSTER
2.Number of rock compaction tables (equal to number of ROCKNUM regions)
Example
To specify that ROCKTAB tables are irreversible, and that the model includes three different rocknum regions,
ROCKCOMP
IRREVERS 3 /
19