Skip to content

Mercury Porosimetry

Mercury intrusion porosimetry (MIP) is a laboratory test: mercury, which doesn't wet most solids, is forced into an evacuated sample at rising pressure, and the volume it fills is recorded. PoreStore simulates the same experiment on the image. The result is a capillary pressure curve you can compare directly with a lab MIP curve, and a pore-entry size distribution.

  • Solves quasi-static drainage and imbibition of mercury by the morphological method
  • Backend PoreSpy, on CPU
  • Reports intrusion and extrusion curves of capillary pressure against mercury saturation, \(P_{c50}\), and the invasion sequence and pressure maps
  • How to run it Mercury Porosimetry in the User guide

The problem being solved

A non-wetting fluid enters a pore throat of radius \(r\) only once the pressure exceeds the Washburn (Young–Laplace) entry pressure:

\[ P_c = \frac{-2\,\sigma \cos\theta}{r}, \]

with the standard mercury constants, fixed in PoreStore:

Constant Value
Surface tension \(\sigma\) 0.465 N/m
Contact angle \(\theta\) 140°
\(-2\sigma\cos\theta\) 0.7124 N/m

So a throat of radius 1 µm admits mercury at about 0.71 MPa.

The method

PoreStore uses the morphological (pore-morphology) method,1 through PoreSpy's drainage and imbibition simulations:2 the shape of the invading mercury at a given pressure is built from spheres, with no flow simulation.

  1. Capillary transform. Each pore voxel gets the pressure needed to place a sphere centred on it: \(P_c(\mathbf{x}) = 0.7124 / d(\mathbf{x})\), with \(d\) the distance to the nearest solid.
  2. Intrusion (drainage). Mercury enters from all six faces. At each of \(n_s\) pressures (the Pressure steps), log-spaced from the lowest to 1.05 × the highest \(P_c\) in the image:

    • voxels whose \(P_c \le P\) and that are connected to a face through such voxels become sphere centres;
    • a sphere of radius \(d(\mathbf{x})\) is drawn at each centre;
    • everything covered is invaded.

    The connectivity rule is what makes this an intrusion experiment: a large pore behind a narrow throat fills only when the throat's pressure is reached. The sample is treated as evacuated, so nothing resists the mercury and nothing is trapped ahead of it. 3. Extrusion (imbibition). Pressure is lowered back from the highest to 0.95 × the lowest \(P_c\). Mercury retreats from pores in order of size, and mercury cut off from every face stays trapped. That's why the extrusion curve ends above zero saturation, as it does in the lab. 4. Curves. At each pressure, the mercury saturation \(S_\text{nwp}\) is the invaded fraction of the pore volume. Only steps that invade new voxels produce points, so a curve can have fewer than \(n_s\) points. Each curve is completed at its end, to full saturation for intrusion and to the trapped saturation for extrusion, at an unbounded pressure, which the result's data table shows as a dash.

A 120³ synthetic sample, porosity 0.55, run through PoreStore's own simulation code. Left: the invasion sequence, the intrusion step at which each voxel fills, with mercury entering from every face. Large pores deep inside fill late because they sit behind smaller throats. Right: the intrusion and extrusion curves PoreStore returns for this sample. They're plotted against capillary pressure in N/m per voxel, which becomes Pa once a voxel size is set.

Boundary conditions and units

  • Every face is an inlet. Mercury surrounds the sample, as in the lab cell; there's no direction to choose.
  • Pressures scale with the voxel size. The pressures are computed for a voxel one unit long, in N/m per voxel: the 0.7124 N/m term divided by a radius in voxels. Once the image has a voxel size \(h\), they're shown in Pa, divided by \(h\) in metres. See Units and voxel size.

Reading the result

  • Entry radius. Invert the Washburn equation, \(r = 0.7124\ \text{N/m} / P_c\), to read the intrusion curve as a distribution of pore entry (throat) radii.
  • \(P_{c50}\). The intrusion pressure at which \(S_\text{nwp}\) reaches 0.5, a single number for comparing samples.
  • Breakthrough. The pressure where intrusion rises steeply marks the throat size that controls the connected pore network.
  • Hysteresis and trapping. The gap between intrusion and extrusion, and the saturation left at the end of extrusion, show how much pore volume is "ink-bottle" volume behind narrower throats.
  • Compared with the lab. A real MIP test also compresses the sample and measures pores below the image's resolution. The simulated curve sees only the pores in the image, so it stops at the smallest resolved throat.

The invasion maps

Two maps from the intrusion are saved with the result:

  • Invasion sequence: the intrusion step at which mercury first entered each voxel. Pore voxels mercury never reaches, because they're cut off from every face, hold −1, and solid holds 0.
  • Invasion pressure: the capillary pressure at which mercury entered each voxel, always in N/m per voxel whatever the image's voxel size; divide by the voxel edge in metres for Pa. Pore voxels never invaded have no value, and solid holds 0.

References


  1. M. Hilpert, C. T. Miller, "Pore-morphology-based simulation of drainage in totally wetting porous media," Advances in Water Resources 24 (2001) 243–255. doi:10.1016/S0309-1708(00)00056-7 ↩

  2. J. T. Gostick et al., "PoreSpy: A Python toolkit for quantitative analysis of porous media images," Journal of Open Source Software 4 (2019) 1296. doi:10.21105/joss.01296 ↩