Skip to content

Fractured permeability

The hydraulic half of a fractured-rock model. A fracture is not an obstacle to flow but the preferential path through an almost impermeable matrix, which is the opposite of what an ordinary crack does in transport.

The flowing crack

Flatten an oblate spheroid while its conductivity diverges, keeping the fracture conductivity finite:

With  , the contribution per unit   in an isotropic matrix is purely in-plane, being the unit normal to the fracture plane:

julia
using MeanFieldHomogenization, TensND

cr = ConductiveCrack(1.0; conductivity = 2.0e-2)
K  = conductivity_contribution(cr, TensISO{3}(1.0e-3))
(in_plane = K[1, 1], normal = K[3, 3])      # the normal component vanishes
(in_plane = 0.0011294353674315312, normal = 0.0)

Mechanically a flowing crack is an open crack, so the whole elastic branch is inherited unchanged — one object serves both physics.

Anisotropic reference media

No closed form exists there. Rather than derive one, the same   limit is taken on the package's own spheroid contribution and Richardson extrapolated — two Hill solves, no new theory to get wrong. It reproduces the closed form above to seven digits.

The self-consistent estimate

Each family is read in the effective medium, which is what lets fractures see one another and produces a percolation threshold.

julia
fams = (ConductiveCrack(1.0; conductivity = 1.0e-3, euler_angles = (π/2, 0.0)),
        ConductiveCrack(1.0; conductivity = 1.0e-3, euler_angles = (π/2, π/2)))

K = fracture_permeability(1.0e-6, fams, (0.05, 0.05))
(K₁₁ = K[1, 1], K₃₃ = K[3, 3])
(K₁₁ = 1.8163231709478395e-6, K₃₃ = 1.4150963506745335e-6)

Two vertical families with normals and leave lying in both fracture planes, so the vertical direction conducts most — visible in the numbers above.

The matrix must not be exactly impermeable

fracture_permeability is written out rather than routed through SelfConsistent on :K, whose crack branch is built for insulating cracks: its volumetric accumulator    drops the   product a flowing crack is, so with   it collapses to   for any input. Use a small but non-zero matrix conductivity.

A dense, strongly conducting network can also pass the percolation threshold, where the estimate diverges; the solver warns rather than returning a converged-looking number.