weird result: particle discharging from a hopper

Submitted by ZYan on Tue, 04/15/2014 - 15:43

Hi guys,
I am working on the simulation of discharging of particles from a flat bottom hopper. When the discharging is completed, there are one layer of particle sticking to the cylindrical walls. (please see the attached figure). I also attached the meterial properties that i used. Does some one work on similar topics and know the problem? Thank you.

......
fix m1 all property/global youngsModulus peratomtype 5.e9 5.e9
fix m2 all property/global poissonsRatio peratomtype 0.45 0.45
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.6 0.6 0.6 0.6
fix m4 all property/global coefficientFriction peratomtypepair 2 0.8 0.8 0.8 0.8
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 0.5 0.5 0.5 0.5

pair_style gran/hertz/history rolling_friction cdt #rolling_friction
pair_coeff * *

timestep 0.0000005

fix gravi all gravity 9.81 vector 0.0 0.0 -1.0

# import trangular mesh (the sand container)
fix cad1 all mesh/surface file cylinder.stl type 2 scale 0.001
fix cad2 all mesh/surface file lid.stl type 2 scale 0.001
fix cad3 all mesh/surface file plane.stl type 2 scale 0.001 move 0. 0. 0.030
fix cad4 all mesh/surface file bottom.stl type 2 scale 0.001

#use the imported mesh as granular wall
fix granwalls all wall/gran/hertz/history mesh n_meshes 4 meshes cad1 cad2 cad3 cad4 rolling_friction cdt

#distributions for insertion
fix pts1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.001
fix pdd1 all particledistribution/discrete 2000. 1 pts1 1.0
....

AttachmentSize
Image icon sandpile_error.jpg67.1 KB
aaigner's picture

aaigner | Wed, 04/16/2014 - 09:47

Hello YZan,

you are right, it looks somehow wired, but it is possible with your material properties.

  1. ... your rolling friction is quite high. 0.5 means that a particle would not roll down a 78-degree inclined plate. In combination with a high coefficient of fricton this can lead to your phenomenon.
  2. If you are interested in the final, static state (angle of repose,...), you may change the rolling friction model. 'cdt' means constant directional torque and in general, this model does not lead to a real static state. There are small oscilations of the particles that cause a small drift. In contrast 'epsd' and 'epsd2' use a spring[-dashpot] model that allow the simulation of a static pile of particles.

Bests
Andreas

ZYan | Wed, 04/16/2014 - 12:19

Hello Andreas,
Thanks for your expertise.
1. I have tried small rolling friction coeff. (0-0.01) as well. However, there are still a few particles sticking to the wall (90 degree inclined plate).
2. I will be trying the epsd and epsd2 models
Many thanks again.
ZYan

Zeynep | Mon, 07/27/2020 - 15:18

Hello,
i have the same problem. Even if i use small time step and rolling friction model epsd2 one layer of particles seems sticked to the surface. How can I solve it?
Any comment will be helpful

Zeynep | Mon, 07/27/2020 - 21:02

Hello,
Thank you for your help,
Unfortunately, i could not attached my input file since it is not my post. But here it is, I can also send it to you as an in file.
Thanks a lot

atom_style granular
boundary f f f
newton off
atom_modify map array
communicate single vel yes
units si #(meters, seconds, kg)
timestep 0.00001
processors * * *

#MAKE REGION
region reg block -0.03 0.03 -0.03 0.03 -0.04 0.15 units box
create_box 2 reg
neighbor 2e-3 bin #(in meters)
neigh_modify delay 0

#INTEGRATION
fix 1 all nve/sphere

#MATERIAL PROPS

fix m1 all property/global youngsModulus peratomtype 5e6 5e6
fix m2 all property/global poissonsRatio peratomtype 0.3 0.3
fix m3 all property/global coefficientRestitution peratomtypepair 2 0.5 0.7 0.7 0.7
fix m4 all property/global coefficientFriction peratomtypepair 2 0.1 0.45 0.45 0.1
fix m5 all property/global coefficientRollingFriction peratomtypepair 2 0.1 0.15 0.15 0.1

#FORCE PAIR

pair_style gran model hertz tangential history rolling_friction epsd2

pair_coeff * *

# MAKE GRANULAR WALL

fix cad1 all mesh/surface file mesh/15_mm_orif2.stl type 2 scale 0.001 move 0 0 -0.03
fix cylinder all wall/gran model hertz tangential history rolling_friction epsd2 primitive type 2 zcylinder 0.025 0 0
fix granwalls all wall/gran model hertz tangential history rolling_friction epsd2 mesh n_meshes 1 meshes cad1

#STOPPER
fix stopper_wall all wall/gran model hertz tangential history rolling_friction epsd2 primitive type 2 zplane -.03

#GROUND
#fix ground all wall/gran model hertz tangential history rolling_friction epsd2 primitive type 2 zplane -.07

#PARTICLE INSERTION
fix pts1 all particletemplate/sphere 15485863 atom_type 1 density constant 2554 radius constant 1e-3
fix pdd1 all particledistribution/discrete 15485867 1 pts1 1.0

#REGION OF INSERTION (BOX OLARAK INSERT ET!)
#Cylinder arguments: dim c1 c2 radius lo hi
region factory cylinder z 0 0 0.023 -0.028 0.1 units box

fix ins all insert/rate/region seed 123457 distributiontemplate pdd1 mass 0.15 massrate 10 insert_every 1000 overlapcheck yes region factory ntry_mc 1000

fix ts all check/timestep/gran 1000 0.2 0.1

#INSERT THE FIRST PARTICLES SO THAT DUMP IS NOT EMPTY
run 1

#OUTPUTS
thermo_style custom step atoms ke cpu time
thermo 1000
dump velocity all custom/vtk 1000 post/dump*.vtk id type type x y z vx vy vz omegax omegay omegaz
dump dmpstl all stl 1000 dump_geometry/dump_geometry*.stl

#RUN TO FILL THE HOPPER
run 1000 upto
unfix ins

fix 2 all gravity 9.81 vector 0.0 0.0 -1.0

run 30000 upto

unfix stopper_wall

#RUN TO DİSCHARGE THE HOPPER
run 90000000