通过PFC6.0和FLAC耦合来模拟柔性膜,需要注意的是,这里不是预压围压后移除墙边界,再加柔性膜。
而是直接生成柔性膜,给柔性膜施加预压和围压,更符合实际。
加载后的效果:
应力应变,密砂到达峰值后应变软化:
体应变,密砂先剪缩再剪胀,后趋于稳定:
成样
model new
def para_set
;;==========bondary condition======
rad = 0.025
height = 0.10
poros = 0.42
segments = 12
Density =2650
b_rad = 0.001
freeRegion = height/2.0
;;==========contact patameter========
emod = 1.0e8
fric = 0.5
rr_fric = 0.4
end
@para_set
model random 10001
;domain setting
model domain extent [-rad*2] [rad*2] [-rad*2] [rad*2] [-height] [height] condition destroy
;wall generating
program call 'boundary_generate.dat'
;ball generating
ball distribute porosity [poros] box [-rad] [rad] [-rad] [rad] [-height/2] [height/2] radius [b_rad] ...
range cylinder end-1 (0,0,[-height/2*0.98]) end-2 (0,0,[height/2*0.98]) radius [rad*0.98]
;ball attribute generating
ball attribute density [Density*10000] damp 0.7
;contact model setting
contact cmat default type ball-facet model linear method deformability emod 1e8 kratio 1.5 property fric 0.2
contact cmat default type ball-ball model linear method deformability emod 1e8 kratio 1.5
contact cmat apply
;balance model
model cycle 1000 calm 10
model mechanical timestep scale
model solve ratio-average 5e-5 max_cycles 5000
model mechanical timestep auto
;Return the contact force to zero
contact property lin_force 0 0 0 rr_moment 0 0 0 lin_mode 1
ball attribute force-contact multiply 0 moment-contact multiply 0
model cycle 1
;save model
model save '1specimen'
2.预压
model restore '1specimen'
program call 'MonitorUtilities.p3fis'
program call 'ServoUtilities.p3fis'
[targetzz = 10e3]
structure node free velocity rotation range group 'middle'
structure shell apply [-targetzz] range group 'middle'
ball property 'kn' 0 'ks' 0
wall property 'kn' 0 'ks' 0
@_compute_dia
[wlz_ini=wlz]
[wlr_ini=wlr]
contact cmat default type ball-facet model linear method deformability emod 1e8 kratio 1.5
contact cmat default type ball-ball model rrlinear property fric [fric] rr_fric [rr_fric] method deformability emod 1e8 kratio 1.5
contact cmat apply
model calm
model cycle 1
wall servo activate on force-z [-targetzz*math.pi()*rad^2.0] ...
velocity-max 1 range set id 2
wall servo activate on force-z [targetzz*math.pi()*rad^2.0] ...
velocity-max 1 range set id 1
history interval 100
fish callback add @servo_walls -1.0
model calm
[stop_me_compaction = 0]
model solve fish-halt @stop_me_compaction
model save '2yuya'
program return
3.围压
model restore '2yuya'
[targetzz = 100e3]
structure shell apply [-targetzz] range group 'middle'
[stop_me_compaction = 0]
model solve fish-halt @stop_me_compaction
model save '3weiya'
program return
本案例全部计算代码如下,附件可直接导入PFC。
内容简介:模型算例