Data Files for “Creation of a Synthetic Rock Mass (SRM) Specimen” Tutorial

doall.p3dvr

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
; fname: doall.p3dvr
;
; sequentially call the datafiles used to create a fractured rock mass model  
;===========================================================================
model title 'Fractured Rock'
program call 'make_brick.p3dat'
program call 'make_intact.p3dat'
program call 'make_fractured.p3dat'
program return
;===========================================================================
; eof: doall.p3dvr

make_brick.p3dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
; fname: make_brick.p3dat
;
; create a brick in periodic space 
;===========================================================================
model new
model domain extent -2.0 2.0 condition periodic
contact cmat default model linear property kn 1e5
model random 10001
ball distribute porosity 0.30 radius 1.0 1.6 res 0.1
ball attribute density 2500.0 damp 0.7
model cycle 1000 calm 10
model mechanical timestep scale
model solve
model calm
brick make id 1
brick export id 1 skip-errors
return
;===========================================================================
; eof: make_brick.p3dat

make_intact.p3dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
; fname: make_intact.p3dat
;
; assemble a brick in a full scale model and install the linear parallel 
; bond contact model 
;===========================================================================
model new
model domain extent -4.0 4.0 -4.0 4.0 -8.0 8.0
brick import id 1 
brick assemble id 1 origin -4.0 -4.0 -8.0 size 2 2 4
contact cmat default model linearpbond method deformability emod 60e9 ...
                           kratio 2.5 property fric 0.5 lin_mode 1
contact cmat apply
ball attribute force-contact multiply 0.0 moment-contact multiply 0.0 
contact method bond gap 0.0 pb_deformability emod 60e9 kratio 2.5
contact property pb_ten 1e8 pb_coh 5e7 pb_fa 20.0
model save 'intact'
return
;===========================================================================
; eof: make_intact.p3dat

make_fractured.p3dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
; fname: make_fractured.p3dat
;
; restore an intact BPM - generate a DFN and install the smoothjoint 
; contact model at contacts intercepted by the fractures 
;===========================================================================
model restore 'intact'
model random 10001
fracture template create 1 size power-law 3 size-limit 1 100
fracture generate dfn 'fractures' template 1 ...
   generation-box -4.0 4.0 -4.0 4.0 -8.0 8.0 ...
   p10 1.5 begin (0.0,0.0,-8.0) end (0.0,0.0,8.0)
fracture combine angle 30.0 distance 1.0 merge
fracture combine angle 40.0 distance 1.0 merge
fracture contact-model model 'smoothjoint' install 
model save 'fractured'
return
;===========================================================================
; eof: make_fractured.p3dat

doall.p2dvr

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
; fname: doall.p2dvr
;
; sequentially call the datafiles used to create a fractured rock mass model  
;===========================================================================
program call 'make_brick'
program call 'make_intact'
program call 'make_fractured'
return
;===========================================================================
; eof: doall.p2dvr

make_brick.p2dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
; fname: make_brick.p2dat
;
; create a brick in periodic space 
;===========================================================================
model new
model domain extent -2.0 2.0 condition periodic
contact cmat default model linear property kn 1e5
model random 10001
ball distribute porosity 0.08 radius 1.0 1.6 res 0.025
ball attribute density 2500.0 damp 0.7
model cycle 1000 calm 10
model mechanical timestep scale
model solve
model calm
brick make id 1
brick export id 1 skip-errors
return
;===========================================================================
; eof: make_brick.p2dat

make_intact.p2dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
; fname: make_intact.p2dat
;
; assemble a brick in a full-scale model and install the linear parallel 
; bond contact model 
;===========================================================================
model new
model domain extent -4.0 4.0 -8.0 8.0
brick import id 1 
brick assemble id 1 origin -4.0 -8.0 size 2 4
contact cmat default model linearpbond method deformability emod 60e9 ...
                           kratio 2.5 property fric 0.5 lin_mode 1 
contact cmat apply
ball attribute force-contact multiply 0.0 moment-contact multiply 0.0
contact method bond gap 0.0 pb_deformability emod 60e9 kratio 2.5
contact property pb_ten 1e8 pb_coh 5e7 pb_fa 20.0
model save 'intact'
return
;===========================================================================
; eof: make_intact.p2dat

make_fractured.p2dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
; fname: make_fractured.p2dat
;
; restore an intact BPM - generate a DFN and install the smoothjoint 
; contact model at contacts intercepted by the fractures 
;===========================================================================
model restore 'intact'
model random 10001
fracture template create 'test' size power-law 3 size-limits 1 100
fracture generate dfn 'fractures' template 'test' ...
         generation-box -4 4 -8 8 p10 1.5 begin (0,-8) end (0,8)
fracture combine angle 30.0 distance 1.0 merge
fracture combine angle 40.0 distance 1.0 merge
fracture contact-model model 'smoothjoint' install 
model save 'fractured'
return
;===========================================================================
; eof: make_fractured.p2dat