Dual Water
On this page
Summary
The dual-water model splits the water in a shaly sand into free formation water and clay-bound water, each with its own resistivity (Formation water resistivity and Bound-water resistivity). It works on total porosity and returns the Total water saturation, from which the Bound-water saturation is subtracted to give the Effective water saturation. Use it when the clay-bound water is a significant part of the pore volume and its resistivity can be estimated.
Inputs and outputs
| Item | Units | |
|---|---|---|
| Input | True formation resistivity | ohm·m |
| Input | Formation water resistivity | ohm·m |
| Input | Bound-water resistivity | ohm·m |
| Input | Total porosity | v/v |
| Input | Clay volume | v/v |
| Input | Shale total porosity | v/v |
| Input | Tortuosity factor | dimensionless |
| Input | Cementation exponent | dimensionless |
| Input | Saturation exponent | dimensionless |
| Output | Total water saturation | v/v |
| Output | Bound-water saturation | v/v |
| Output | Effective water saturation | v/v |
Equations
The bound water is the clay volume times the total porosity of the clay, as a fraction of the total pore volume:
In the full model, the free water and bound water conduct in parallel, and the bound-water share of the water is \(\SwB/\SwT\):
For \(n = 2\) this is a quadratic in \(\SwT\), but for general \(n\) it needs iteration. The calculator uses a simplified form that is explicit: the water is treated as one mixture in which the bound water is weighted by its share of the total pore volume (\(\SwB\), which is the value of \(\SwB/\SwT\) at \(\SwT = 1\)):
The effective saturation removes the bound water from both volumes:
All saturations are limited to the interval 0 to 1. With \(\Vcl = 0\) the bound water is zero, \(R_{w,mix} = \Rw\), and the equation reduces to Archie on total porosity.
| Symbol | Variable | Units | Typical range |
|---|---|---|---|
| \(R_t\) | True formation resistivity | ohm·m | 0.2 to 2000 |
| \(R_w\) | Formation water resistivity | ohm·m | 0.02 to 2 |
| \(R_{wb}\) | Bound-water resistivity | ohm·m | 0.02 to 0.1 |
| \(\phi_t\) | Total porosity | v/v | 0 to 0.40 |
| \(V_{cl}\) | Clay volume | v/v | 0 to 1 |
| \(\phi_{sh}\) | Shale total porosity | v/v | 0.05 to 0.35 |
| \(a\) | Tortuosity factor | dimensionless | 0.6 to 1.0 |
| \(m\) | Cementation exponent | dimensionless | 1.6 to 2.5 |
| \(n\) | Saturation exponent | dimensionless | 1.6 to 2.5 |
| \(S_{w,b}\) | Bound-water saturation | v/v | 0 to 0.5 |
| \(S_{w,t}\) | Total water saturation | v/v | 0 to 1 |
| \(S_{w,e}\) | Effective water saturation | v/v | 0 to 1 |
Single-value calculator
Behavior
The total saturation barely changes with clay volume, but the effective saturation drops fast. With total porosity held at 0.225, a shale porosity of 0.15, \(R_w\) = 0.05 ohm·m and a bound-water resistivity of 0.04 ohm·m, at \(R_t\) = 10 ohm·m the total saturation is 0.314, 0.309, 0.304 and 0.300 at clay volumes of 0, 0.2, 0.4 and 0.6, because the bound water conducts about as well as the free water. The effective saturation is 0.314, 0.203, 0.051 and 0.000 at the same clay volumes, because a growing share of the water is bound and unavailable to hydrocarbons. At a clay volume of 0.6 the bound-water saturation is 0.40, which is above the total saturation of 0.300: the clay is claiming more of the pore space than the log says holds any water at all. That is an inconsistency between the clay volume, shale porosity and resistivity, not a clean zone, and the effective saturation is cut to 0.
Parameter guidance
Rwb, the bound-water resistivity, is the least certain input. It is usually lower than Rw in fresh and moderately saline formation waters and close to it in brines, and is estimated from a shale resistivity and its total porosity (an Archie relation on the shale: \(R_{wb} \approx R_{cl}\,\phi_{sh}^{\,m}\)) or from the lowest-resistivity shale intervals on a crossplot. Shale total porosity Shale total porosity is the porosity of a 100% clay interval, from the density-neutron or from core: typically 0.10 to 0.30. Clay volume comes from the Clay Volume step and total porosity from Porosity (see Total vs Effective Porosity). Note that the model needs total porosity, not effective. Rw, a, m, n: see Rw Determination and Cementation and Saturation Exponents. Conversion between total and effective saturation: Total vs Effective Sw.
Worked example
A shaly sand with \(R_t\) = 10 ohm·m, \(R_w\) = 0.05 ohm·m, \(R_{wb}\) = 0.04 ohm·m, 30% clay, a shale porosity of 0.15 and an effective porosity of 0.18, which makes the total porosity 0.18 + 0.30 x 0.15 = 0.225. The block compares the simplified form with the full model (solved for \(n = 2\)):
import math
def dual_water(rt, rw, rwb, phit, vcl, phish, a=1.0, m=2.0, n=2.0):
swb = min(1.0, max(0.0, vcl * phish / phit))
rwmix = rw * rwb / (swb * rw + (1.0 - swb) * rwb)
swt = min(1.0, (a * rwmix / (phit ** m * rt)) ** (1.0 / n))
swe = 0.0 if swb >= 1.0 else min(1.0, max(0.0, (swt - swb) / (1.0 - swb)))
return swt, swb, swe
def dual_water_full_n2(rt, rw, rwb, phit, vcl, phish, a=1.0, m=2.0):
# quadratic: A cw S^2 + A Swb (cwb - cw) S - ct = 0, with A = phit^m / a
swb = min(1.0, max(0.0, vcl * phish / phit))
A = phit ** m / a
cw, cwb, ct = 1.0 / rw, 1.0 / rwb, 1.0 / rt
B = A * swb * (cwb - cw)
return min(1.0, (-B + math.sqrt(B * B + 4.0 * A * cw * ct)) / (2.0 * A * cw))
rt, rw, rwb, phie, vcl, phish = 10.0, 0.05, 0.04, 0.18, 0.30, 0.15
phit = phie + vcl * phish
swt, swb, swe = dual_water(rt, rw, rwb, phit, vcl, phish)
print(f"phit = {phit:.3f} Swb = {vcl:g} x {phish:g} / {phit:.3f} = {swb:.3f}")
print(f"simplified: Swt = {swt:.3f} Swe = {swe:.3f}")
print(f"full (n=2): Swt = {dual_water_full_n2(rt, rw, rwb, phit, vcl, phish):.3f}")
print(f"BVW total = {phit * swt:.4f} bound = {phit * swb:.4f} free = {phit * swt - phit * swb:.4f} phie x Swe = {phie * swe:.4f}")
# clean-sand check: with Vcl = 0 the result is Archie on total porosity
worst = max(abs(dual_water(r, rw, rwb, p, 0.0, phish)[0] - min(1.0, (rw / (p ** 2 * r)) ** 0.5))
for r in (2.0, 5.0, 20.0, 100.0) for p in (0.08, 0.15, 0.25))
print(f"clean-sand check: largest |dual water - Archie| = {worst:.2e}")
Output
phit = 0.225 Swb = 0.3 x 0.15 / 0.225 = 0.200
simplified: Swt = 0.307 Swe = 0.133
full (n=2): Swt = 0.290
BVW total = 0.0690 bound = 0.0450 free = 0.0240 phie x Swe = 0.0240
clean-sand check: largest |dual water - Archie| = 0.00e+00
Assumptions and limitations
- The water in the rock is of two kinds only, free water of resistivity Rw and clay-bound water of resistivity Rwb, and the bound water has a fixed volume per unit clay.
- The calculator uses a simplified mixture. The full model weights the bound water by \(S_{wb}/S_{wt}\) and the simplified form by \(S_{wb}\). With \(R_{wb}\) below \(R_w\), the simplified form gives a slightly higher total saturation (0.307 against 0.290 in the worked example). The difference is small when the bound water is small or Rwb is close to Rw.
- m and n are the clean-rock values and apply to the total porosity. The model assumes the clay does not change them.
- Total porosity is available and consistent with the clay volume and shale porosity. If porosity was computed with a different clay model, the bound-water volume is inconsistent.
- The effective saturation is meaningful only where it lies between 0 and 1 without clipping.
QC checks
- At Vcl = 0 the total saturation equals Archie on total porosity. The worked example runs this check.
- The total saturation is never below the bound-water saturation. A zone where it is has an inconsistent clay volume, shale porosity or resistivity.
- Effective saturation is at or below the total saturation, and the difference grows with clay volume.
- Bulk volume water (total) minus bound water equals effective porosity times effective saturation.
- Sw in the water leg is close to 1 on the total basis, and Swe in the same interval is close to 1.
Going Deeper
The dual-water model was developed in the late 1970s and 1980s by Clavier and co-workers as a physical alternative to the empirical shaly-sand equations. It treats the clay as a surface that holds a layer of water of its own resistivity, the Hill-Shirley-Klein double layer picture, and so does without a clay resistivity. The model is mathematically close to Waxman-Smits: the bound-water conductivity plays the part of the clay counterion conductivity, and the volume of bound water takes the place of the cation exchange capacity per unit pore volume. Its advantage is that the bound-water saturation connects directly to the porosity workflow: total porosity minus the clay-bound water gives effective porosity, and the two saturations carry the same hydrocarbon volume. Its weakness is that the bound-water resistivity and volume are not directly observed.
References
- Clavier, C., Coates, G. and Dumanoir, J., 1984. Theoretical and experimental bases for the dual-water model for interpretation of shaly sands. SPE Journal, 24(2), 153–168.
- Hill, H.J., Shirley, O.J. and Klein, G.E., 1979. Bound water in shaly sands: its relation to Qv and other formation properties. The Log Analyst, 20(3), 3–19.
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.