CamPetro

Free Water Level and Column Height

On this page

Summary

The Free water level is the datum of every saturation-height model: it is where capillary pressure is zero, and Height above free water level is measured from it. It is not the same as the Oil-water contact, which lies above it by the height that the Threshold (entry) pressure supports. Both are picked on one depth reference, usually True vertical depth subsea, and heights are only meaningful if the log depths use the same one.

Inputs and outputs

Item Units
Input True vertical depth ft
Input Depth reference elevation ft
Input Free water level ft
Input Fluid density contrast g/cm³
Input Threshold (entry) pressure psi
Output True vertical depth subsea ft
Output Height above free water level ft
Output Reservoir capillary pressure psi
Output Height of the entry pressure ft
Output Oil-water contact ft

Equations

Depth reference. True vertical depth below the depth reference is converted to subsea depth with the elevation of that reference above sea level, \(\zKB\) (kelly bushing or rotary table), positive downward:

\[ \zSS = \zdepth - \zKB \]

Measured depth must first be converted to true vertical depth with the deviation survey. In a vertical well the two differ by the depth reference elevation only.

Height above the free water level. All depths on the same reference, and zero at and below the free water level:

\[ \hFWL = \max\left(0,\ \zFWL - \zSS\right) \]

Buoyancy pressure. At the height \(h\) the hydrocarbon column has a capillary pressure with respect to the water of

\[ \PcRes = 0.433\,\dRhoHC\,\hFWL \]

Free water level versus contact. The hydrocarbon must exceed the entry pressure before it enters the largest throats, so the first hydrocarbon saturation in a well appears at the height

\[ \hEntry = \frac{\PcEntry}{0.433\,\dRhoHC} \qquad \zOWC = \zFWL - \hEntry \]

and the oil-water contact seen on logs is above the free water level by \(\hEntry\). The rock between the two is at 100% water saturation but is above the free water level. Tighter rock means higher entry pressure and a bigger gap.

Free water level from pressures. Where the hydrocarbon and water pressure gradients are measured, the free water level is where the two pressure lines meet. If the pressures at a reference depth \(z_0\) are \(p_o\) (oil line) and \(p_w\) (water line extrapolated to the same depth), with gradients \(g_o\) and \(g_w\) in psi/ft, then

\[ \zFWL = z_0 + \frac{p_o - p_w}{g_w - g_o} \]

with depth positive downward. The result is on the same reference as \(z_0\).

Symbol Variable Units Typical range
\(z\) True vertical depth ft 0 to 30000
\(z_{KB}\) Depth reference elevation ft 0 to 300
\(z_{SS}\) True vertical depth subsea ft
\(z_{FWL}\) Free water level ft
\(h\) Height above free water level ft 0 to 1000
\(\Delta\rho\) Fluid density contrast g/cm³ 0.1 to 0.9
\(P_{c,res}\) Reservoir capillary pressure psi 0 to 500
\(P_{c,e}\) Threshold (entry) pressure psi 0.1 to 100
\(h_e\) Height of the entry pressure ft 0 to 200
\(z_{OWC}\) Oil-water contact ft

Single-value calculator

Behavior

Capillary pressure is zero at and below the free water level and builds up linearly with height above it: the plot shows depth increasing downward with the free water level at 8550 ft TVD (8500 ft TVDSS with a reference elevation of 50 ft). A larger density contrast, as in a gas column, gives a steeper increase. At 100 ft above the free water level the pressure is 4.33, 10.8 and 21.7 psi for contrasts of 0.10, 0.25 and 0.50 g/cm³. With the defaults the point at 8450 ft TVD is 8400 ft TVDSS, 100 ft above the free water level, and the entry pressure of 2 psi gives an entry height of 18.5 ft, so the oil-water contact is at 8481.5 ft TVDSS. For the same 2 psi the gap is 46.2 ft at a contrast of 0.10 and 9.2 ft at 0.50.

Parameter guidance

Free water level. Pick it from, in order of preference, a pressure intersection from formation tester data, a known oil-water contact corrected for the entry height, and the lowest known hydrocarbon or the highest known water as bounds. The free water level is below the lowest known hydrocarbon by at least the entry height of the rock there, and it is below the contact defined by the first 100% water by the entry height. A field has one free water level, or several if the compartments are not in pressure communication. A hydrodynamic aquifer can tilt it.

Depth reference. Choose one: true vertical depth, subsea depth or measured depth. For a deviated well, use true vertical depth or subsea depth, because a height is a vertical distance. Subsea depth is best for a field with wells of different reference elevations. Measured depth is not suitable for a deviated well.

