spheres overlap during the generation of a packed bed of spheres

Submitted by salvo on Fri, 07/10/2015 - 12:03

Hello Everybody,

My study is dedicated to create packed bed of spheres and run simulation CFD to investigate the mass and heat transfer in the packed bed reactor. The problem I found when I create a packed bed of spheres with the script "in.packing" is that some spheres do not each other well and in some spheres there is a overlapping. This problem will affect the generation of the mesh. My question is if I can avoid this problem creating a packed bed without overlapping so just with normal contact points between the spheres and the wall ?

If you want I can upload the script I use to generate the packed bed!

Thank you in advance for your interest,

best regards
Sickert

JoshuaP | Fri, 07/10/2015 - 13:01

hey,

insert them with smaller diameter and than grow them slowly to the true diameter.
Here is an example:

#parameters for gradually growing particle diameter
variable growts equal 50000
variable growevery equal 40
variable relaxts equal 100000
#region and insertion
group nve_group region reg
#particle insertion
fix ins nve_group insert/pack seed 5330 distributiontemplate pdd1 &
maxattempt 200 insert_every once overlapcheck yes all_in yes vel constant 0. 0. 0. &
region insreg mass_in_region ${totalmass}
#apply nve integration to all particles that are inserted as single particles
fix integr nve_group nve/sphere
#output settings, include total thermal energy
compute radi all property/atom radius
compute minradi all reduce min c_radi
compute maxradi all reduce max c_radi
compute maxz all reduce max z
variable Rgrowrate equal ${scalereduction}^(${growevery}/(${growts}))#ramp(2.1,0.2)
compute 1 all erotate/sphere
thermo_style custom step atoms ke vol dt etotal c_minradi c_maxradi v_Rgrowrate c_maxz
thermo 1000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes
#insert the first particles
run 1
dump dmp all custom 10000 post/dump.fill id type type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
unfix ins
print "The radius grow rate is Rgrowrate"
#do the diameter grow
compute rad all property/atom radius
variable dgrown atom ${Rgrowrate}*2.*c_rad #mal 2 wegen von Radius auf Durchmesser
fix grow all adapt ${growevery} atom diameter v_dgrown
variable deltatime equal sqrt(${rho}/($E/(2*(1+$v))))*c_minradi*PI/(0.1631*$v+0.876605)/5
timestep ${deltatime}
variable neigh equal c_maxradi*2
neighbor ${neigh} bin
#run
run ${growts}
variable deltatime equal sqrt(${rho}/($E/(2*(1+$v))))*c_minradi*PI/(0.1631*$v+0.876605)/5
timestep ${deltatime}
variable neigh equal c_maxradi*2
neighbor ${neigh} bin