CamPetro

Heslop

On this page

Summary

The Heslop form estimates Permeability from effective porosity and the movable fraction of the pore space, 1 - Irreducible water saturation, each raised to a power. This page documents the form with the constants that are in use, which I could not trace to a verified publication, so use it only as a calibrated template.

Inputs and outputs

Item Units
Input Effective porosity v/v
Input Irreducible water saturation v/v
Input Permeability model multiplier P mD (equation dependent)
Input Permeability model porosity exponent Q dimensionless
Input Permeability model saturation exponent R dimensionless
Output Permeability mD
Output Log permeability log10(mD)

Equations

Permeability is a product of effective porosity and the movable fraction of the pore space, each to a power:

\[ k = \CpPermP\,\phie^{\CpPermQ}\left(1 - \Swirr\right)^{\CpPermR} \]

with \(P = 10^5\), \(Q = 3.9\) and \(R = 3.9\) in the values I have seen (k in mD). The result is limited to the interval 0 to 10 000 mD in the calculator.

Symbol Variable Units Typical range
\(\phi_e\) Effective porosity v/v 0 to 0.35
\(S_{wirr}\) Irreducible water saturation v/v 0.05 to 0.5
\(P\) Permeability model multiplier P mD (equation dependent)
\(Q\) Permeability model porosity exponent Q dimensionless 2 to 6
\(R\) Permeability model saturation exponent R dimensionless 1 to 4
\(k\) Permeability mD 0.0001 to 10000
\(\log_{10}k\) Log permeability log10(mD) -4 to 4

Single-value calculator

Behavior

Compared with the models that divide by Swirr, this one is gentle in its Swirr dependence, because 1 - Swirr changes little. With the values above, at a porosity of 0.20 a Swirr of 0.15, 0.25 and 0.35 gives 100, 61 and 35 mD, while the Timur form gives 321, 115 and 59 mD for the same inputs. At a Swirr of 0.25, permeability is 4.1, 19.9, 61.2 and 146 mD at porosities of 0.10, 0.15, 0.20 and 0.25. The only reliable use of these equations is as a functional form to be calibrated to core: the constants below are starting values.

Parameter guidance

Because the Swirr dependence is mild, the porosity term does most of the work and the model behaves like a porosity-permeability transform with a weak Swirr correction. As with the others, fit \(P\) to core and leave the exponents alone unless the data support changing them. Use effective porosity and an effective-basis Swirr from a source that does not use permeability; see the Permeability step page. Where there is plenty of core, a porosity-permeability transform is simpler and equally good.

Worked example

Porosity 0.20 at three values of Swirr:

phie = 0.20
for swirr in (0.15, 0.25, 0.35):
    k = 1e5 * phie ** 3.9 * (1 - swirr) ** 3.9
    print(f"Swirr {swirr:.2f}: k = {k:.1f} mD")

Output

Swirr 0.15: k = 99.7 mD
Swirr 0.25: k = 61.2 mD
Swirr 0.35: k = 35.0 mD

Assumptions and limitations

  • Permeability depends on effective porosity and on the movable fraction of the pore space.
  • The constants fit the rock type being evaluated. I do not know the data set from which the values above come.
  • Swirr is the irreducible value, from a method that does not use permeability.
  • The relation is a clastic one.

QC checks

  • Plot against core permeability on a log-log 1:1 plot; scatter of a factor of 2 to 3 is normal.
  • Compare with Timur and Coates: if the Heslop result tracks porosity alone, Swirr is not contributing.
  • Permeability rises with porosity and falls as Swirr rises.
  • Check that porosity is effective, not total.

Going Deeper

The model is of the family that treats permeability as the product of a porosity term and a movable-fluid term. Its Swirr dependence is much weaker than that of the Timur and Tixier forms, which makes it more robust to Swirr errors and less able to separate rocks of the same porosity. I have not been able to confirm the original source or the published constants of the Heslop relation; the page is kept so that the form can be compared and calibrated, and it should be replaced with a sourced description or removed if no source can be found.

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.