
- •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.
8.2 Time stepping
As previously noted, the numeric solution is not continuous in time, but advanced in time in discrete steps of length depending on the problem. In general, implicit solution schemes (which Eclipse uses by default) allow for larger time steps than explicit schemes. The term “time step” in simulation is more or less used to describe different kinds of time stepping. Although we will also adopt this sloppy terminology, we will firstly define a more accurate notation.
1.The simulator will advance the solution from one point in time to another. The size of the step is governed by the problem and the solution procedure, but some guidelines are often provided by the user. These solution-dependent time steps are called ministeps by Eclipse.
2.The user will specify milestones (times or dates) of special interest. These milestones may be e.g. times when a new well is put on production, when a well rate is changed, or simply to force the simulator to dump output. These are the points in time which are referred to as time steps (TSTEPS) in Eclipse, but are more correctly denoted milestones.
3.As we shall see when we discuss writing of results for visualisation purposes, a “snapshot” of the simulation, i.e. a list of “all” relevant data in all grid cells, can be pretty large. Therefore, such snapshots are only produced on user specified times (normally much larger intervals than the milestones described above). For reasons which will become clear, these “snapshot times” are called restart times.
In this section we discuss the milestones (TSTEPS).
Eclipse writes a progress report of the simulation, in a file called <root>.PRT (where the original data file was <root>.DATA). How much Eclipse shall write to this file is determined by the user, and described later, at this stage we only note that Eclipse writes data to the .PRT file at the milestones.
In addition, any change to well data (or other dynamic data) can only happen at the milestones. An obvious and minimum required use of the milestones is to tell the simulator how far forward in (real) time to simulate.
The simplest syntax is by the TSTEP keyword:
TSTEP
step1 (step2 step3 ... ) /
The specified steps are lengths of the time steps (time between milestones, not the milestones)
Example
TSTEP
5 10 15 30 5*50 /
tells the simulator to advance the simulation 5 days, then 10 days, then 15, then 30, and finally take 5 time steps of 50 days each. By this scheme the milestones would be after
5, 15, 30, 60, 110, 160, 210, 260, 310, and 360 days.
In practice we often know the milestones by date, not by time intervals, so it is more common to define the milestones by the DATES keyword. The milestones are then defined as
day month year, where
•day is a number 1,...,31,
•month is JAN, FEB, MAR, APR, JUN, JUL (or JLY), AUG, SEP, OCT, NOV, DEC
•year is the numerical year (no abbreviation).
Eclipse knows about month lengths and leap years, so DATES is an easier way to define the milestones at the start of a year or month.
Each line in the DATES keyword contains exactly one date, and is terminated by a slash.
50