fracture.percolation

Syntax

fperc = fracture.percolation(<vlower><,vupper><,ioption><,dfn>)

Get the fracture percolation. The fracture percolation is defined in 2D and 3D, as measured in the specified region. In 2D, \(p\) is the sum of the squared fracture lengths per unit volume. In 3D, \(p\) is the sum of \({\pi}^2(area/\pi)^{1.5}\) per unit volume, where \(area\) is the fracture area. If dfn is not given the calculation is undertaken over all fractures of all DFNs.

An option may be given that determines how the percolation deals with fractures that intersect the edge of the specified region. By default (ioption = 0), any fracture that intersects the edge of the box is not considered in the calculation. If ioption = 1, the area of fracture inside the box is used in the calculation above. If ioption = 2, a scaled radius is used to calculate the area, where the scaled radius equals the original fracture radius times the ratio of fracture area inside the box to total fracture area.

In 2D, the section of the fracture inside of the box is always considered in the calculation, therefore the option input is ignored.

Returns:

fperc - percolation value

Arguments:

vlower - optional lower bound of the calculation region

vupper - optional upper bound of the calculation region

ioption - optional integer indicating method of considering fractures that intersect the extents.

dfn - optional DFN pointer. If a dfn input is required, then an option must be specified.

Usage Example

The following example illustrates how fracture.percolation can be used to get the percolation parameter of various DFNs, or of all fractures.

model new
model random 10000 
model domain extent -10 10

;Generate fractures using the default template
fracture generate dfn 'p1' percolation 0.1
fracture generate dfn 'p2' percolation 0.2
fracture generate dfn 'p3' percolation 0.3
fracture generate dfn 'p4' percolation 0.4

; fish access to densities
fish define access_percolation
   local dfn1 = dfn.find('p1')
   local dfn2 = dfn.find('p2')
   local dfn3 = dfn.find('p3')
   local dfn4 = dfn.find('p4')
    lower = vector(-10,-10,-10)
    upper = vector(10,10,10)
   io.out('percolation parameter of dfn p1   = ' + ...
           string(fracture.percolation(lower,upper,0,dfn1)))
   io.out('percolation parameter of dfn p2   = ' + ... 
           string(fracture.percolation(lower,upper,0,dfn2)))
   io.out('percolation parameter of dfn p3   = ' + ... 
           string(fracture.percolation(lower,upper,0,dfn3)))
   io.out('percolation parameter of dfn p4   = ' + ... 
           string(fracture.percolation(lower,upper,0,dfn4)))
   io.out('percolation parameter of all dfns = ' + ... 
           string(fracture.percolation(lower,upper)))
end
[access_percolation]

program return