- •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.
Using ADDZCORN to move individual corners of a single cell
The way we used ADDZCORN above, all the eight corners of the cell were moved rigidly. At times it is needed to move corners individually, either a single corner, or some of the corners. In Eclipse this is done by a rather special syntax in the ADDZCORN keyword. If at least one of ix1, ix2, jy1, jy2 is set to zero, this is a signal that we are operating in single-cell, individual corners mode.
When specifying ix1 ix2 or jy1 jy2 a nonzero value means, “move this corner of cell with defined index”, where “this corner” is defined by the position of the nonzero index. This is best explained by examples, where IV means a nonzero index value:
ix1 |
ix2 |
Move left hand corner of cell with ix = IV |
|
|
||||||
IV |
0 |
|
|
|||||||
0 |
IV |
Move right hand corner of cell with ix = IV |
|
|||||||
IV |
IV |
Move both left and right hand corners of cell with ix = IV |
||||||||
jy1 |
jy2 |
Move “back” (northernmost) corner of cell with jy = IV |
||||||||
IV |
0 |
|||||||||
0 |
IV |
Move “front” (southernmost) corner of cell with jy = IV |
||||||||
IV |
IV |
Move both “front” and “back” corner of cell with jy = IV |
||||||||
|
|
|
|
|
|
|
|
|
|
|
J |
I |
3 |
4 |
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
7 |
|
|
|
|
|
Org. layout |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Move left front: |
|||
|
|
|
|
|
4 0 0 8 |
|||||
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Move right front and back: |
|||
|
|
|
|
|
|
0 |
|
4 |
8 8 |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Figure 19. Examples of use of combinations of cell index and zeros to move individual corners
Some examples of use are shown in Figure 19. In the figure it has been assumed that only the defined cell is affected. The continuity rules to surrounding grid are valid as in the section above, i.e. if the continuity flags are set to the current cell, the movement will not affect neighbour cells, while if the flags are set to the neighbour cell index, the movement will be continuous.
So the complete syntax for the middle example in Figure 19 would be, assuming all six layers are moved,
ADDZCORN |
|
jy1 jy2 |
kz1 kz2 ix1A ix2A jy1A jy2A TB-flag |
||||||||
-- DZ |
ix1 ix2 |
||||||||||
15.0 |
4 |
0 |
0 |
8 |
1 |
6 |
4 |
5 |
7 |
8 |
/ |
14. Aquifer Modelling (GRID section)
When a reservoir is produced by pure depletion, the only energy supply available is fluid and rock expansion. The total fluid expansion energy is obviously proportional to the total fluid volume. Hence if it as an example is possible to produce 5% of total fluid volume by pure expansion energy, then the recovery fraction will be much lower if all of the fluid is oil (5% of oil present) than if the total volume is to a large extent water (recovery 5% of oil + water).
Fortunately (in a recovery perspective) many reservoirs are connected to an aquifer, i.e. a huge volume of water. When including such aquifers in the simulation model, it is of course possible to model the water-filled volume explicitly, building the grid sufficiently large to cover the entire water volume. This will normally require many grid blocks, and can increase the model size considerably.
74
