Open Pit with Face Blocks

Problem Statement

Note

The project file for this example may be viewed/run in 3DEC.[1] The data files used are shown at the end of this example.

This example shows how to build a model with a complicated topography in two different ways; (1) import tetrahedral blocks from Griddle and join them, (2) import tetrahedral blocks from Griddle and turn them into zones.

When blocks are turned into zones, “face blocks” are added to each triangular face between groups to enable contact detection and force calculation. In this way, it is possible to create models with concave blocks.

Even with the addition of these face blocks, turning the blocks into zones yields significantly faster run times than joining.

3DEC Model

A 3DEC model is first created from the data file nomerge.dat. A griddle mesh is imported, and the blocks prior to joining are shown in Figure 1.

Blocks with the same group name are then joined. This leaves two major faults as shown in Figure 2.

The blocks are then zoned (one zone per block), zone and joint properties are assigned, boundary and initial conditions are applied and gravity is turned on. The model is then solved and the time taken to do the solve step is calculated. The displacements are shoown in Figure 3.

../../../../_images/fbpit-blocks-unjoined.png

Figure 1: Blocks in the pit model before joining.

../../../../_images/fbpit-blocks.png

Figure 2: Blocks in the pit model after joining.

../../../../_images/fbpit-displacement-nomerge.png

Figure 3: Displacements in the pit model with joined blocks at initial equilibrium.

The same test is then run, but this time the blocks imported from Griddle are merged into a single big block if they have the same group name. Each tetrahedral block is turned into a zone. The resulting model looks the same as Figure 2, except now there are only 3 blocks, each with thousands of zones, rather than thousands of joined blocks, each with one zone.

The model is run to equilibrium and the time required is recorded. The time results will depend on the computer used, but generally the merged model will run 2-3 times faster than the jointed model.

The displacement results are shown in Figure 4. It is clear that the results are essentially the same as in Figure 3.

../../../../_images/fbpit-displacement-merge.png

Figure 4: Displacements in the pit model with merged blocks at initial equilibrium.

Data Files

nomerge.dat

model new
model large-strain on
;
program call 'Griddle-coarse'
;program call 'Griddle-fine'
;
block join range group '10001'
block join range group '10002'
block join range group '10003'

block zone generate edgelength 1000
;
block zone cmodel assign mohr-coulomb
block zone property density 2500 bulk 1e8 shear 0.6e8 cohesion 1e4 ...
  friction 35 tension 1e2

block contact jmodel assign mohr
block contact property stiffness-normal 1e9 stiffness-shear 1e9 friction 30

block gridpoint apply velocity-x 0 range position-x -120
block gridpoint apply velocity-x 0 range position-x 2100
block gridpoint apply velocity-y 0 range position-y 1310
block gridpoint apply velocity-y 0 range position-y 3750
block gridpoint apply velocity 0 0 0 range position-z -500

model gravity 0 0 -10

block insitu topography ratio-x 0.5 ratio-y 0.5

model save 'nomerge-ini'

================================

model restore 'nomerge-ini'

block contact material-table default property stiffness-normal 1e9 ...
  stiffness-shear 1e9 friction 30


fish define time_ini
  time0 = time.clock
end

fish define duration
  duration = 0.01*(time.clock-time0)
end

[time_ini]

model solve

fish list [duration]

merge.dat

model new
model large-strain on

block merge-start

;program call 'Griddle-fine'
program call 'Griddle-coarse'

block merge-finish

block contact generate-subcontacts

;
block zone cmodel assign mohr-coulomb
block zone property density 2500 bulk 1e8 shear 0.6e8 cohesion 1e4 ...
  friction 35 tension 1e2

block contact jmodel assign mohr
block contact property stiffness-normal 1e9 stiffness-shear 1e9 friction 30

block gridpoint apply velocity-x 0 range position-x -120
block gridpoint apply velocity-x 0 range position-x 2100
block gridpoint apply velocity-y 0 range position-y 1310
block gridpoint apply velocity-y 0 range position-y 3750
block gridpoint apply velocity 0 0 0 range position-z -500

model gravity 0 0 -10

block insitu topography ratio-x 0.5 ratio-y 0.5

model save 'merge-ini'

================================

model restore 'merge-ini'

block contact material-table default property stiffness-normal 1e9 ...
  stiffness-shear 1e9 friction 30

fish define time_ini
  time0 = time.clock
end

fish define duration
  duration = 0.01*(time.clock-time0)
end

[time_ini]

model solve

fish list [duration]

Endnote