- •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.
•A simulation that runs with alternating periods of time step increase and convergence failure / time step chopping / small time steps, will normally be much less efficient than a run with albeit shorter average time steps, but with no convergence problems. The optimal time step is the largest possible with no problems, but as exemplified above, this may vary (strongly) during the run, so it is absolutely not a trivial question.
TUNING keyword summarized
TUNING has three records Record 1: Time step control
Record 2: Convergence tolerance parameters, recommended left at default values Record 3: Iteration control.
Each record contains a number of parameters and is terminated by a slash.
The keyword syntax, with record 2 left default is,.
TUNING
TSINIT TSMAXZ TSMINZ TSMCHP TSFMAX TSFMIN TSFCNV TFDIFF ... /
/
NEWTMX NEWTMN LITMAX LITMIN MXWSIT .../
TSINIT |
Max. length of next ministep (after this keyword) (default 1 day) |
TSMAXZ |
Max. length of any ministep (default 365 days) |
TSMINZ |
Min. length any ministep (default 0.1 day) |
TSMCHP |
Min. length any choppable ministep (default 0.15 day) |
TSFMAX |
Max. ministep increase factor (default 3) |
TSFMIN |
Min. ministep cutback factor (default 0.3) |
TSFCNV |
Cut factor after convergence failure (default 0.1) |
TFDIFF |
Max. increase factor after convergence failure (default 1.25) |
NEWTMX |
Maximum number of Newton iterations in a time step (default 12) |
NEWTMN |
Minimum number of Newton iterations in a time step (default 1) |
LITMAX |
Maximum number of linear iterations in each Newton iteration (default 25) |
LITMIN |
Minimum number of linear iterations in each Newton iteration (default 1) |
MXWSIT |
Maximum number of iterations within well flow calculation (default 8) |
In addition, the number of search directions stored for use in the linear solver procedure is defined by the NSTACK keyword in the RUNSPEC section.
The TUNING keyword can be used anywhere in the SCHEDULE section, and as many times as desired. The parameters will be valid until the next TUNING keyword is encountered.
If the user only wants to change TSINIT, the size of the next time step, the keyword NEXTSTEP is an alternative to re-including the entire TUNING keyword.
19. Non-neighbour Connections and System Structure
We return to the structure of the system matrix as in Figures 29 and 30. In this section we will discuss how the structure shown in Figure 30 is affected by a fault, or more generally, by the presence of nonneighbour connections. The model segment we will study is shown in Figure 33.
102
|
9 |
17 |
25 |
|
1 |
|
13 |
21 |
29 |
2 |
5 |
|
|
|
|
|
|
|
|
3 |
6 |
14 |
22 |
30 |
|
7 |
|||
4 |
15 |
23 |
31 |
|
|
8 |
16 |
24 |
32 |
Figure 33. A grid with ZYX ordering
This time we use the ordering most often used by Eclipse, where “direction 1” is Z, “direction 2” is Y, and “direction 3” is X. The cell ordering is then seen in Figure 33.
This configuration will result in the system matrix shown in Figure 34.
|
1 |
|
|
|
5 |
|
|
|
|
10 |
|
|
|
|
15 |
|
|
|
|
20 |
|
|
|
|
25 |
|
|
|
|
30 |
|
|
1 |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
x |
|
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
x |
|
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
x |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
x |
x |
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
15 |
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
|
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
x |
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
x |
x |
|
|
|
|
|
|
|
x |
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
x |
x |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
|
x |
x |
|
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
Figure 34. System structure for grid in Figure 33
Next we look at what happens if there is a fault between the rows i = 2 and i = 3 in the grid. The configuration is shown in Figure 35. (When working through this example we assume the sand to sand contact is as in the figure.)
103
Figure 35. Grid as in Figure 33, but with fault
Note that some connections will disappear (cells are not in contact), while new contacts appear due to the fault. Connections which are present in Figure 33, but not in Figure 35 are marked with a “-” in the system, Figure 36, while new connections due to NNC-cells are marked with an “n”.
|
1 |
|
|
|
5 |
|
|
|
|
10 |
|
|
|
|
15 |
|
|
|
|
20 |
|
|
|
|
25 |
|
|
|
|
30 |
|
|
1 |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
x |
|
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
x |
|
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
n |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
x |
n |
n |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
|
|
|
|
n |
n |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
x |
x |
|
|
|
|
n |
- |
|
|
|
|
|
|
|
|
|
|
15 |
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
|
|
|
|
n |
n |
- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
|
|
|
|
|
n |
n |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
n |
n |
|
|
|
|
|
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
n |
n |
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
n |
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
x |
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
|
|
|
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
n |
n |
n |
x |
|
|
|
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
n |
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
n |
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
|
|
|
|
|
|
|
x |
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
x |
x |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
x |
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
|
|
|
x |
x |
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
|
x |
x |
|
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
x |
|
|
x |
x |
Figure 36. System structure for faulted grid
The most important consequence of the presence of the non-neighbour connections is that the 7- diagonal structure has been destroyed. Some elements have disappeared, while others have been added. In this particular example the difference isn’t that large, but in general the NNC-entries can end up anywhere in the matrix, so techniques which utilise the 7-band structure can no longer be used. The zero-elements on the bands also pose problems.
Eclipse handles the NNC-entries as perturbations of the original structure, and project these entries onto the original bands. Effectively, the “alien” elements are moved to the right hand side of the
104
equation and lags one iteration behind in the procedure. This approach works satisfactory when the number of “irregular” entries is small, but if the number of NNCs become large (like more than 10% of ordinary connections) it should come as no surprise that convergence rate is severely reduced.
Obviously fault throws generate non-neighbour connections. In addition, the most common sources for NNCs are wells, aquifers, and local grid refinements.
105
