Lucia Permeability, Swirr and Sw
On this page
Summary
One Rock fabric number and one Interparticle porosity give three results in a carbonate: Permeability from the porosity-permeability relation, Water saturation at a height above the free water level, and Irreducible water saturation at the column height. This page ties the three together and shows how they are kept consistent. The saturation and Swirr relations themselves are on Sw from Lucia and Swirr from Lucia; the new relation here is the permeability.
Inputs and outputs
| Item | Units | |
|---|---|---|
| Input | Interparticle porosity | v/v |
| Input | Rock fabric number | dimensionless |
| Input | Height above free water level | ft |
| Input | Height above free water level | ft |
| Output | Permeability | mD |
| Output | Water saturation | v/v |
| Output | Irreducible water saturation | v/v |
Equations
Permeability from the rock fabric number and interparticle porosity (the same relation that is solved for the rock fabric number on Lucia Rock Fabric Number), with \(k\) in mD:
Saturation and Swirr. Both are the same class power law of height and porosity, with constants chosen by the rock fabric number class. The constants and class limits are in the tables on the two linked pages and are not repeated here. In the form used by the calculator, with the interparticle porosity:
\(\hFWL\) is the height at which the saturation is wanted. \(\CpHeight\) is the maximum column height, so \(\Swirr\) is the value of the same curve at the top of the column. Both are limited to 0 to 1.
Consistency. Permeability is continuous in the rock fabric number, while the saturation and Swirr constants step at the class boundaries 1.5 and 2.5. A rock fabric number solved from permeability and the same number solved from saturation should agree.
| Symbol | Variable | Units | Typical range |
|---|---|---|---|
| \(\phi_{ip}\) | Interparticle porosity | v/v | 0.02 to 0.35 |
| \(RFN\) | Rock fabric number | dimensionless | 0.5 to 4 |
| \(k\) | Permeability | mD | 0.0001 to 10000 |
| \(h\) | Height above free water level | ft | 0 to 1000 |
| \(h\) | Height above free water level | ft | 10 to 1500 |
| \(S_w\) | Water saturation | v/v | 0 to 1 |
| \(S_{wirr}\) | Irreducible water saturation | v/v | 0.05 to 0.5 |
Single-value calculator
Behavior
Permeability rises steeply with porosity and falls with rock fabric number. At an interparticle porosity of 0.15 it is 442, 11.6 and 1.38 mD for rock fabric numbers of 1, 2 and 3, and at 0.10 it is 13.1, 0.95 and 0.21 mD. At 0.25 the same classes give 37 000, 272 and 15 mD. In RFN 2 rock, permeability goes from 0.013 mD at a porosity of 0.05 to 11.6 mD at 0.15 and 272 mD at 0.25. The saturation and Swirr use the same number: at 0.15 porosity, Sw at 100 ft is 0.142, 0.331 and 0.593, and Swirr at 300 ft is 0.100, 0.212 and 0.340. The ordering is consistent: the rock with the highest permeability for its porosity has the lowest saturation. The saturation steps between classes (the plot of permeability does not), so at a rock fabric number of 1.5 the permeability is 52.6 mD while at 1.51 it is 50.8 mD but the saturation moves to the next class.
Parameter guidance
The rock fabric number is the shared parameter: from core, from the permeability solution, or from saturation, as discussed on the step page. The interparticle porosity comes from Sonic-Derived Secondary Porosity or equals total porosity in non-vuggy rock. Height above the free water level at each depth is from the free water level and the depth. The column height is the maximum height of the hydrocarbon column in the zone. Note that the linked pages (Sw from Lucia and Swirr from Lucia) take total porosity in their calculators. The two agree in rock with no separate vugs. Only one choice should be used across a project.
Worked example
Permeability, Sw at 100 ft and Swirr at 300 ft for rock fabric numbers of 1, 2 and 3 at an interparticle porosity of 0.15, and the porosity effect on permeability in class 2:
import math
L = math.log10
def perm(r, phi): return 10 ** (9.7892 - 12.0838 * L(r) + (8.6711 - 8.2965 * L(r)) * L(phi))
def sat(r, h, phi):
a, b, c = (0.02219, -0.316, -1.745) if r <= 1.5 else (0.1404, -0.407, -1.44) if r <= 2.5 else (0.611, -0.505, -1.21)
return min(1.0, max(0.0, a * h ** b * phi ** c))
phi = 0.15
print(f"{'RFN':>4} {'k (mD)':>9} {'Sw 100ft':>9} {'Swirr 300ft':>12}")
for r in (1.0, 2.0, 3.0):
print(f"{r:4.1f} {perm(r, phi):9.2f} {sat(r, 100, phi):9.3f} {sat(r, 300, phi):12.3f}")
print("class 2 permeability vs porosity: " + ", ".join(f"{p:.2f}: {perm(2.0, p):.3g} mD" for p in (0.05, 0.10, 0.15, 0.20, 0.25)))
Output
RFN k (mD) Sw 100ft Swirr 300ft
1.0 441.58 0.142 0.100
2.0 11.62 0.331 0.212
3.0 1.38 0.593 0.340
class 2 permeability vs porosity: 0.05: 0.0132 mD, 0.10: 0.951 mD, 0.15: 11.6 mD, 0.20: 68.6 mD, 0.25: 272 mD
Assumptions and limitations
- One rock fabric number describes the interval, and the free water level and column height are known.
- Permeability is the matrix permeability for interparticle porosity. Fractures and touching vugs raise real permeability above it.
- The relations are empirical fits to a set of carbonate fields, with a limit to the porosity range (not below about 0.04).
- Capillary equilibrium with the free water level applies for the saturation and Swirr.
- The saturation and Swirr constants step at the class boundaries, which is a simplification of a continuous change.
QC checks
- Permeability, Sw and Swirr change together with the rock fabric number: a higher number gives lower permeability and higher saturation at the same porosity.
- Permeability agrees with core permeability within about a factor of 2 to 3, which is the scatter of the relation. A bias means a wrong rock fabric number.
- Sw from the capillary relation is close to the resistivity Sw (with Lucia m) in the clean part of the column.
- Swirr is not above Sw at heights below the column height, since saturation decreases with height.
- RFN solved from permeability and RFN solved from saturation agree. If they do not, the free water level, porosity type or core permeability is suspect.
Going Deeper
The three relations share a parameter, which is their strength: a single rock fabric number, tied to geology, yields flow, capillary and storage descriptions that are consistent with each other. In practice they are rarely calibrated together. Permeability from the relation is often compared with core and a poor match is fixed by changing the rock fabric number, which then changes saturation as well. It is better to check the number against both. Interparticle porosity is the porosity for which the relations were made, but the two linked pages use total porosity, so check which one the results rely on in vuggy rock. Class steps in the saturation relation could be replaced with a smooth interpolation of the constants between classes. That variation is not published to my knowledge.
References
- Lucia, F.J., 1995. Rock-fabric/petrophysical classification of carbonate pore space for reservoir characterization. AAPG Bulletin, 79(9), 1275–1300.
- Lucia, F.J., 2007. Carbonate Reservoir Characterization: An Integrated Approach, 2nd edition. Springer-Verlag, Berlin Heidelberg.
- Jennings, J.W. and Lucia, F.J., 2003. Predicting permeability from well logs in carbonates with a link to geology for interwell permeability mapping. SPE Reservoir Evaluation & Engineering, 6(4), 215–225.
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.