# 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 driver

* rfgfile Name of the file which contains the random fracture grid and fracture generation information.
The structure of the file is discussed below.

## Grid information

* 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.
* 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.
       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.
This instruction should be placed at the start of the file and should not appear more than once.

## Fracture information

* 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-axis

* 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 top

* 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 how

* 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.

## End

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.