CamPetro

Permeability-Based and RQI/FZI Models

On this page

Summary

A permeability-based saturation-height model computes Water saturation along the well from the Leverett J-function and a power law between J and the Normalized water saturation, with permeability and porosity from logs. The lower end of the curve, Irreducible water saturation, is itself a function of permeability or of the Reservoir quality index, so rock quality controls both the height at which water starts to fall and the value it falls to. Use it where capillary pressure core data define the J-Sw relation and a permeability curve exists.

Inputs and outputs

Item Units
Input True vertical depth ft
Input Free water level ft
Input Permeability mD
Input Effective porosity v/v
Input Fluid density contrast g/cm³
Input Interfacial tension times cosine of contact angle dyne/cm
Input J-Sw coefficient a dimensionless
Input J-Sw exponent b dimensionless
Input Swirr-RQI coefficient a v/v at 1 µm
Input Swirr-RQI exponent b dimensionless
Output Height above free water level ft
Output Height of the entry pressure ft
Output Leverett J-function dimensionless
Output Normalized water saturation v/v
Output Reservoir quality index µm
Output Irreducible water saturation v/v
Output Water saturation v/v

Equations

Height and pressure. With depth and the free water level on the same reference, the height above the free water level and the capillary pressure are

\[ \hFWL = \max\left(0,\ \zFWL - \zdepth\right) \qquad \PcRes = 0.433\,\dRhoHC\,\hFWL \]

J-function. The J-function of the log-derived rock is computed from the reservoir pressure and fluid properties, where \(\sigCos\) is the product of interfacial tension and the cosine of the contact angle, and \(k\) is permeability in mD:

\[ \Jlev = 0.2166\,\frac{\PcRes}{\sigCos}\,\sqrt{\frac{k}{\phie}} \]

Saturation from J. Capillary pressure data of one rock type are fitted by a power law between J and the normalized water saturation, \(\Jlev = \JswA\,\SwNorm^{\,\JswB}\) with a negative exponent. Inverting it gives the normalized saturation, limited to 1 (full water saturation), and the water saturation follows by rescaling between \(\Swirr\) and 1:

\[ \SwNorm = \min\left[1,\ \left(\frac{\Jlev}{\JswA}\right)^{1/\JswB}\right] \qquad \Sw = \SwNorm\left(1 - \Swirr\right) + \Swirr \]

At the free water level and below, \(\Jlev = 0\) and \(\Sw = 1\). The coefficient \(\JswA\) is the J-value at which the normalized saturation reaches 1, so the entry pressure of the rock corresponds to \(\Jlev = \JswA\), and the model returns \(\Sw = 1\) up to the height

\[ \hEntry = \frac{\JswA\,\sigCos}{0.2166\,\sqrt{k/\phie}\;0.433\,\dRhoHC} \]

Irreducible saturation. Swirr from the RQI relation, with RQI in micrometres and k in mD, is

\[ \CpRQI = 0.0314\sqrt{\frac{k}{\phie}} \qquad \Swirr = \min\left[1,\ \CpSwRqiA\,\CpRQI^{\,\CpSwRqiB}\right] \]

The permeability variant uses \(\Swirr = a_k\,k^{b_k}\) in its place, and the two differ only in the predictor. Both are described on the Swirr from RQI and Swirr from permeability pages; this page uses them only as the lower end of the curve.

Symbol Variable Units Typical range
\(z\) True vertical depth ft 0 to 30000
\(z_{FWL}\) Free water level ft
\(h\) Height above free water level ft 0 to 1000
\(P_{c,res}\) Reservoir capillary pressure psi 0 to 500
\(k\) Permeability mD 0.0001 to 10000
\(\phi_e\) Effective porosity v/v 0 to 0.35
\(\Delta\rho\) Fluid density contrast g/cm³ 0.1 to 0.9
\(\sigma\cos\theta\) Interfacial tension times cosine of contact angle dyne/cm 10 to 60
\(J\) Leverett J-function dimensionless 0.05 to 10
\(a_J\) J-Sw coefficient a dimensionless 0.02 to 0.5
\(b_J\) J-Sw exponent b dimensionless -3 to -0.3
\(S_{w,n}\) Normalized water saturation v/v 0 to 1
\(RQI\) Reservoir quality index µm 0.01 to 5
\(a_{q}\) Swirr-RQI coefficient a v/v at 1 µm
\(b_{q}\) Swirr-RQI exponent b dimensionless -0.8 to -0.2
\(S_{wirr}\) Irreducible water saturation v/v 0.05 to 0.5
\(S_w\) Water saturation v/v 0 to 1
\(h_e\) Height of the entry pressure ft 0 to 200

