LAMMPS (28 Mar 2023 - Development) # pour two types of particles (cohesive and non-cohesive) into cylinder # 'turn' cylinder by changing direction of gravity, then rotate it. # This simulates a rotating drum powder characterization experiment. variable name string rotating_drum_two_types atom_style sphere units lj ############################################### # Geometry-related parameters ############################################### variable boxx equal 30 variable boxy equal 30 variable boxz equal 50 variable drum_rad equal ${boxx}*0.5 variable drum_rad equal 30*0.5 variable drum_height equal 20 variable xc equal 0.5*${boxx} variable xc equal 0.5*30 variable yc equal 0.5*${boxx} variable yc equal 0.5*30 variable zc equal 0.5*${boxz} variable zc equal 0.5*50 ############################################### # Particle-related parameters ############################################### variable rlo equal 0.25 variable rhi equal 0.5 variable dlo equal 2.0*${rlo} variable dlo equal 2.0*0.25 variable dhi equal 2.0*${rhi} variable dhi equal 2.0*0.5 variable cyl_rad_inner equal ${drum_rad}-1.1*${rhi} variable cyl_rad_inner equal 15-1.1*${rhi} variable cyl_rad_inner equal 15-1.1*0.5 variable dens equal 1.0 variable skin equal 0.4*${rhi} variable skin equal 0.4*0.5 ############# processors * * 1 region boxreg block 0 ${boxx} 0 ${boxy} 0 ${boxz} region boxreg block 0 30 0 ${boxy} 0 ${boxz} region boxreg block 0 30 0 30 0 ${boxz} region boxreg block 0 30 0 30 0 50 create_box 2 boxreg Created orthogonal box = (0 0 0) to (30 30 50) 1 by 1 by 1 MPI processor grid change_box all boundary p p f Changing box ... pair_style granular pair_coeff 1 * hertz/material 1e5 0.2 0.3 tangential mindlin NULL 1.0 0.5 damping tsuji pair_coeff 2 2 jkr 1e5 0.1 0.3 50 tangential mindlin NULL 1.0 0.5 rolling sds 1e3 1e3 0.1 twisting marshall variable theta equal 0 region curved_wall cylinder z ${xc} ${yc} ${drum_rad} 0 ${drum_height} side in rotate v_theta ${xc} ${yc} 0 0 0 1 region curved_wall cylinder z 15 ${yc} ${drum_rad} 0 ${drum_height} side in rotate v_theta ${xc} ${yc} 0 0 0 1 region curved_wall cylinder z 15 15 ${drum_rad} 0 ${drum_height} side in rotate v_theta ${xc} ${yc} 0 0 0 1 region curved_wall cylinder z 15 15 15 0 ${drum_height} side in rotate v_theta ${xc} ${yc} 0 0 0 1 region curved_wall cylinder z 15 15 15 0 20 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region curved_wall cylinder z 15 15 15 0 20 side in rotate v_theta 15 ${yc} 0 0 0 1 region curved_wall cylinder z 15 15 15 0 20 side in rotate v_theta 15 15 0 0 0 1 region bottom_wall plane ${xc} ${yc} 0 0 0 1 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region bottom_wall plane 15 ${yc} 0 0 0 1 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region bottom_wall plane 15 15 0 0 0 1 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region bottom_wall plane 15 15 0 0 0 1 side in rotate v_theta 15 ${yc} 0 0 0 1 region bottom_wall plane 15 15 0 0 0 1 side in rotate v_theta 15 15 0 0 0 1 region insreg cylinder z ${xc} ${yc} ${cyl_rad_inner} ${drum_height} ${boxz} region insreg cylinder z 15 ${yc} ${cyl_rad_inner} ${drum_height} ${boxz} region insreg cylinder z 15 15 ${cyl_rad_inner} ${drum_height} ${boxz} region insreg cylinder z 15 15 14.45 ${drum_height} ${boxz} region insreg cylinder z 15 15 14.45 20 ${boxz} region insreg cylinder z 15 15 14.45 20 50 fix 0 all balance 100 1.0 shift xy 5 1.1 fix 1 all nve/sphere fix grav all gravity 10 vector 0 0 -1 fix ins1 all pour 2000 1 1234 region insreg diam range ${dlo} ${dhi} dens ${dens} ${dens} fix ins1 all pour 2000 1 1234 region insreg diam range 0.5 ${dhi} dens ${dens} ${dens} fix ins1 all pour 2000 1 1234 region insreg diam range 0.5 1 dens ${dens} ${dens} fix ins1 all pour 2000 1 1234 region insreg diam range 0.5 1 dens 1 ${dens} fix ins1 all pour 2000 1 1234 region insreg diam range 0.5 1 dens 1 1 Particle insertion: 9396 every 490 steps, 2000 by step 1 fix ins2 all pour 2000 2 1234 region insreg diam range ${dlo} ${dhi} dens ${dens} ${dens} fix ins2 all pour 2000 2 1234 region insreg diam range 0.5 ${dhi} dens ${dens} ${dens} fix ins2 all pour 2000 2 1234 region insreg diam range 0.5 1 dens ${dens} ${dens} fix ins2 all pour 2000 2 1234 region insreg diam range 0.5 1 dens 1 ${dens} fix ins2 all pour 2000 2 1234 region insreg diam range 0.5 1 dens 1 1 Particle insertion: 9396 every 490 steps, 2000 by step 1 comm_modify vel yes neighbor ${skin} bin neighbor 0.2 bin neigh_modify delay 0 every 1 check yes fix 3 all wall/gran/region granular hertz/material 1e5 0.1 0.3 tangential mindlin NULL 1.0 0.5 damping tsuji region curved_wall fix 4 all wall/gran/region granular hertz/material 1e5 0.1 0.3 tangential mindlin NULL 1.0 0.5 damping tsuji region bottom_wall thermo_style custom step atoms ke v_theta thermo_modify lost warn thermo 100 timestep 0.001 #dump 1 all custom 100 ${name}.dump id type radius mass x y z #For removal later compute 1 all property/atom radius variable zmax atom z+c_1>0.5*${drum_height} variable zmax atom z+c_1>0.5*20 group delgroup dynamic all var zmax every 10000 dynamic group delgroup defined run 2000 Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule Neighbor list info ... update: every = 1 steps, delay = 0 steps, check = yes max neighbors/atom: 2000, page size: 100000 master list distance cutoff = 1.2072629 ghost atom cutoff = 1.2072629 binsize = 0.60363143, bins = 50 50 83 1 neighbor lists, perpetual/occasional/extra = 1 0 0 (1) pair granular, perpetual attributes: half, newton on, size, history pair build: half/size/bin/newton stencil: half/bin/3d bin: standard Per MPI rank memory allocation (min/avg/max) = 15.95 | 15.95 | 15.95 Mbytes Step Atoms KinEng v_theta 0 0 -0 0 100 4000 -0 0 200 4000 -0 0 300 4000 -0 0 400 4000 -0 0 500 4000 -0 0 600 4000 -0 0 700 4000 -0 0 800 4000 -0 0 900 4000 -0 0 1000 4000 -0 0 1100 4000 -0 0 1200 4000 -0 0 1300 4000 -0 0 1400 4000 -0 0 1500 4000 -0 0 1600 4000 -0 0 1700 4000 -0 0 1800 4000 -0 0 1900 4000 -0 0 2000 4000 -0 0 Loop time of 2.86367 on 1 procs for 2000 steps with 4000 atoms Performance: 60342.153 tau/day, 698.405 timesteps/s, 2.794 Matom-step/s 99.6% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 0.36474 | 0.36474 | 0.36474 | 0.0 | 12.74 Neigh | 1.0694 | 1.0694 | 1.0694 | 0.0 | 37.35 Comm | 0.043549 | 0.043549 | 0.043549 | 0.0 | 1.52 Output | 0.00054587 | 0.00054587 | 0.00054587 | 0.0 | 0.02 Modify | 1.3281 | 1.3281 | 1.3281 | 0.0 | 46.38 Other | | 0.05731 | | | 2.00 Nlocal: 4000 ave 4000 max 4000 min Histogram: 1 0 0 0 0 0 0 0 0 0 Nghost: 192 ave 192 max 192 min Histogram: 1 0 0 0 0 0 0 0 0 0 Neighs: 6959 ave 6959 max 6959 min Histogram: 1 0 0 0 0 0 0 0 0 0 Total # of neighbors = 6959 Ave neighs/atom = 1.73975 Neighbor list builds = 1042 Dangerous builds = 82 #Remove any particles that are above z > 0.5*drum_height delete_atoms group delgroup Deleted 0 atoms, new total = 4000 #Add top lid region top_wall plane ${xc} ${yc} ${drum_height} 0 0 -1 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region top_wall plane 15 ${yc} ${drum_height} 0 0 -1 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region top_wall plane 15 15 ${drum_height} 0 0 -1 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region top_wall plane 15 15 20 0 0 -1 side in rotate v_theta ${xc} ${yc} 0 0 0 1 region top_wall plane 15 15 20 0 0 -1 side in rotate v_theta 15 ${yc} 0 0 0 1 region top_wall plane 15 15 20 0 0 -1 side in rotate v_theta 15 15 0 0 0 1 fix 5 all wall/gran/region granular hertz/material 1e5 0.1 0.3 tangential mindlin NULL 1.0 0.5 damping tsuji region top_wall # 'Turn' drum by switching the direction of gravity unfix grav unfix ins1 unfix ins2 fix grav all gravity 10 vector 0 -1 0 variable theta equal 2*PI*elapsed/20000.0 run 3000 Generated 0 of 1 mixed pair_coeff terms from geometric mixing rule Per MPI rank memory allocation (min/avg/max) = 22.3 | 22.3 | 22.3 Mbytes Step Atoms KinEng v_theta 2000 4000 59.748184 0 2100 4000 47.337202 0.031415927 2200 4000 33.303567 0.062831853 2300 4000 24.246806 0.09424778 2400 4000 17.165844 0.12566371 2500 4000 18.415922 0.15707963 2600 4000 17.3084 0.18849556 2700 4000 15.985202 0.21991149 2800 4000 14.084599 0.25132741 2900 4000 11.526622 0.28274334 3000 4000 8.9364793 0.31415927 3100 4000 6.844209 0.34557519 3200 4000 5.8243926 0.37699112 3300 4000 5.5616671 0.40840704 3400 4000 5.7219459 0.43982297 3500 4000 6.2482952 0.4712389 3600 4000 6.396804 0.50265482 3700 4000 6.6017236 0.53407075 3800 4000 6.684913 0.56548668 3900 4000 6.5988588 0.5969026 4000 4000 6.4839456 0.62831853 4100 4000 6.104233 0.65973446 4200 4000 5.6021757 0.69115038 4300 4000 4.9670639 0.72256631 4400 4000 4.3298233 0.75398224 4500 4000 3.8833884 0.78539816 4600 4000 3.4626401 0.81681409 4700 4000 3.0367615 0.84823002 4800 4000 2.762543 0.87964594 4900 4000 2.5627778 0.91106187 5000 4000 2.4007014 0.9424778 Loop time of 9.68472 on 1 procs for 3000 steps with 4000 atoms Performance: 26763.820 tau/day, 309.766 timesteps/s, 1.239 Matom-step/s 99.6% CPU use with 1 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 3.2753 | 3.2753 | 3.2753 | 0.0 | 33.82 Neigh | 2.2272 | 2.2272 | 2.2272 | 0.0 | 23.00 Comm | 0.068198 | 0.068198 | 0.068198 | 0.0 | 0.70 Output | 0.0008788 | 0.0008788 | 0.0008788 | 0.0 | 0.01 Modify | 4.0327 | 4.0327 | 4.0327 | 0.0 | 41.64 Other | | 0.08047 | | | 0.83 Nlocal: 4000 ave 4000 max 4000 min Histogram: 1 0 0 0 0 0 0 0 0 0 Nghost: 364 ave 364 max 364 min Histogram: 1 0 0 0 0 0 0 0 0 0 Neighs: 12973 ave 12973 max 12973 min Histogram: 1 0 0 0 0 0 0 0 0 0 Total # of neighbors = 12973 Ave neighs/atom = 3.24325 Neighbor list builds = 1274 Dangerous builds = 130 Total wall time: 0:00:12