Sie sind auf Seite 1von 34

ECLIPSE*

Reservoir Simulation
Tips & Tricks

Hesham Mokhtar Ali


Senior Reservoir Engineer
December 2019
*Mark of Schlumberger
• Flow from one grid block to the next
• Flow from a grid block to the well completion
• Flow within the wells (and surface networks)

• Flow = Transmissibility * Mobility * Potential difference


• Geometry & Properties*Fluid Properties*Well Production
• Results depend on good input data
– Shortage of data: Lots of extrapolation
– Measurement uncertainties
– Reservoir complexity: Heterogeneity
– Unknown recovery mechanisms
– Validity: Assumes discrete numerical approximations represent a continuous system
• Asset valuation:
– Accurate determination of recoverable reserves
• Asset management:
– Determine the most economical perforation method, well pattern, and number of wells to drill, and
their injection rates.
• –Determine appropriate facilities.
• Uncertainty management:
– Estimate financial risk of exploration prospects and early lifecycle fields.
– Assess the effects of early gas or water breakthrough or coning.
– Estimate a means of meeting gas deliverability contracts.
RUNSPEC General model characteristics

GRID Grid geometry and basic rock properties

EDIT Modification of the processed GRID data (optional)

PROPS PVT and SCAL properties

REGIONS Subdivision of the reservoir (optional section)

SOLUTION Request output for line plots (optional section)

SUMMARY Initialization

SCHEDULE Wells, completions, rate data, flow correlations, surface facilities


Simulator advance, control and termination
Required Section Description
Yes RUNSPEC Title, problem dimensions, switches, phases, components, etc.
Yes GRID Geometry of grid (location of grid block corners), rock properties (porosity & absolute permeability, NTG).

Optional EDIT Modifications to calculated pore volumes, grid block center depths and transmissibilities.

Tables of properties of reservoir rock & fluids as functions of fluid pressures, saturations and compositions
Yes PROPS
(including density, viscosity, Kr & Pc). EoS description in compositional runs.

Splits grid into regions for calculation of:


• PVT properties (fluid densities & viscosities)
Optional REGIONS • Saturation properties (Kr & Pc)
• Fluids in place (FIPNUM)
If omitted, all grid blocks are put in 1 region.
Initial conditions:
Yes SOLUTION • Calculated using specified fluid contact for equilibrium
• Read from a restart file set up by an earlier run
Data to be written to Summary file after each timestep. Necessary if certain types of graphical output (for
Optional SUMMARY
example WC vs. time). If omitted, NO Summary files are created.

Operations to be simulated (production & injection controls & constraints), reporting steps. VLP curves &
Yes SCHEDULE
simulator tuning parameters.

Optional OPTIMIZE Reservoir optimization problem (objective function, control parameters and constraints).
INCLUDE -- Generated : Petrel
RUNSPEC '100_PROP_PERMZ.GRDECL' /
TITLE -- Generated : Petrel INCLUDE -- Generated : Petrel
100 '100_PROP_PORO.GRDECL' /
WELLDIMS -- Generated : Petrel ECHO
13 53 2 13 /
PROPS
START -- Generated : Petrel
INCLUDE -- Generated : Petrel
30 NOV 1966 /
'100_PROPS.INC' /
DISGAS -- Generated : Petrel
WATER -- Generated : Petrel
REGIONS
NOECHO -- Generated : Petrel
OIL -- Generated : Petrel
INCLUDE -- Generated : Petrel
GAS -- Generated : Petrel
'100_PROP_SATNUM.GRDECL' /
PETOPTS -- Generated : Petrel
INCLUDE -- Generated : Petrel
DIMENS -- Generated : Petrel
'100_PROP_PVTNUM.GRDECL' /
42 37 79 /
INCLUDE -- Generated : Petrel
TABDIMS -- Generated : Petrel
'100_PROP_ROCKNUM.GRDECL' /
2 1* 21 9* 1 /
INCLUDE -- Generated : Petrel
GRID
'100_PROP_EQLNUM.GRDECL' /
INCLUDE -- Generated : Petrel
ECHO -- Generated : Petrel
'100_GRID.INC' /
SOLUTION
NOECHO -- Generated : Petrel
INCLUDE -- Generated : Petrel
GDFILE -- Generated : Petrel
'100_SOL.INC' /
100_GRID.GRID /
INCLUDE -- Generated : Petrel
SUMMARY
'100_PROP_PERMX.GRDECL' / INCLUDE -- Generated : Petrel

INCLUDE -- Generated : Petrel '100_SUM.INC' /

'100_PROP_PERMY.GRDECL' / -- Generated : Petrel SCHEDULE


INCLUDE -- Generated : Petrel
'100_SCH.INC' /
• Each section of the data file is read and processed, and consistency checks are performed.
• The required information is written to various output files (i.e., *.PRT).
• Exceptions:
– RUNSPEC: Used to allocate dynamic memory
– SCHEDULE: Time-dependent data is read and processed at every time step.
• How ECLIPSE sections relate to the equation
• A saturation function is a table of relative permeability and capillary pressure versus saturation.
• This must be supplied for all the phases present in the simulation for 2 reasons:
• During initialization ECLIPSE uses the upper and lower values of saturation from each table to
determine the initial saturation distribution
• Relative permeability and capillary pressure are essential to calculate interblock flow
• There are two sets of keywords that may be used to input saturation function data.
Calculate fluid
mobility to solve
the flow
equations
between cells
and from cell to
Calculate the initial well
saturation for each
phase in each cell

