Entry of Initial Water
Saturation Distribution
Entry of the
initial water saturation distribution in reservoir models should be avoided
in general, except when entered as observed data in geological models for
characterization purposes. In real cases, it should always be
internally calculated by capillary-gravity equilibrium, according to
specified rock/fluid property distributions and initial fluid contacts.
If a
model is forced to honor what is normally an output as a specified input,
then the model's applicability is restricted, losing the ability to
characterize the input parameters that normally affect that output. For
example, if you specify the initial water saturation distribution to a
reservoir simulator or to a geological model (SWATINIT in Eclipse, SWINIT in
Sensor) then you can not characterize the reservoir rock type distribution
(or any of the properties it represents like irreducible water saturation
and Pc curves, or permeability or porosity if a J-function is used),
through history matching because the correct input-output relationships
dictated by our model equations and relationships have been destroyed, i.e.
changing any of those parameters (while leaving the Sw specification fixed) would not have the correct effect on the
initial fluid distributions or on the simulation results. In most
models, a default block-by-block capillary pressure adjustment is applied by
default to maintain equilibrium when initial saturation distributions are
input.
Capillary Pressure Adjustment
A model typically calculates the initial water
saturation (Swi) array using the principle of capillary-gravity
equilibrium. At equilibrium, initial water-oil capillary pressure Pci
is given by
Pci = Δγ(hwc-Z)
(1)
where Δγ is γw-γo, γw
and γo are water and oil phase densities, psi/ft, hwc is initial
free-water level and Z is depth, measured positively downward. Swi
is then obtained from the entered water-oil Pc curve – Pc(Sw) vs
Sw.
However, a different initial array (Swi*)
may be entered as an input data
array. This different Swi* gives an initial Pc array, Pci*
(through the entered Pc(Sw) vs Sw curve), which
differs from the equilibrium Pci array (Eq 1) and initial
equilibrium is lost. A run with no wells can give significant saturation
and/or pressure changes persisting for months or even years as saturations
and pressures change toward equilibrium values. It is difficult to quantify
the effects of this initial non-equilibrium on results (rates,water cut, gor,
etc.).
Many years ago a colleague suggested a Pc
adjustment which allows entry of an Swi* array and preserves
initial equilibrium. A ΔPc array is calculated and stored as Pci-Pci*
at time 0 and dynamic Pc values throughout the run are calculated as Pc(Sw)
(the entered Pc curve) + ΔPc. After using this for awhile we noted anomalies
and suspected its causing error in some history match and prediction run
results.
Example 12 below quantifies the error in
results caused by Pc adjustment for a waterflood. The error is
problem-dependent and may be significantly less or more in other problems or
examples. Also, other Pc adjustment schemes may give error more or less than
the scheme just described.
Example 12.
This example is a waterflood in a 100x20 xz
cross-section dipping at 5 degrees with an initial free-water level = hwc.
Permeability is the SPE10 Model 1 geostatistical distribution with
permeabilities varying from about .001 to 1000 md. Three pore volumes are
injected in 7300 days.
The Swi* distribution “known” from
logs and cores is assumed to obey Pci=20(1-Swn)2
(with Leverett J-function k-dependence) where Swn = (Sw-Swc)/(1-Swc).
The datafile is
pc12.dat.
Run 1 (pc12.out)
gives the correct results for this problem since the entered Pc(Sw)
curve is correct - the 20(1-Swn)2 giving equilibrium
corresponding to the known Swi* distribution. The problem here
is that the correct entered Pc curve giving equilibrium corresponding to the
known Swi* distribution is generally not known. The Pc adjustment
Run 2 uses a minor hard-code change and satisfies the following:
Initial water saturation is the known Swi*
of Run 1.
Entered incorrect Pc curve is chosen as
Pc=0 for simplicity.
The Pc adjustment array is dPc=Pci.
Runs 1 and 2 have identical initial fluids in
place, identical initial saturation distributions, and both are in initial
equilibrium. Fig. 12 compares Run 2 (Pc adjustment) and Run 1 (correct)
results. Oil recovery for the Pc adjustment Run 2 is 38.5 %, 9 % less than
the correct Run 1 recovery of 42.3 %. The early-time Pc adjustment error in
oil recovery is much larger than the final 9 % error.

The remedy to this problem of entered Swi*
array (the SWINIT array in Sensor) causing non-equilibrium is not Pc
adjustment. Rather, the remedy is determination of entered Pc curves (and
data which affect Pc, e.g. end-point Swc) which give internally
computed water saturations sufficiently close to the observed Swi*
values (such that no significant differences result from entry or non-entry
of the
Swi*
values). If the Swi* distribution is assumed to be correct, this is
essentially a 0-time “history match” problem. This determination poses a
significant challenge to the petrophysicist. Some or many petrophysicists
have undoubtedly made significant progress in meeting this challenge.
Nevertheless, the writer continues to note significant to severe initial
non-equilibrium in datasets where Swi* is entered, and that doing
so can have disastrous consequences regardless of the simulator used.
Entry of Swi* along with any significant capillary pressure adjustment is in
general an invalid shortcut to proper reservoir characterization.
Regardless of whether or not Swi* is entered, the no-well 1000 or 5000 day
test for equilibrium that we recommend, without using any type of capillary
pressure adjustment, indicates in seconds or minutes whether or not the
characterization is valid (sufficiently consistent) with respect to initial
equilibrium. It is impossible for users of models using capillary
pressure adjustment to make this critical determination, since equilibrium
is achieved for any specified block saturation, free water level, and Pc
curve.
There is
a place for capillary pressure adjustment, and it is in the geological
model, and it is done by rock type, not block-by-block. No geological model
author in their right mind would include a block-by-block adjustment option,
because it would completely eliminate the ability of their model to
characterize the rock and rock type properties and distributions at the well
gridblocks where they have data (just as it eliminates a reservoir
simulator's ability to characterize the rest of the reservoir by history
matching production data). But the issue of entered Swi* is a much
more basic one, which makes the issue of capillary pressure adjustment
secondary, for several reasons. The first is given in the second
paragraph above. The second is, that in both geological and simulation models, we identify valid
representations by matching observations to model representations and
results, and proper use of both geological and simulation models of real
cases initially at equilibrium absolutely requires that the initial
saturation distribution be treated as an observation or as a result, never
as an input. If we can not determine the rock and fluid properties and
initial boundary conditions that determine the observed and/or inferred
initial fluid distributions, then we have no chance of robustly modeling
dynamic behavior.
Sensor does not use Pc adjustment.
A simple example comparing the very different results
of the adjustment methods of VIP (which applies an incremental or additive
block-by-block adjustment) and Eclipse (which applies a multiplicative
block-by-block adjustment) is given in a publicly available LinkedIn
discussion on the subject:
One of the biggest mistakes in reservoir modeling. |