Skip to content

REV Porosity

A representative elementary volume (REV) is the smallest piece of a material whose properties no longer depend on exactly where it was cut.1 Below it, every region gives a different answer. Above it, they all agree. This analysis measures the porosity of a thousand randomly placed cubes of different sizes, so you can see whether the image, and the simulations you run on it, are large enough to be representative.

  • Solves porosity of 1000 random cubic sub-volumes
  • Backend PoreSpy, on CPU
  • Reports porosity against region volume, and the porosity of the largest regions
  • How to run it REV Porosity in the User guide

The problem being solved

For a cubic region of side \(s\) voxels cut from the image, the region's porosity is \(\varphi = N_p/s^3\), where \(N_p\) is the number of pore voxels in the cube. The analysis returns \(\varphi\) against the cube's volume for many cubes of different sizes and positions; the REV for porosity is the size above which \(\varphi\) stops depending on where the cube was cut.

The method

PoreSpy's REV porosity2 draws 1000 cubic regions at random. Each one gets:

  • a side length \(s\) drawn uniformly from the integers between 10 and \(\min(100, N_\text{min})\) voxels, where \(N_\text{min}\) is the image's shortest side;
  • a position drawn uniformly from the positions where a cube of that side fits.

For each cube, PoreStore records its volume \(s^3\) and its porosity \(\varphi\). The headline, the porosity of the largest regions, is the mean \(\varphi\) of the largest 10% of cubes. The number of cubes and the size range are fixed.

Volumes are computed in voxels and shown in µm³ once the image has a voxel size \(h\), multiplied by \(h^3\). See Units and voxel size.

A 120³ synthetic sample, porosity 0.55, run through PoreStore's own analysis code: the classic REV funnel. Small cubes scatter widely, and the scatter narrows towards the whole-image porosity as cubes grow. The size at which the band becomes acceptably narrow is the REV for porosity.

Reading the result

  • Find where the funnel closes. Choose a tolerance, such as ±0.01 in porosity. The REV is the smallest size whose scatter stays inside it.
  • If it never closes, the whole image is below the REV for porosity. Results from it describe that sample, not the material.
  • Transport needs more. The REV for permeability or tortuosity is usually larger than for porosity, because flow depends on connected paths, not just pore volume. Treat the porosity REV as a lower bound when you size a flow simulation.
  • Cube sizes stop at 100 voxels, so on large images the funnel shows only the small-scale end.

Not reproducible run to run

Cube positions and sizes are random and not seeded, so two runs on the same image give different scatter with the same statistics. The headline is stable to within its own scatter.

References


  1. J. Bear, Dynamics of Fluids in Porous Media, American Elsevier (1972); reprinted by Dover (1988). ↩

  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 ↩