Single-value calculator

Behavior

The plot is a vertical depth plot: water saturation is 1 at and below the free water level at 8500 ft and falls upward, and the three curves are rocks of 1, 10 and 100 mD at a porosity of 0.18. A better rock lowers the whole curve and shortens the transition zone. At 100 ft above the free water level, Sw is 0.829 at 1 mD, 0.538 at 10 mD and 0.327 at 100 mD. Within a single rock the saturation falls with height: at 10 mD, Sw is 0.644 at 50 ft, 0.538 at 100 ft and 0.471 at 200 ft. Below about 14.9 ft the 10 mD rock is still at Sw = 1: this is the entry height \(h_e\), and for the 1 mD and 100 mD rocks it is 47.0 and 4.7 ft. The model therefore has a built-in gap between the free water level and the first hydrocarbon saturation, which gets larger as the rock gets tighter.

Parameter guidance

J-Sw coefficients. The pair \(a_J\) = 0.1 and \(b_J\) = -1.5 in the calculator is illustrative. Fit them to core: plot J against the normalized water saturation of every plug of one flow unit on log-log axes and fit a straight line. The exponent is equal to minus the inverse of the Brooks-Corey pore size distribution index \(\lambda\), so \(b_J\) = -1.5 corresponds to \(\lambda\) = 0.67, a broad distribution, and \(b_J\) of -0.5 corresponds to \(\lambda\) = 2, a uniform one. Fit each rock type separately: one pair for a mixed section blurs the curves.

Swirr relation. Take the Swirr coefficients from the same plugs, using the saturation at the highest pressure reached, or from the Swirr pages. The Swirr used for normalization has to be the Swirr of the capillary pressure fit, not a separate estimate, otherwise the fitted J-Sw curve does not close at the lower end.

Permeability, RQI and FZI. Permeability can come from core, a porosity-permeability transform or a flow unit relation, and must not depend on Swirr if Swirr is computed from it. The flow zone indicator \(\mathrm{FZI}\) = RQI divided by normalized porosity is constant for a hydraulic flow unit, so grouping plugs by FZI before fitting gives one set of coefficients per unit (see Flow Units and Winland). Note that \(0.2166\sqrt{k/\phi}\) is \(6.898\) times RQI, so J is RQI times the scaled pressure and the model is already an RQI model: a rock of the same RQI has the same saturation curve.

Fluid inputs and the free water level. The density contrast, the interfacial tension and contact angle product and the free water level are covered on the Capillary Pressure and FWL pages.

Worked example

Three rocks with 0.18 porosity and 1, 10 and 100 mD, 100 ft above the free water level. The Swirr is taken from the RQI relation and, for comparison, from a permeability relation (\(a_k\) = 0.4, \(b_k\) = -0.2, illustrative), and a least-squares fit of the J-Sw coefficients is made from synthetic capillary pressure points:

import math
sc, drho, phi, h = 26.0, 0.25, 0.18, 100.0
aj, bj = 0.1, -1.5
def sw_of(k, swirr):
    j = 0.2166 * 0.433 * drho * h / sc * math.sqrt(k / phi)
    swn = min(1.0, (j / aj) ** (1 / bj)) if j > 0 else 1.0
    return swn * (1 - swirr) + swirr, j, swn
print(f"{'k':>5} {'RQI':>6} {'Swirr RQI':>10} {'Swirr k':>8} {'J':>6} {'Swn':>6} {'Sw (RQI)':>9} {'Sw (k)':>7}")
for k in (1, 10, 100):
    rqi = 0.0314 * math.sqrt(k / phi)
    s_rqi = min(1, 0.2 * rqi ** -0.4)
    s_k = min(1, 0.4 * k ** -0.2)
    sw1, j, swn = sw_of(k, s_rqi)
    sw2 = sw_of(k, s_k)[0]
    print(f'{k:5.0f} {rqi:6.3f} {s_rqi:10.3f} {s_k:8.3f} {j:6.3f} {swn:6.3f} {sw1:9.3f} {sw2:7.3f}')
