CamPetro

Swirr from Lucia

On this page

Summary

In carbonates the pore structure, not porosity alone, controls saturation. Lucia related water saturation to porosity and height above the free water level in classes of Rock fabric number, and the value at the column height of interest is Irreducible water saturation. Use it for carbonates where rock fabric can be assigned from core or from a saturation-based estimate.

Inputs and outputs

Item Units
Input Total porosity v/v
Input Height above free water level ft
Input Rock fabric number dimensionless
Output Irreducible water saturation v/v

Equations

The rock fabric number \(\CpRFN\) selects a class. Within a class, saturation is a power law of height and porosity, limited to the interval 0 to 1:

\[ \Swirr = A\,\CpHeight^{B}\,\phit^{C} \]
RFN Class \(A\) \(B\) \(C\)
0.5 to 1.5 1 (grain-dominated, coarse) 0.02219 -0.316 -1.745
1.5 to 2.5 2 0.1404 -0.407 -1.440
2.5 to 4 3 (mud-dominated, fine) 0.6110 -0.505 -1.210
Symbol Variable Units Typical range
\(\phi_t\) Total porosity v/v 0 to 0.40
\(h\) Height above free water level ft 10 to 1500
\(RFN\) Rock fabric number dimensionless 0.5 to 4
\(S_{wirr}\) Irreducible water saturation v/v 0.05 to 0.5

Single-value calculator

Behavior

Swirr falls as porosity or height rises, and rises with the rock fabric number, because finer-grained rock holds more water at the same porosity. At a height of 100 ft and a porosity of 0.15, classes 1, 2 and 3 give 0.142, 0.331 and 0.593. At a porosity of 0.10 the three give 0.288, 0.593 and 0.968, so the poorest class is almost fully water saturated at that porosity. The curve is not continuous: crossing an RFN of 1.5 or 2.5 steps Swirr to the next class.

Parameter guidance

Rock fabric number is assigned from core, where it comes from thin sections and a cross-plot of porosity and permeability, or from logs. It can also be solved from a log-derived saturation or permeability, which is covered with Lucia water saturation and in the Carbonate Analysis topic. Height is the maximum column height, the same pick as for the Foil method. The porosity should be the one for which the constants were determined, which is total porosity for the published fit as far as I know.

Worked example

A carbonate at 100 ft above the free water level, in each of the three classes, at two porosities:

classes = {1: (0.02219, -0.316, -1.745), 2: (0.1404, -0.407, -1.440), 3: (0.6110, -0.505, -1.210)}
h = 100.0
print(f"{'class':>5} {'phit 0.10':>10} {'phit 0.15':>10} {'phit 0.25':>10}")
for cls, (a, b, c) in classes.items():
    row = [min(1.0, a * h ** b * phit ** c) for phit in (0.10, 0.15, 0.25)]
    print(f"{cls:5d} " + " ".join(f"{x:10.3f}" for x in row))

Output

class  phit 0.10  phit 0.15  phit 0.25
    1      0.288      0.142      0.058
    2      0.593      0.331      0.159
    3      0.968      0.593      0.320

Assumptions and limitations

  • Pore structure is described by one rock fabric number for the interval. In a vuggy or fractured rock the fabric changes bed by bed and the interparticle porosity, not total porosity, controls the fabric.
  • The constants were fitted to a particular set of carbonate fields and are used outside that set.
  • The height used is the maximum column and the rock is in capillary equilibrium with it.
  • The classes are separate. A value at a class boundary is sensitive to the RFN pick.

QC checks

  • Swirr is higher for finer rock fabric at the same porosity and height, and falls with porosity.
  • Swirr is not capped at 1 in the reservoir. A cap in a class 3 interval at low porosity suggests that the porosity is below the useful range of the fit.
  • Compare with Buckles and NMR in the same rock. A large disagreement is a rock fabric assignment problem.
  • Check that the RFN is within 0.5 to 4.

Going Deeper

Lucia's rock-fabric work separates the interparticle pore space of carbonates into three petrophysical classes, so that porosity, permeability and saturation can be related by class and not by lithology, which does not control them. The class boundaries and the saturation-height constants are empirical fits to measured capillary pressure data in a set of carbonate fields. Because the fits are by class, they step at the boundaries: a smooth interpolation by RFN gives a continuous curve and is a variation used in some work. Some software also adds a fourth, finer-fabric line; I have not documented that here.

References

  1. Lucia, F.J., 1995. Rock-fabric/petrophysical classification of carbonate pore space for reservoir characterization. AAPG Bulletin, 79(9), 1275–1300.
  2. Lucia, F.J., 2007. Carbonate Reservoir Characterization: An Integrated Approach, 2nd edition. Springer-Verlag, Berlin Heidelberg.

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.