about sensor
why sensor?
who's fastest?
p10 p50 p90
bayes and markov
drainage radius
frac conductivity
tight & fractured
capillary pressure
spe ccus
fd vs fe
third party tools
q & a
contact us
Dr. K. H. Coats



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 γwo, γ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.

© 2000 - 2019 Coats Engineering, Inc.