fracture template create
command
Syntax
- fracture template create s keyword ...
Primary keywords:
dip-direction-limits dip-limits orientation position size size-limits
Create a fracture generation template. The name of the template is s. A fracture generation template is a set of statistical parameters used to generate fractures with the
fracture generate
command. These parameters are the size distribution, the position distribution and the orientation distribution. Once fractures have been generated, an association may exist between the fracture generation template and the generated fractures. Fracture generation templates can also be output to a file to be imported and reused (see thefracture export
andfracture import
commands).By default, a fracture generation template has the following properties: uniform fracture positions, uniform orientations (dip between 0 and 180 degrees in 2D; dip between 0 and 90 degrees, dip direction between 0 and 360 degrees in 3D) and sizes obeying a negative power-law distribution with exponent 4 and with minimum (maximum) size 1.0 (∞), respectively.
A default fracture generation template is always present and its state is saved and restored with the model state. This default fracture generation template is used as the basis to generation fractures (i.e., with the
fracture generate
command) when no template is specified. See thefracture template modify-default
command for details on how to modify the default fracture generation template.- dip-direction-limits fmin fmax (3D only)
Specify that the fracture dip directions must fall in the range [fmin, fmax] degrees. By default, fmin = 0 and fmax = 360.
- dip-limits fmin fmax
Specify that the fracture dips must fall in the range [fmin, fmax] degrees. By default, {fmin = 0 and fmax = 180, in 2D; fmin = 0 and fmax =90, in 3D}.
- orientation keyword
Define the generation rule for fracture orientations.
- bootstrapped s
The dip {and dip direction, in 3D} are bootstrapped from the file s. This must obey the bootstrapped distribution file format given in DFN-Related File Formats.
- dips s (3D only)
The dip and dip direction are bootstrapped from the DIPS file s. This file must obeys the DIPS file format given in DFN-Related File Formats.
- fish s a_{1}a_{2}...
The fish keyword is used to get values from a user-defined FISH function. The function s is followed by the function arguments (any number). The function must return a {float, in 2D; 2 dimensional vector, in 3D}.
- fisher fdip fdipdir fk (3D only)
The dip and dip direction are drawn from a Fisher distribution. One specifies the dip (fdip), the dip direction (fdipdir), and \(\kappa\) (fk), in that order.
- gauss f_{1} f_{2} ...
The dip {and dip direction, in 3D} are drawn from Gaussian distributions. In 2D, two additional parameters are required, specifying the mean and standard deviation of the dip distribution. In 3D, four additional parameters are required: mean and standard deviation for the dip distribution, followed by mean and standard deviation for the dip-direction distribution.
- uniform
The dip {and dip direction, in 3D} are drawn from a uniform distribution.
Note
In 2D, dip is the clockwise angle measured from the positive \(x\)-axis in degrees. In 3D, dip is the angle from the dip direction projected on the \(xy\)-plane to the fracture surface measured in the negative \(z\)-direction. Dip direction in 3D is measured in a clockwise fashion from the positive \(y\)-axis.
- position keyword
Define the generation rule for fracture position.
- bootstrapped s
The position is bootstrapped from the file s. This must obey the bootstrapped file format given in DFN-Related File Formats for the required dimension.
- fish s a_{1}a_{2}...
The fish keyword is used to get values from a user-defined FISH function. The function s is followed by the function arguments (any number). The function must return a vector.
- gauss fpx fsx fpy fsy fpz fsz
The position is drawn from a Gaussian distribution. Each mean direction is followed by the standard deviation in that direction. In 2D only four values are given.
- uniform
The position is drawn from a uniform distribution.
- size keyword
Define the distribution of fracture sizes. The fracture size is defined as the {fracture length, in 2D; disk diameter, in 3D}.
- bootstrapped s
The size is bootstrapped from the file s. This must obey the 1D bootstrapped file format given in DFN-Related File Formats.
- fish s a_{1}a_{2}...
The fish keyword is used to get values from a user-defined FISH function. The function s is followed by the function arguments (any number). The function must return a float.
- uniform
The size is drawn from a uniform distribution.
Usage Example
The following example illustrates how the fracture template create
command can be
used to build a simple template and generate one realization. Here, the template defines a power-law distribution for fracture sizes with an exponent of 3.5
uniform positions and a fisher distribution for orientations.
model new
model random 10000
model domain extent -5 5 -5 5 -5 5
;Create a fracture template
fracture template create 'example' orientation fisher 60 250 100 ...
position uniform size power-law 3.5 size-limits 0.5 10
;Generate fractures using the template
fracture generate template 'example' dfn 'realization_1' fracture-count 300
;Create more fractures using this template
fracture generate template 'example' dfn 'realization_2' mass-density 1
program return
The following example illustrates how the fracture template create
command can be
used to build a tuned template and generate one realization. Here, fracture orientations and sizes
are drawn from user-defined distributions.
The orientation distribution is defined by the fish function d2uniform and the size
distribution by the fish function lognormallaw.
model new
model random 10000
model domain extent -5 5 -5 5 -5 5
;Define a log-normal distribution for fracture sizes
fish define log_normallaw(mean,sigma)
w=2.0
v1=0.0
v2=0.0
z1=1
loop while w>=1
v1 = 2.0*math.random.uniform-1.0
v2 = 2.0*math.random.uniform-1.0
w = v1*v1+v2*v2
endloop
w=math.sqrt((-2.0*math.log(w))/w)
z1=v1*w;
val=mean+z1*sigma
log_normallaw = math.exp(val)
end
;Define the 2D normal distribution for dip and dip direction
fish define d2uniform(maxdip,maxdipd)
local dip = math.random.uniform*maxdip
local dipd = math.random.uniform*maxdipd
d2uniform=vector(dip,dipd)
end
;Create a fracture template using these FISH functions
fracture template create 'example' orientation fish d2uniform(90,360) ...
size fish log_normallaw(0,2)
;Generate fractures using this template
fracture generate template 'example' mass-density 0.5
program return
The same example in 2D:
model new
model domain extent -5 5 -5 5
; define the log-normal distribution for fracture sizes
fish define lognormallaw(mean,sigma)
w=2.0
v1=0.0
v2=0.0
z1=1
loop while w>=1
v1 = 2.0*math.random.uniform-1.0
v2 = 2.0*math.random.uniform-1.0
w = v1*v1+v2*v2
endloop
w=math.sqrt((-2.0*math.log(w))/w)
z1=v1*w;
val=mean+z1*sigma
lognormallaw = math.exp(val)
end
; define the 2D normal distribution for dip and dip direction
fish define d2uniform(maxdip)
local dip = math.random.uniform*maxdip
d2uniform=dip
end
; define the template
fracture template create 'example' orientation fish d2uniform(90) ...
size fish lognormallaw(0,2)
; generate one realization
fracture generate template 'example' mass-density 2
program return
See Also: fracture export
| fracture generate
| fracture import
Was this helpful? ... | PFC © 2021, Itasca | Updated: Oct 01, 2021 |