Rockmass Integration

Description

Note

To view this project in 3DEC, use the menu command Help ► Examples…. Choose “3DEC/ ExampleApplications/ Rockmass” and select “rockmass_integration.prj” to load. The main data files used are shown at the end of this example. All data files are found in the project.

This example describes how to import and use structural data generated by Rockmass Technologies mapping instrumentation (see https://www.rockmasstech.com).

The example uses actual fracture data that was mapped underground at Kidd mine, Ontario Canada.

Structural Data

Structural data mapped using Rockmass Technologies instrumentation can be saved in csv format, also used by Leapfrog (https://www.seequent.com/products-solutions/leapfrog-software). The format consists of a header row, followed by the data. Many different data fields may be included or omitted - the importing by 3DEC will read whatever headers and data are in the file. For importing by 3DEC, the file must contain the following headers:

  • X
  • Y
  • Z
  • Dip
  • Dip Direction
  • Feature #
  • Window #

An example file showing the first few lines is shown in Figure 1.

../../../../_images/rockmass-file.png

Figure 1: Part of a file exported from Rockmass Technologies mapping software. The actual file is comma separated, but is shown in a spreadsheet for clarity.

3DEC Model - Deterministic

The actual measured features can be imported and DFN fractures can be created. In this case it is assumed that the user wishes to model the individual features as measured. To generate a random distribution of features based on the measured data see the next section.

The measured features can be imported by considering each measurement a single feature, or by averaging the location and orientation for all featgure with the same Feature # and Window #. Averaging is the fefault behavior.

An example command used to import the Kidd data is shown below (the entire data file is shown here).

fracture import from-file 'leapfrog-2022-12-19-1948.csv' format rockmass size 1

Note that a size must be given when importing this data. The size of the features cannot be determined from the data file, so a diameter must be given to enable generation of the disks (fractures) that form the DFN. The resulting fractures from imported with the command are plotted in Figure 2. The scanned tunnel surface for each window is also imported as a dxf and is plotted in the same figure.

../../../../_images/rockmass-deterministic1.png

Figure 2: Fractures imported and represented as disks with a diameter of 1 m. Fractures with the same Fracture # and Window # are averaged.

In this figure, the features with the same Window # and Feature # are averaged, so the 81 mapped orientations become 12 DFN fractures. The fractures can be colored by any of the data read from the file. In Figure 2 the fractures are colored by Window #.

To create a fracture for every measurement, without averaging, add average false to the end of the command above. This yields the fractures shown in Figure 3 (this time colored by Feature #). The stereonet for the 81 fractures is shown in Figure 4

../../../../_images/rockmass-deterministic2.png

Figure 3: Fractures imported and represented as disks with a diameter of 1 m. Fractures with the same Fracture # and Window # are not averaged. Fractures are colored by Feature #.

../../../../_images/rockmass-deterministic2b.png

Figure 4: Unaveraged imported features plotted on a stereonet.

The imported fractures can now be used to cut faults in a 3DEC model. A simple representation of the actual tunnel is created in 3DEC. A square cross-section is assumed for simplicity. The data file to create the model is shown here. For making the model, a fracture diameter of 5 m is assumed, rather than the 1 m diameter shown above. After the model is created, the imported fractures are used to cut the model using the command

block cut dfn name 'leapfrog-2022-12-19-1948'

Note that the imported fractures are automatically assigned to a single DFN called ‘leapfrog-2022-12-19-1948’, which is the name of the imported file without the .csv extension. A different DFN name can be set manually when the fractures are imported. The cut model (using the averaged fractures) is shown in Figure 5.

../../../../_images/rockmass-detmodel1.png

Figure 5: 3DEC model after cutting and zoning. The front half of the model is cut away, and the tunnel blocks are hidden to show the inside of the tunnel. The imported fractures are shown as green disks.

In 3DEC, a cut must slice all the way through a block - you cannot have partially cut blocks. Since the extent of the fractures is unknown, the model shown in Figure 5 may be useful as a worst-case scenario. However, if you want to limit the extent of the fractures, you can assign different properties to the subcontacts inside and outside of the circular fractures. This is done with the command below. This will set a high cohesion outside of the fractures and a zero cohesion within the disks. The same approach can be used for other properties.

block contact property cohesion 1e20
block contact property cohesion 0 range dfn-3dec 'leapfrog-2022-12-19-1948'
../../../../_images/rockmass-detmodel2.png

Figure 6: Fractures in the 3DEC model colored by cohesion.

3DEC Model - Stochastic

Another way to use the field data is to import the orientations and use these to inform a randomly generated DFN with a large number of fractures. Multiple different DFNs could be created with different randomness but using the same orientation distribution.

The imported Rockmass data can be used to “bootstrap” the randomly generated fracture orientations. Example commands using the Kidd data set are shown below.

fracture template create 'template1' orientation rockmass 'leapfrog-2022-12-19-1948.csv' ...
  size power-law 3 size-limits 5 50

fracture generate template 'template1' fracture-count 5000

In this example, a “template” is created that defines the location, orientation and size distributions. A specific DFN is then created following this template. The DFN is created with 5000 fractures.

The resulting DFN is shown in Figure 7, and the resulting stereonet of orientations is shown in Figure 8. Compare this to Figure 4, which shows the stereonet for the original imported data.

../../../../_images/rockmass-stochastic1.png

Figure 7: DFN generated from bootstrapping the imported fracture data. Fractures are contoured according to their diameter.

../../../../_images/rockmass-stochastic2.png

Figure 8: Stereonet for the 5000 fractures in the DFN.

These fractures can then be used to cut a 3DEC model as for the deterministic case above (Figure 9).

../../../../_images/rockmass-stochastic3.png

Figure 9: 3DEC model cut with 5000 DFN fractures.

Data Files

deterministic.dat

model new

geometry import 'kidd_left.dxf'
geometry import 'kidd_middle.dxf'
geometry import 'kidd_right.dxf'

model domain extent -50 50
fracture import from-file 'leapfrog-2022-12-19-1948.csv' format rockmass size 1 

deterministic-model.dat

model new

model domain extent -50 50
fracture import from-file 'leapfrog-2022-12-19-1948.csv' format rockmass size 5 

; make the 3DEC model
program call 'model'

; cut the dfn
block cut dfn name 'leapfrog-2022-12-19-1948'

; smaller zones around the tunnel
block zone size edge 2
block zone size edge 0.5 range pos-y -16 -4 pos-z -5 5
block zone gen-new min-edge 0.5 max-edge 2

block contact property cohesion 1e20
block contact property cohesion 0 range dfn-3dec 'leapfrog-2022-12-19-1948'

model save 'deterministic'

stochastic.dat

model new

model domain extent -30 30

fracture template create 'template1' orientation rockmass 'leapfrog-2022-12-19-1948.csv' ...
  size power-law 3 size-limits 5 50

fracture generate template 'template1' fracture-count 5000

program call 'model.dat'

block cut dfn name 'dfn1'

;; this requires increasing memory above the default
;; see Tools - Options - Configuration
;block zone gen edge 0.5

model save 'stochastic'

model.dat

block tol 0.001

block create brick -15 10 -28 8 -15 15

; extra cuts to give more detail in the region of interest
block densify join seg 1 3 3

table '1' add -1,-1 -1,2 2,2 2,-1
table '2' add -1,-1 -1,2 2,2 2,-1

block cut tunnel table-1 '1' table-2 '2' axis -6.757,10,0.5 -2.75,-30,0.5  ...
  group 'tunnel'