Data Files for “Slip on a Fault” Tutorial
- make_intact.p3dat (3D example)
- make_fault.p3dat (3D example)
- load.p3dat (3D example)
- make_intact.p2dat (2D example)
- make_fault.p2dat (2D example)
- load.p2dat (2D example)
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
|
Was this helpful? ... | PFC 6.0 © 2019, Itasca | Updated: Nov 19, 2021 |