# HydroGeoSphere/3-D Random Fracture Generator for Block Grids

The following command can be used to generate a 3-D random fracture network in an orthogonal domain (i.e. composed of 8-node block elements). Fractures with random locations, lengths and apertures can be generated.

## Rfgen driverEdit

**rfgfile**Name of the file which contains the random fracture grid and fracture generation information.

The structure of the file is discussed below.

**• • •**

## Grid informationEdit

**x1, x2***x*-range of the domain.**y1, y2***y*-range of the domain.**z1, z2***z*-range of the domain.**botfracbnd(1)**Elevation of lowest extent of a fracture. No fractures will be generated below this elevation.**nwell**Number of wells. Read the following**nwell**times:

- (a)
**xwell, ywell***xy*-coordinates of the well.*x*− and*y*−gridlines will be generated at this point.

- (a)

**xsource1, xsource2***x*-coordinates of the source.*x*−gridlines will be generated at these points.**ysource1, ysource2***y*-coordinates of the source. As above but for the*y*-direction.**zsource1, zsource2***z*-coordinates of the source. As above but for the*z*-direction.**mingrspacx,mingrspacy,mingrspacz**Minimum grid spacing in the*x*−,*y*− and*z*−directions respectively. For example, a**mingrspacx**value of 1.0 would ensure that no gridlines are more than 1.0 length units apart along the*x*-axis.**fixed_grid**This is a logical variable which controls whether grid lines are generated randomly or according to fixed spacing input parameters. If .TRUE read the following:

- (a)
**fixed_spac**This is a logical variable which controls whether uniform or variable grid line spacing is applied. If .TRUE read the following:- i.
**fixgrspacx,fixgrspacy,fixgrspacz**Fixed spacing values in the*x*−,*y*− and*z*−directions respectively.

- i.
- If .FALSE read the following:
- i.
**nx**Number of nodes in the*x*-direction - ii.
**xi(i),i=1,nx***x*-coordinates of the**nx**nodes. - iii.
**ny**Number of nodes in the*y*-direction - iv.
**yi(i),i=1,ny***y*-coordinates of the**ny**nodes. - v.
**nz**Number of nodes in the*z*-direction - vi.
**zi(i),i=1,nz***z*-coordinates of the**nz**nodes.

- i.

- (a)

This instruction should be placed at the start of the file and should not appear more than once.

**• • •**

## Fracture informationEdit

**seed**Seed for the random number generator. If this number is changed, a new random number sequence is produced, which in turn causes new realizations of fracture location, length and aperture to be generated.**xmeanfreq**Mean fracture frequency in*x*-direction.**ymeanfreq**As above but in the*y*-direction.**zmeanfreq**As above but in the*z*-direction.**zeta**Aperture decay constant. Aperture size can be made to decrease with increasing depth. Set to zero for no decay.**lnsbetween**Minimum number of grid lines between fractures.**cap**Cap on the number of times to attempt generating a fracture.

This instruction should follow the Grid information instruction and should not appear more than once.

**• • •**

## Fracture location distribution x-axisEdit

**type**An integer value indicating the type of function to use to generate the variable fracture locations in the*x*−direction. Acceptable values are:- Uniform.
- Normal.
- Exponential.

**var1, var2**Distribution parameters which control the function.

For a uniform distribution **var1** is the minimum and **var2** is the maximum.

For a normal distribution **var1** is the mean and **var2** is the variance.

For an exponential distribution **var1** is the mean and **var2** is the standard deviation.

The following instructions use the same input data structure except they are applied to the *y* and *z* directions:

- Fracture location distribution y-axis
- Fracture location distribution z-axis

The following instructions use the same input data structure to generate fracture lengths in the 3 principal directions:

- Fracture length distribution x-axis
- Fracture length distribution y-axis
- Fracture length distribution z-axis

The following instructions use the same input data structure to generate fracture apertures in the 3 principal orientations:

- Xy fracture aperture distribution
- Xz fracture aperture distribution
- Yz fracture aperture distribution
**• • •**

The remaining commands are optional but should not be used more than once:

## Vertical fracture from topEdit

**vertical_frac_top**This is a logical variable which, if .TRUE, ensures that all vertical fractures start from the top of the domain.

**• • •**

## Zone fractures howEdit

**zone_rfgen_fracs**Controls how fracture zone numbers are assigned. Acceptable values are:- Assign zone numbers by fracture.
- Assign zone numbers by orientation.

If zoned by orientation, horizontal fracture are assigned to zone 1, vertical fractures parallel to the *xy*-axis are in zone 2 and vertical fractures parallel to the *xz*-axis are in zone 3.

**• • •**

## EndEdit

This instruction signals the end of the 3-D random fracture generator input, and control is then passed back to the preprocessor.

**• • •**

Once the 3-D grid is generated, it is possible to change the random fracture apertures to zoned fracture apertures by following the procedures outlined in Section 5.8.1.6.