# fit of ln J = ln a + b ln Swn to synthetic capillary pressure points (J scatter about a = 0.1, b = -1.5)
pts = [(0.80, 1.04), (0.60, 0.97), (0.45, 1.03), (0.35, 0.98), (0.25, 1.02), (0.18, 0.96), (0.12, 1.05)]
xs = [math.log(s) for s, _ in pts]
ys = [math.log(0.1 * s ** -1.5 * f) for s, f in pts]
n = len(pts); mx = sum(xs) / n; my = sum(ys) / n
b = sum((x - mx) * (y - my) for x, y in zip(xs, ys)) / sum((x - mx) ** 2 for x in xs)
a = math.exp(my - b * mx)
print(f'fitted J = {a:.4f} x Swn^{b:.3f}   (lambda = {-1 / b:.2f})')

Output

    k    RQI  Swirr RQI  Swirr k      J    Swn  Sw (RQI)  Sw (k)
    1  0.074      0.567    0.400  0.213  0.605     0.829   0.763
   10  0.234      0.358    0.252  0.672  0.281     0.538   0.462
  100  0.740      0.226    0.159  2.126  0.130     0.327   0.269
fitted J = 0.1004 x Swn^-1.502   (lambda = 0.67)

Assumptions and limitations

  • The saturation at a height is set by capillary equilibrium: the column has been in place long enough to drain to the capillary-gravity profile. In tight rock, or in a recent fill, the zone can be below the equilibrium profile.
  • One J-Sw power law describes the rock type. A true Brooks-Corey pore size distribution is a straight line on a log-log plot, but real curves are often curved near the entry pressure and near Swirr, so the power law fits a range of saturation, not all of it.
  • Swirr is a function of permeability or RQI within the rock type, and is the saturation at the highest pressure of the capillary pressure data.
  • The permeability curve is good. Because \(\sqrt{k}\) controls J, the permeability error is carried in full into the saturation-height curve.
  • The free water level, fluid densities and the product of interfacial tension and contact angle are single values over the interval.
  • Clay-bound water is on the same basis for the J-Sw fit and the log Sw it is compared with: either both effective or both total.

QC checks

  • Sw is 1 at and below the free water level, falls monotonically upward and does not go below Swirr.
  • Compare modelled Sw with the log Sw in clean, thick intervals well above the transition zone. A constant offset points to the free water level, the fluid contrast, or the \(\sigma\cos\theta\) product.
  • Compare with core water saturation (Dean-Stark) at the same depths if the core was cut with oil-based mud.
  • The modelled Sw of different rock types should line up on a plot of Sw against height, with the better rock lower. Curves that cross point to a rock typing or coefficient problem.
  • The entry height \(h_e\) is small compared with the column height. A very large one means the entry pressure is overestimated in tight rock.

Going Deeper

The model above is the standard permeability-based form: a capillary pressure curve is normalized by the interfacial properties and by the rock quality scale, fitted by a power law, and inverted to get saturation from height. The same form is a Brooks-Corey capillary pressure curve in disguise, since \(P_c = P_e\,S_{w,n}^{-1/\lambda}\) with the entry pressure \(P_e\) proportional to \(a_J\,\sigma\cos\theta/\sqrt{k/\phi}\). That connection lets the same \(\lambda\) be used for the relative permeability of the rock, as on the Brooks-Corey page. Two further points matter in practice. First, the power law does not return a finite Swirr by itself: the irreducible saturation has to be supplied from the Swirr relations, which is the reason the Swirr pages come first. Second, many models use one J-function per rock type, with rock types chosen from FZI or from a Winland R35 class, rather than one equation for a continuous permeability range. Hyperbolic and other functional forms exist, and are used when the data are strongly curved in log-log space; the choice among forms matters less than the quality of the rock typing.

References

  1. Leverett, M.C., 1941. Capillary behavior in porous solids. Transactions of the AIME, 142(1), 152–169.
  2. Brooks, R.H. and Corey, A.T., 1964. Hydraulic properties of porous media. Hydrology Papers No. 3, Colorado State University.
  3. Amaefule, J.O., Altunbay, M., Tiab, D., Kersey, D.G. and Keelan, D.K., 1993. Enhanced reservoir description: using core and log data to identify hydraulic (flow) units and predict permeability in uncored intervals/wells. SPE 26436, SPE Annual Technical Conference and Exhibition, Houston, TX.

Python reference implementation

Python reference implementation

The Python reference implementation is available to registered users with a verified email address. Register or sign in to view it.