Data File for “Generating a Bonded Assembly” Tutorial

cmlinearpbond_simple.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
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
; fname: cmlinearpbond_simple.p3dat
;
;  Exercise the Linear Parallel Bond contact model
;==============================================================================
model new
model title 'Generating a bonded assembly (Linear Parallel-Bond contact model)'

; Set the domain extent.
model domain extent -10 10

; Modify the default slots of the Contact Model Assignment Table.
; Here we choose the linear contact model (with kn=1e6) for all contact types
; but ball-ball contacts, to which we assign the linearpbond model.
; Note that only the linear part of the linearpbond model is activated, 
; therefore the model will exactly behave as the linear model.
contact cmat default model linear property kn 5e6
contact cmat default type ball-ball ...
                     model linearpbond property kn 5e6 proximity 0.1

; Generate a box 
wall generate box -5 5 one-wall

; Distribute balls in the box.
; The seed of the pseudo-random number generator is fixed, ensuring that the 
; same initial configuration will be produced any time this file is executed.
; Note also that the box extent specified with the 'ball distribute' command is
; smaller than the box-wall generated above. This is done to avoid balls  
; escaping from the material vessel. Consequently, the porosity specified with 
; the 'ball distribute' command is tuned down, to achieve the desired porosity 
; upon equilibration.
;
model random 10001
ball distribute porosity 0.2 radius 0.5 0.6 box -4.5 4.5 
model save 'balls'

; Set ball attributes.
ball attribute density 1000.0 damp 0.7

; Calm the system.
; Since the "ball distribute" command has been used above, the balls have been
; created without regard to the overlaps. 
model cycle 2000 calm 50

; Solve the system to a target limit (here the average force ratio).
; To reach a stable configuration faster, density scaling is activated.
model mechanical timestep scale
model solve ratio-average 1e-3
model mechanical timestep auto
model calm

; Install a measurement sphere to monitor stresses within 
; the assembly. Also reset ball displacements.
measure create id 1 radius 5.0
measure history name 1 stress-xx id 1  
measure history name 2 stress-yy id 1  
measure history name 3 stress-zz id 1

; Install parallel bonds - only contacts with a linearpbond model are affected.
contact method bond gap 0.1
contact property pb_kn 1e6 pb_ks 1e6 pb_ten 1e6 pb_coh 1e6 pb_fa 30.0

; Reset ball displacement and save the initial state.
ball attribute displacement multiply 0.0
model save 'initial'

; Delete the walls and solve to a target average ratio. 
wall delete
model cycle 1
model solve ratio-average 1e-3
model save 'final1'

; Repeat the simulation but set the linear stiffness to 0.0.
; Note that the contact forces calculated at the previous timestep are already
; accumulated to the contacting balls - thus the slight perturbation from
; equilibrium.
model restore 'initial'
wall delete
contact property kn 0.0
model cycle 1
model solve ratio-average 1e-3
model save 'final2'

; Repeat the simulation but set the linear stiffness to 0.0
; and force a reset of the linear contact forces. All balls are fixed 
; and the system is cycled for 1 step, to reset the linear forces.
model restore 'initial'
wall delete
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-3
model save 'final3'

return
;==============================================================================
; eof: cmlinearpbond_simple.p3dat