Data Files for “Slip on a Fault” Tutorial

make_intact.p3dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
; fname: make_intact.p3dat
;
;  Create parallel bonded sample
;==============================================================================
model new
model title 'Simulating slip on a fault (Smooth Joint Contact model)'

; Set the domain extent
model domain extent -20 20

; Modify the default slots of the Contact Model Assignment Table
; This sets the normal stiffness only for all contacts
contact cmat default model linearpbond property kn 5e7 dp_nratio 0.5 

; Generate walls 
wall generate box -6 6

; Distribute balls in the box.
model random 1001
ball distribute porosity 0.2 radius 0.3 0.4 box -6 6

; Set ball attributes
ball attribute density 1000.0 damp 0.7

; Calm the system
model cycle 1000 calm 10
; Solve the system to a target limit (here the average force ratio)
; Use density scaling to quickly reach equilibrium
model mechanical timestep scale
model solve ratio-average 1e-3
model mechanical timestep auto
model calm

; delete walls
wall delete

; Install parallel bonds to particles in contact 
; assign very high strength to prevent breakage
contact method bond gap 0.0
contact property pb_kn 1e8 pb_ks 1e8 pb_ten 1e12 pb_coh 1e12 pb_fa 30.0

; Reset ball displacement 
ball attribute displacement multiply 0.0

; Set linear stiffness to 0.0 and force a reset of linear contact forces. 
contact property kn 0.0 lin_force 0.0 0.0 0.0
ball attribute force-contact multiply 0.0 moment-contact multiply 0.0 
model cycle 1
model solve ratio-average 1e-5

model save 'intact'
;==============================================================================
; eof: make_intact.p3dat

make_fault.p3dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
; fname: make_fault.p3dat
;
; Restore an intact BPM
; Generate a single fracture and install the smoothjoint contact model
; at contacts intercepted by the fracture
;==============================================================================
model restore 'intact'

; Add single joint with dip of 30 degrees
; The default center location is 0,0
fracture create dip 30 dip-direction 90 size 20.0

; Set dfn properties to be assigned to intersecting contacts
; Friction angle is 35 degrees
fracture property ...
         'sj_kn' 2e9 'sj_ks' 2e9 'sj_fric' 0.70 ...
         'sj_coh' 0.0 'sj_ten' 0.0 'sj_large' 1

; Apply smoothjoint contact model to contacts intercepted by fracture
fracture contact-model model 'smoothjoint' install dist 0.1

; Ensure new contacts intersecting the fracture are set to the sj contact model
fracture contact-model model 'smoothjoint' activate 

model save 'fault'
;==============================================================================
; eof: make_fault.p3dat

load.p3dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
; fname: load.p3dat
;
; Restore the faulted BPM
; Apply gravitational load and test different joint friction angles
;==============================================================================
model restore 'fault'

; Fix row of balls at the bottom
ball fix vel range position-z -6 -5.3

; Turn on gravity
model gravity 10
model solve ratio-average 1e-5

model save 'load_fric35'

; now set friction angle to 25 degrees
fracture property 'sj_fric' 0.466

; Decrease damping
ball attribute damp 0.1

; Do not use solve command since we expect unstable sliding
model cyc 10000

model save 'load_fric25'
;==============================================================================
; eof: load.p3dat

make_intact.p2dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
; fname: make_intact.p2dat
;
;  Create parallel bonded sample
;==============================================================================
model new
model title 'Simulating slip on a fault (Smooth Joint Contact model)'

; Set the domain extent
model domain extent -20 20

; Modify the default slots of the Contact Model Assignment Table
; This sets the normal stiffness only for all contacts
contact cmat default model linearpbond property kn 5e7 dp_nratio 0.5 

; Generate walls 
wall generate box -6 6

; Distribute balls in the box.
model random 1001
ball distribute porosity 0.05 radius 0.2 0.3 box -6 6

; Set ball attributes
ball attribute density 1000.0 damp 0.7

; Calm the system
model cycle 1000 calm 10
; Solve the system to a target limit (here the average force ratio)
; Use density scaling to quickly reach equilibrium
model mechanical timestep scale
model solve ratio-average 1e-3
model mechanical timestep auto
model calm

; delete walls
wall delete

; Install parallel bonds to particles in contact 
; assign very high strength to prevent breakage
contact method bond gap 0.0
contact property pb_kn 1e8 pb_ks 1e8 pb_ten 1e12 pb_coh 1e12 pb_fa 30.0

; Reset ball displacement 
ball attribute displacement multiply 0.0

; Set linear stiffness to 0.0 and force reset of the linear contact forces. 
contact property kn 0.0 lin_force 0.0 0.0
ball attribute force-contact multiply 0.0 moment-contact multiply 0.0 
model cycle 1
model solve ratio-average 1e-5

model save 'intact'
;==============================================================================
; eof: make_intact.p2dat

make_fault.p2dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; fname: make_fault.p2dat
;
; Restore an intact BPM
; Generate a single fracture and install the smoothjoint contact model
; at contacts intercepted by the fracture
;==============================================================================
model restore 'intact'

; Add single joint with dip of 30 degrees
; The default center location is 0,0
fracture create dip 30 size 20.0

; Set dfn properties to be assigned to intersecting contacts
; Friction angle is 35 degrees
fracture property ...
  'sj_kn' 2e9 'sj_ks' 2e9 'sj_fric' 0.70 'sj_coh' 0.0 'sj_ten' 0.0 'sj_large' 1

; Apply smoothjoint contact model to contacts intercepted by fracture
; Ensure that new contacts intersecting the fracture are
; set to the sj contact model
fracture contact-model model 'smoothjoint' install dist 0.1 activate

model save 'fault'
;==============================================================================
; eof: make_fault.p2dat

load.p2dat

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
; fname: load.p2dat
;
; Restore the faulted BPM
; Apply gravitational load and test different joint friction angles
;==============================================================================
model restore 'fault'

; Fix row of balls at the bottom
ball fix vel range position-y -6 -5.5

; Turn on gravity
model gravity 10
model solve ratio-average 1e-5

model save 'load_fric35'

; now set friction angle to 25 degrees
fracture property 'sj_fric' 0.466

; Decrease damping
ball attribute damp 0.1

; Do not use solve command since we expect unstable sliding
model cycle 20000

model save 'load_fric25'
;==============================================================================
; eof: load.p2dat