Density contrast. Use reservoir brine and hydrocarbon densities, as on the Capillary Pressure page. For a gas cap over an oil leg with its own contact, use a separate contrast and free water level for each fluid contact.

Entry pressure. The value of 2 psi in the calculator is illustrative. Take it from the lowest pressure at which mercury enters the rock, converted to reservoir conditions, or from the entry height implied by the J-Sw fit on the Permeability, RQI and FZI page.

Maximum column height. For the Swirr methods that use a column height (Foil, Lucia), the maximum height is the height of the top of the trap or compartment above the free water level, or the spill point if the trap is filled to spill.

Worked example

Find the free water level from two measured gradients, then convert a depth to height and entry height. The oil line reads 3855.0 psi at 8200 ft TVDSS, with a gradient of 0.35 psi/ft, and the water line reads 3983.3 psi at 8550 ft TVDSS with a gradient of 0.465 psi/ft:

g_o, g_w = 0.35, 0.465
z_o, p_o = 8200.0, 3855.0
z_w, p_w = 8550.0, 3983.3
p_w_at_zo = p_w - g_w * (z_w - z_o)
fwl = z_o + (p_o - p_w_at_zo) / (g_w - g_o)
print(f'water line extrapolated to {z_o:.0f} ft: {p_w_at_zo:.1f} psi')
print(f'free water level = {z_o:.0f} + ({p_o:.1f} - {p_w_at_zo:.1f}) / ({g_w} - {g_o}) = {fwl:.0f} ft TVDSS')
kb, tvd = 50.0, 8450.0
tvdss = tvd - kb
h = max(0.0, fwl - tvdss)
drho, pe = 0.25, 2.0
print(f'depth {tvd:.0f} ft TVD = {tvdss:.0f} ft TVDSS, height above FWL = {h:.0f} ft, Pc = {0.433 * drho * h:.2f} psi')
he = pe / (0.433 * drho)
print(f'entry pressure {pe:g} psi -> entry height {he:.1f} ft, contact at {fwl - he:.1f} ft TVDSS')
print(f'a gas column (contrast 0.7) with the same entry pressure: {pe / (0.433 * 0.7):.1f} ft')

Output

water line extrapolated to 8200 ft: 3820.6 psi
free water level = 8200 + (3855.0 - 3820.6) / (0.465 - 0.35) = 8500 ft TVDSS
depth 8450 ft TVD = 8400 ft TVDSS, height above FWL = 100 ft, Pc = 10.78 psi
entry pressure 2 psi -> entry height 18.5 ft, contact at 8481.1 ft TVDSS
a gas column (contrast 0.7) with the same entry pressure: 6.6 ft

Assumptions and limitations

  • The hydrocarbon and water are in capillary and pressure equilibrium with a flat free water level. Hydrodynamic flow in the aquifer tilts it, and a compartmentalised reservoir has a different level in each compartment.
  • The pressure gradients are straight lines in the interval, so density does not change with depth. For a thick gas column, the gradient changes with depth.
  • One entry pressure and one fluid contrast apply to the interval. Rocks of different quality have different entry pressure and so a different oil-water contact for the same free water level.
  • The depth reference and the units are the same for the logs, the free water level and the pressure data. A wrong reference shifts the height by the reference elevation, which is hundreds of feet in some wells.

QC checks

  • Heights are non-negative and increase upward. A height above the top of the trap points to a wrong reference or sign.
  • The picked free water level lies below the oil-water contact seen on the log and above any depth with a free-water gradient. The gap equals the entry height for the rock at the contact.
  • Check the pressure intersection with two or more wells: the same free water level in wells in communication, on the same depth reference.
  • Saturation from the height model should reach 1 at the contact seen on the logs. If it does not, the free water level or the entry pressure is off, and the first thing to test is the depth reference.
  • Check the depth reference by comparing the depth of a well-defined marker in all wells on the TVDSS reference.

Going Deeper

The free water level is a modelling surface and is not directly visible: the oil-water contact observed in a well is the free water level plus the entry height of the rock at that depth. In a high permeability reservoir the gap is a few feet and the two are used interchangeably; in tight rock it can be tens or hundreds of feet. That is the reason saturation-height models are built on the free water level and not on the contact. Pressure data from a formation tester are the most direct evidence, because they locate the intersection of the oil and water gradients independent of the rock. Both the intersection and its uncertainty depend on the gradient accuracy, so the pressure gauge quality and the fluid density from samples matter. Where the water leg is not penetrated, the contact is only bracketed by lowest known hydrocarbon and highest known water, and the free water level has a range that the saturation-height model carries into the volumes. A final point is that a hydrocarbon column of finite height need not be at capillary equilibrium: filling history, seal capacity and leakage all control it.

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.