Can anyone comment the right syntax for particle growth and shrinkage problem. I need to increase the radius of 200000 particles from 100 micron 125 micron.
Thank you
A project by DCS Computing and CFDEMresearch
This website uses cookies to ensure you get the best experience on our website. By continuing to browse the site you are agreeing to our use of cookies. This website uses cookies. By continuing to browse the site you are agreeing to our use of cookies. More info
alice | Wed, 06/01/2016 - 15:51
Hi ullassss,
Hi ullassss,
have a look at the packing example in the ligggghts/examples folder.
Best regards,
Alice
ullassssss | Thu, 06/02/2016 - 12:53
Thank you Alice
Thank you Alice
A part of my syntax is given above.
#parameters for gradually growing particle diameter
variable alphastart equal 0.0001
variable alphatarget equal 0.000125
variable growts equal 50000
variable growevery equal 40
variable relaxts equal 20000
# Set the dumps
dump dmp all custom 10000 Ullas/shearcell/dump.1 id type type x y z ix iy iz vx vy vz fx fy fz &
omegax omegay omegaz radius
#dump dumpmesh all mesh/vtk 10000 Ullas/shearcell/dump*.vtk stress
#dump mov all movie 10000 Ullas/shearcell/movie.m4v type type size 1280 720
#calculate grow rate
variable Rgrowrate equal (${alphatarget}/${alphastart})^(${growevery}/(3.*${growts}))
print "The radius grow rate is ${Rgrowrate}"
#do the diameter grow
compute rad all property/atom radius
variable dgrown atom ${Rgrowrate}*2.*c_rad
fix grow all adapt ${growevery} atom diameter v_dgrown
#run
run ${growts}
#let the packing relax
unfix grow
run ${relaxts}
The given syntax doesnt give me complete growth in the stipulated time step. How can i edit the particle growth rate?
alice | Fri, 06/03/2016 - 10:31
Hi,
Hi,
you could for example allow for a higher number of time steps (growts) or increase growevery:
variable Rgrowrate equal (${alphatarget}/${alphastart})^(${growevery}/(3.*${growts}))
However, alpha is the volumefraction of the particles within the domain and not the particle diameter (just because it seems you were confusing that...).
As you are going for a specific particle diameter and not a specific volumefraction, it might make sense to adapt the code a bit.
Best regards,
Alice
christian.carl | Wed, 02/01/2017 - 15:28
particle growth
hey guys, i have a similar problem.
Im trying to simulate an underwater slope with a given volume fraction. First I try to generate a normal box of particles and the delete the particles to generate the slope with a restart file.
this is my input data:
#Unterwasserboeschung
atom_style granular
atom_modify map array
boundary f f f
newton off
communicate single vel yes
units si
processors 2 2 1
region raum block 0 3 0.0 0.02 0.0 1 units box
region gesamt block 0 2 0.0 0.02 0.0 0.7 units box #Gesamte partikel in Rechteckform
create_box 1 raum
neighbor 0.002 bin
neigh_modify delay 0
#Material properties required for new pair styles
fix m1 all property/global youngsModulus peratomtype 5.e6
fix m2 all property/global poissonsRatio peratomtype 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.3
fix m4 all property/global coefficientFriction peratomtypepair 1 0.47
#fix m5 all property/global k_finnie peratomtypepair 1 1.0
fix m5 all property/global coefficientRollingFriction peratomtypepair 1 0.01
#New pair style
pair_style gran model hertz tangential history rolling_friction epsd2 #Hertzian without cohesion
pair_coeff * *
timestep 0.00001
fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
fix xwalls1 all wall/gran model hertz tangential history primitive type 1 xplane 0
fix xwalls2 all wall/gran model hertz tangential history primitive type 1 xplane 1
fix ywalls1 all wall/gran model hertz tangential history primitive type 1 yplane 0
fix ywalls2 all wall/gran model hertz tangential history primitive type 1 yplane 0.02
fix zwalls1 all wall/gran model hertz tangential history primitive type 1 zplane 0
fix zwalls2 all wall/gran model hertz tangential history primitive type 1 zplane 1
#distributions for insertion
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.001
fix pdd1 all particledistribution/discrete 1. 1 pts1 1
#parameters for gradually growing particle diameter
variable alphastart equal 0.4
variable alphatarget equal 0.63
variable growts equal 50000
variable growevery equal 40
variable relaxts equal 30000
#region and insertion
group all region gesamt
#region bc block 0 1 0.0 0.02 0.0 0.7 units box
#particle insertion
fix ins all insert/pack seed 5330 distributiontemplate pdd1 insert_every once overlapcheck yes all_in yes vel constant 0. 0. 0. region gesamt volumefraction_region ${alphastart}
#apply nve integration to all particles that are inserted as single particles
fix integr all nve/sphere
#output settings, include total thermal energy
compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles so that dump is not empty
run 1
dump dmp all custom/vtk 2500 post/dump*.vtk id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
#calculate grow rate
variable Rgrowrate equal (${alphatarget}/${alphastart})^(${growevery}/(3.*${growts}))
print "The radius grow rate is ${Rgrowrate}"
#do the diameter grow
compute rad all property/atom radius
variable dgrown atom ${Rgrowrate}*2.*c_rad
fix grow all adapt ${growevery} atom diameter v_dgrown
#run
run ${growts}
#let the packing relax
unfix grow
run ${relaxts}
my main problem is, that after the particles are generated they first start to settle down and then start to increase their radius.
afterwards there are way higher volume fraction than i wanted to have. (my original insertion region heights is 0.7m and after the growth it is only 0.4m.)
When generating my particles, it also says that there are less particles inserted than requested.
I hope somebody can help me and understands my problem.
best regards,
Christian
j-kerbl | Mon, 02/13/2017 - 17:03
Hi Christian,
Hi Christian,
at first you should fix the insertion, so you don't get a warning here and the starting void-fraction is correct.
At first I'd try a more reasonable processor decomposition
processors 2 1 2
, since the y-direction is by far the smallest. So splitting x and z makes more sense here.
Please tell me how it works.
Cheers,
Josef