Gravity Settlement in a Coupled PFC-FLAC3D model
Problem Statement
Note
To view this project in the program, use the menu command Choose “—————/ ————–” and select “——-.—- to load. The main data file used is shown at the end of this example. The remaining data files can be found in the project.
.The following example illustrates gravity settlement in a vertical column using PFC-FLAC3D coupling. The bar is composed of particles bonded together on the top part of the system, and of zones on the bottom part. The bottom end is a fixed boundary. The PFC and FLAC3D regions overlap over a specified length, where they are coupled using the Ball-Zone coupling scheme. Gravity is activated and the system is solved to equilibrium.
The behavior of the coupled system is compared with a similar system composed of balls alone (PFC-only model), and a system composed of zones alone (FLAC3D-only model). The three systems are run side-by-side in the same model.
Numerical Model
The data file “settle_cpl.dat” simulates gravity settlement in a column made up of a coupled PFC-FLAC3D system. The vertical displacement at the top of the system is shown in
![wad/ballzone/test3d/verification_problems/Settle/p3d-verif-settlecpl-dispA.png](wad/ballzone/test3d/verification_problems/Settle/p3d-verif-settlecpl-dispA.png)
Figure 1: Displacement histories.
![wad/ballzone/test3d/verification_problems/Settle/p3d-verif-settlecpl-system.png](wad/ballzone/test3d/verification_problems/Settle/p3d-verif-settlecpl-system.png)
Figure 2: Displacement contours.
Data File
settle_cpl.dat
model new
model configure dynamic
model large-strain on
[rho = 2700.0 ]
[emod = 75.0e9 ]
[nu = 0.25]
[mmod = emod*(1-nu)/((1+nu)*(1-2.0*nu))]
[l = 1.0]
[nb = 5]
[rad = l/(2.0*nb)]
[rhob = 6.0/math.pi*rho]
[nh = 10]
[nw = 1]
[npfc = 2]
[ncpl = 3]
[h = nh*l]
[nf3d = nh - (npfc+ncpl)]
;[lsub = nzh*hz]
[hmin = 0.]
[hpfc = hmin + nf3d *l]
[hf3d = hmin + (nf3d+ncpl)*l]
[nf = int(hf3d/l)]
[epsilon = 1.0e-3]
zone create brick size [nw] [nw] [nf] point 0 0 0 [hmin] ...
point 1 [l] 0 [hmin] ...
point 2 0 [l] [hmin] ...
point 3 0 0 [hf3d]
zone create brick size [nw] [nw] [nh] point 0 [2.0*l] 0. [hmin] ...
point 1 [3.0*l] 0. [hmin] ...
point 2 [2.0*l] [l] [hmin] ...
point 3 [2.0*l] 0. [h]
zone cmodel assign elastic
zone property young [emod] poisson [nu]
zone initialize density [rho]
model cycle 0 ; to initialize gp masses
model range create 'bottom' position-z [hmin-0.01*l] [hmin+0.01*l]
zone face group 'bottom' range named-range 'bottom'
zone gridpoint fix velocity range named-range 'bottom'
zone gridpoint fix velocity-x
zone gridpoint fix velocity-y
;
model domain extent [-4.0*l] [4.0*l] [-2.0*l] ...
[2.0*l] [hmin-5.0*rad] [h+5.0*rad]
ball generate cubic radius [rad] box [rad] [l-rad] [rad] ...
[l-rad] [hpfc+rad] [h-rad]
ball generate cubic radius [rad] box [-2.0*l+rad] [-l-rad] [rad] ...
[l-rad] [hmin+rad] [h-rad]
ball fix velocity range position-z [hmin] [hmin+2.0*rad]
ball fix velocity-x velocity-y
ball attribute density [rhob]
contact cmat default model linearpbond ...
method pb_deformability emod [4.0/math.pi*mmod] ...
kratio 1.0 ...
property pb_ten 1e20 pb_coh 1e20
model clean
contact method bond gap 0.01
model gravity (0,0,-9.81)
zone dynamic damping local 0.1
zone mechanical damping local 0.1
ball attribute damp 0.1
ball-zone create
fish define setMassFactors(eps)
loop foreach local cb ball.zone.ball.list
local b = ball.zone.ball.ball(cb)
local bzpos = ball.pos.z(b)
ball.extra(b,1) = (1.0-2.0*eps)*(hpfc - bzpos)/(hpfc-hf3d) + eps
ball.zone.ball.mass.factor(cb) = ball.extra(b,1)
endloop
loop foreach local cgp ball.zone.gp.list
local gp = ball.zone.gp.gp(cgp)
local gpzpos = gp.pos.z(gp)
gp.extra(gp,1) = (1.0-2.0*eps)*(hf3d - gpzpos)/(hf3d - hpfc) + eps
ball.zone.gp.mass.factor(cgp) = gp.extra(gp,1)
endloop
end
[setMassFactors(epsilon)]
history interval 1
model history name '1' mechanical time-total
model history name '2' mechanical ratio-average
zone history name '11' displacement-z position ([2.0*l],0.0,[h])
ball history name '12' displacement-z position (0.0,0.0,[h])
ball history name '14' displacement-z position ([-2.0*l],0.0,[h])
zone history name '21' displacement-z position ([2.0*l],0.0,[hpfc])
ball history name '22' displacement-z position (0.0,0.0,[hpfc])
zone history name '23' displacement-z position (0.0,0.0,[hpfc])
ball history name '24' displacement-z position ([-2.0*l],0.0,[hpfc])
zone history name '31' displacement-z position ([2.0*l],0.0,[hf3d])
ball history name '32' displacement-z position (0.0,0.0,[hf3d])
zone history name '33' displacement-z position (0.0,0.0,[hf3d])
ball history name '34' displacement-z position ([-2.0*l],0.0,[hf3d])
model save 'settle_cpl-ini'
model solve ratio-average 5e-3
model save 'settle_cpl-final'
program return
Was this helpful? ... | Itasca Software © 2024, Itasca | Updated: Aug 13, 2024 |