Swirr from Permeability
On this page
Summary
Irreducible water saturation can be read from Permeability with a power law fitted to core: better rock has bigger pore throats, drains more completely and ends at a lower Swirr. Use it when core gives a reliable Swirr-permeability relation and a good permeability curve exists.
Inputs and outputs
| Item | Units | |
|---|---|---|
| Input | Permeability | mD |
| Input | Swirr-permeability coefficient a | v/v at 1 mD |
| Input | Swirr-permeability exponent b | dimensionless |
| Output | Irreducible water saturation | v/v |
Equations
Swirr is a power law of permeability with a negative exponent, limited to the interval 0 to 1:
The coefficients are fitted by linear regression of \(\log \Swirr\) on \(\log k\) for the core data of one rock type.
| Symbol | Variable | Units | Typical range |
|---|---|---|---|
| \(k\) | Permeability | mD | 0.0001 to 10000 |
| \(a_k\) | Swirr-permeability coefficient a | v/v at 1 mD | |
| \(b_k\) | Swirr-permeability exponent b | dimensionless | -0.4 to -0.1 |
| \(S_{wirr}\) | Irreducible water saturation | v/v | 0.05 to 0.5 |
Single-value calculator
Behavior
Swirr falls steadily as permeability rises. With a = 0.4 and b = -0.2, Swirr is 0.634 at 0.1 mD, 0.400 at 1 mD, 0.252 at 10 mD, 0.159 at 100 mD and 0.100 at 1000 mD, so each decade of permeability multiplies Swirr by 0.63. A less negative exponent flattens the curve: at 100 mD, exponents of -0.1, -0.2 and -0.3 give 0.252, 0.159 and 0.100.
Parameter guidance
The coefficients come from a log-log cross-plot of core Swirr against core permeability, preferably from capillary pressure at a stated maximum pressure, because the Swirr that is measured depends on how hard the sample was drained. Do the fit for one rock type at a time. The pair 0.4 and -0.2 is illustrative. Use a permeability curve that does not itself depend on Swirr: if permeability comes from a Coates or Timur model, which needs Swirr, the result is circular, and the permeability should be a core-calibrated transform or a measured curve.
Worked example
Permeability from 0.1 to 1000 mD with a = 0.4 and b = -0.2, and the fit of those coefficients from four made-up core points:
import numpy as np
a, b = 0.4, -0.2
for k in (0.1, 1, 10, 100, 1000):
print(f"k = {k:7.1f} mD Swirr = {min(1.0, a * k ** b):.3f}")
# fitting a and b from four hypothetical core points (k, Swirr)
k_core = np.array([0.5, 4.0, 30.0, 250.0])
s_core = np.array([0.46, 0.31, 0.21, 0.14])
slope, intercept = np.polyfit(np.log10(k_core), np.log10(s_core), 1)
print()
print(f"fit: b = {slope:.3f}, a = {10 ** intercept:.3f}")
Output
k = 0.1 mD Swirr = 0.634
k = 1.0 mD Swirr = 0.400
k = 10.0 mD Swirr = 0.252
k = 100.0 mD Swirr = 0.159
k = 1000.0 mD Swirr = 0.100
fit: b = -0.192, a = 0.403
Assumptions and limitations
- Swirr is a function of permeability alone within the rock type. It ignores that two rocks of the same permeability but different pore geometry have different Swirr.
- The permeability curve is accurate. Its log-scale error is passed to Swirr as an error of b times that amount.
- The core Swirr was measured at a pressure or height consistent with the column in the field.
- The permeability does not itself use Swirr, or the circularity has been handled.
QC checks
- The fit on a log-log plot of core Swirr against permeability has a high correlation, and the residuals show no trend with porosity or depth.
- Swirr from this method and from Buckles are of the same size for the same rock, and both fall in the reservoir interval.
- Check the sign: the exponent must be negative.
- Swirr is below the water saturation in hydrocarbon-bearing zones.
Going Deeper
The relation is empirical, but its form is expected from capillary theory: larger throats correspond to higher permeability and lower capillary entry pressure, so the sample drains further at a given pressure. The observed exponent is small, so permeability must change by a decade to change Swirr by about a third. It is for this reason that a Swirr-permeability fit is an effective predictor of Swirr but not a good route back to permeability: the inverse magnifies any Swirr error enormously. The SwH Analysis topic describes the same fit as part of a saturation-height model, on its permeability-based page.
References
References will be added once verified.
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.