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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104 | ; filename: inclusions.p2dat
;
; PFC2D tutorial - Demonstrate usage of the CMAT to build complex material
; with spatial distributions of mechanical properties
;
;==============================================================================
model new
model title 'Soft and Stiff Inclusions in a Matrix'
; build initial BPM
model domain extent -5 5
contact cmat default model linear property kn 1e5
wall generate box -2 2 -4 4
model random 10001
ball distribute porosity 0.08 radius 0.05 0.07 box -2 2 -4 4 group 'matrix'
ball attribute position mult 0.9
ball attribute density 1000.0 damp 0.7
model cycle 1000 calm 10
model mechanical timestep scale
model solve ratio-average 1e-5
model mechanical timestep auto
model solve ratio-average 1e-5
contact cmat default model linearpbond ...
property kn 1e8 ks 5e7 fric 0.25 lin_mode 1 ...
pb_kn 1e8 pb_ks 5e7 pb_ten 2e5 pb_coh 5e4 pb_fa 20
contact cmat apply
contact method bond gap 0.0
wall delete
model solve elastic ratio-average 1e-5
; prepare for upcoming tests : add top and bottom platens and set up monitoring
contact cmat default type 'ball-facet' model linear ...
property kn 1e8 ks 5e7 fric 0.25
wall generate id 1 plane position 0.0 4.015
wall generate id 2 plane position 0.0 -4.015
wall attribute velocity-y -0.005 range id 1
wall attribute velocity-y 0.005 range id 2
wall history force-contact-y id 1
wall history force-contact-y id 2
wall history displacement-y id 2
ball attribute displacement 0.0
model save 'initial1'
; perform UCS test (activate fragment tracking)
fragment register ball-ball
fragment activate time 0.1
model solve time 5.0
model save 'final1'
; use groups to identify inclusions
model restore 'initial1'
ball group 'inclusions' range circle center 1.0 3.0 rad 0.5
ball group 'inclusions' range circle center -0.5 1.0 rad 0.5
ball group 'inclusions' range circle center 0.5 -1.5 rad 0.5
ball group 'inclusions' range circle center -1.0 -3.0 rad 0.5
model save 'initial-groups'
; change contact model properties - softer inclusions
contact cmat default type ball-ball model linear ...
property kn 1e7 ks 5e6 fric 0.25 lin_mode 1
contact cmat add 1 model linearpbond ...
property kn 1e8 ks 5e7 fric 0.25 lin_mode 1 ...
pb_kn 1e8 pb_ks 5e7 pb_ten 2e5 pb_coh 5e4 pb_fa 20 ...
range group 'matrix' matches 2
contact cmat add 2 model linearpbond ...
property kn 1e7 ks 5e6 fric 0.25 lin_mode 1 ...
pb_kn 1e7 pb_ks 5e6 pb_ten 2e4 pb_coh 5e3 pb_fa 20 ...
range group 'inclusions' matches 2
contact cmat apply
contact method bond gap 0.0
; repeat UCS test
fragment register ball-ball
fragment activate time 0.1
model solve time 5.0
model save 'final2'
; change contact model properties - stiffer inclusions
model restore 'initial-groups'
contact cmat default type ball-ball model linear ...
property kn 1e8 ks 5e7 fric 0.25 lin_mode 1
contact cmat add 1 model linearpbond ...
property kn 1e8 ks 5e7 fric 0.25 lin_mode 1 ...
pb_kn 1e8 pb_ks 5e7 pb_ten 2e5 pb_coh 5e4 pb_fa 20 ...
range group 'matrix' matches 2
contact cmat add 2 model linearpbond ...
property kn 1e9 ks 5e8 fric 0.25 lin_mode 1 ...
pb_kn 1e9 pb_ks 5e8 pb_ten 2e6 pb_coh 5e5 pb_fa 20 ...
range group 'inclusions' matches 2
contact cmat apply
contact method bond gap 0.0
; repeat UCS test
fragment register ball-ball
fragment activate time 0.1
model solve time 5.0
model save 'final3'
return
;==============================================================================
; eof: inclusions.p2dat
|