Calculate the initial


transition zone saturation
of each phase
• Oil-water relative permeability:
– SWL: Connate water saturation
– SWCR: Critical water saturation
– SWU: Maximum water saturation
– SOWCR: Critical oil-in-water saturation

• Gas-oil relative permeability:


– SGL: Connate gas saturation
– SGCR: Critical gas saturation
– SGU: Maximum gas saturation
– SOGCR: Critical oil-gas saturation.
• Family 1:
– Kro entered in the same tables as Krw and Krg
– SWOF, SGOF, and SLGOF
– Cannot be used in miscible flood
• Family 2:
– Kro entered in separate tables versus oil saturation
– SWFN, SGFN, SGWFN, SOF3, SOF2, and SOF32D
– Different keyword families cannot be mixed in the same run.
• Defines the initial state of every cell in the model:
– Initial pressure and phase saturation
– Initial solution ratios
– Depth dependence of reservoir fluid properties
– Initial analytical aquifer conditions
• Equilibration: Initial pressures and saturations are computed by ECLIPSE using data entered with the
EQUIL keyword.
• Restart: Initial solution can be read from a restart file created by an earlier run of ECLIPSE.
• Enumeration: Initial solution is specified explicitly for every grid block.
• EQUIL
• Sets the contacts and pressures for conventional hydrostatic equilibrium.
• EQUIL items are interpreted differently, depending on the phases present.
• Can have more than one equilibration region.(Refer to EQLDIMS)

• EQUIL
• --D P OWC Pcow GOC Pcog RSVD/PBVD RVVD/PDVD N
• 7000 4000 7150 0 1* 1* 1* 1* 0 /
• EQUIL
• --D P OWC Pcow GOC Pcog
• 3500 4000 7150 0 3500 0 /
• 1. Given: Contacts, Datum, and Pressure
• 2. Using BO EOS, calculate phase pressures throughout the model, for example:
• SWATINIT: Initial water saturations for capillary pressure scaling
• Allows you to input a water distribution and to scale the water-oil capillary pressure curves such that this
Sw is honored in equilibrated initial solution.
• Note that any water saturation value that cannot be honored because it is below the water contact is
reset to the maximum Sw in the subsequent equilibration calculation.

With DX=20, DY=6 and DZ=5


SWATINIT
120*0
120*0.1
120*0.5
120*0.7
120*1 /
• It often is necessary to immobilize water below a specific threshold saturation.
1. Add TZONE to PROPS section.
2. Enter threshold saturation (Swcr*) with SWCR.
3. (Optional) Vary Swcr* in history match.
• You often have initial water saturation distribution BUT need EQUIL for pressure and other phase
saturations.
• 1.Input saturation tables as usual, with non-zero Pcow.
• 2.Enter initial water saturation array using SWATINIT in PROPS section.
• 3.Enter EQUIL keyword as usual.

• ECLIPSE scales Pcow to match initial water saturation given in SWATINIT.


• Check that scaled Pcow is physically reasonable (INIT file).
• PPCWMAX limits maximum capillary pressure scaling.
• ECLIPSE uses an iterative process based on Newton's method to solve the non-linear equations.
• The number of non-linear iterations is a guide to model convergence.
• The greatest improvements in performance are obtained by identifying and correcting the cause of any
non-linear problem
ECLIPSE Simulation

Linear
Iteration
Check all warning messages
for data problems
Non-linear
Iteration

Reduce when difficult


Timestep
modelling situations arise

Request reports only when you need Report Step


them
• Data Error
– PVT tables
– VFP curves
– Saturation functions
– Special Characters & missing values
• Model design
– Grid geometry
– Small PV cells next to large PV cells
– Dual porosity Fracture cell PV << Matrix cell PV
• LGRs
– LGR smaller than drainage radius
– Initial contacts outside LGR
– Innermost cells in radial LGR too small
• Program defects
• Data error:
– Typographic errors
– Special characters and missing values
• Grid geometry
– –Small PV cells next to large PV cells
• LGRs
– LGR smaller than drainage radius
– Initial contacts outside LGR
• Dual porosity
– High value of sigma
• Check all problem and warning messages
• Try removing TUNING keywords
• Identify problem cells and try to workout what is happening in the cells at the time of the convergence
problems
– –For example, PINCH and MINPV can eliminate some throughput related problems.
• Check rel-perm tables for sharp derivative changes
• Avoid PVT extrapolations (EXTRAPMS)
• Avoid VFP extrapolations (EXTRAPMS)
• It Resets message print and stop limits
• Used to reset the print & stop limits for messages of any severity type.
• 6 levels of severity:
1. Message (Not an error, purely informative)
2. Comment (Probably not a data error)
3. Warning (Possibly a data error)
4. Problem (Calculation difficulties)
5. Error (Definitely a data error)
6. Bug (Suspected programming error).
• TUNING:
– Record 3; MXWSIT
• MESSAGES:
– Item 10
Thank You

Das könnte Ihnen auch gefallen