From 98daf8f8250685e5edd95273f9b1ca74bbadb66c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Apr 2019 09:43:45 -0400 Subject: [PATCH] optimize granular examples and include logs --- examples/granular/in.pour.drum | 28 +- examples/granular/in.pour.flatwall | 6 +- examples/granular/log.29Mar19.pour.drum.g++.1 | 271 ++++++++++++++++++ examples/granular/log.29Mar19.pour.drum.g++.4 | 271 ++++++++++++++++++ .../granular/log.29Mar19.pour.flatwall.g++.1 | 134 +++++++++ .../granular/log.29Mar19.pour.flatwall.g++.4 | 191 ++++++++++++ 6 files changed, 884 insertions(+), 17 deletions(-) create mode 100644 examples/granular/log.29Mar19.pour.drum.g++.1 create mode 100644 examples/granular/log.29Mar19.pour.drum.g++.4 create mode 100644 examples/granular/log.29Mar19.pour.flatwall.g++.1 create mode 100644 examples/granular/log.29Mar19.pour.flatwall.g++.4 diff --git a/examples/granular/in.pour.drum b/examples/granular/in.pour.drum index edfb95117f..c30f30b377 100644 --- a/examples/granular/in.pour.drum +++ b/examples/granular/in.pour.drum @@ -2,7 +2,7 @@ # '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 +variable name string rotating_drum_two_types atom_style sphere units lj @@ -34,15 +34,14 @@ variable cyl_rad_inner equal ${drum_rad}-1.1*${rhi} variable dens equal 1.0 -variable skin equal 0.3*${rhi} +variable skin equal 0.4*${rhi} ############# - -region boxreg block 0 ${boxx} 0 ${boxy} 0 ${boxz} +processors * * 1 +region boxreg block 0 ${boxx} 0 ${boxy} 0 ${boxz} create_box 2 boxreg change_box all boundary p p f - -comm_modify vel yes +comm_modify vel yes variable theta equal 0 @@ -51,6 +50,7 @@ region bottom_wall plane ${xc} ${yc} 0 0 0 1 side in rotate v_theta ${xc} ${yc} region insreg cylinder z ${xc} ${yc} ${cyl_rad_inner} ${drum_height} ${boxz} +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} @@ -68,20 +68,20 @@ pair_coeff 2 2 jkr 1e5 0.1 0.3 50 tangential mindlin NULL 1.0 0.5 rolling sds 1e 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 cpu atoms ke v_theta +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 +#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} +compute 1 all property/atom radius +variable zmax atom z+c_1>0.5*${drum_height} group delgroup dynamic all var zmax every 10000 -run 10000 +run 2000 #Remove any particles that are above z > 0.5*drum_height delete_atoms group delgroup @@ -91,8 +91,8 @@ region top_wall plane ${xc} ${yc} ${drum_height} 0 0 -1 side in rotate v_theta 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 grav fix grav all gravity 10 vector 0 -1 0 -variable theta equal 2*PI*elapsed/20000.0 -run 30000 \ No newline at end of file +variable theta equal 2*PI*elapsed/20000.0 +run 3000 diff --git a/examples/granular/in.pour.flatwall b/examples/granular/in.pour.flatwall index a829d98e16..cfa70e2d84 100644 --- a/examples/granular/in.pour.flatwall +++ b/examples/granular/in.pour.flatwall @@ -30,7 +30,7 @@ variable dens equal 1.0 variable skin equal 0.3*${rhi} ############# - +processors * * 1 region boxreg block 0 ${boxx} 0 ${boxy} 0 ${boxz} create_box 2 boxreg change_box all boundary p p f @@ -62,6 +62,6 @@ thermo 100 timestep 0.001 -dump 1 all custom 100 ${name}.dump id type radius mass x y z +#dump 1 all custom 100 ${name}.dump id type radius mass x y z -run 15000 +run 5000 diff --git a/examples/granular/log.29Mar19.pour.drum.g++.1 b/examples/granular/log.29Mar19.pour.drum.g++.1 new file mode 100644 index 0000000000..71232ed8dd --- /dev/null +++ b/examples/granular/log.29Mar19.pour.drum.g++.1 @@ -0,0 +1,271 @@ +LAMMPS (29 Mar 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# 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 +comm_modify vel yes + +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 + +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 damping tsuji + +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 +dump 1 all custom 100 rotating_drum_two_types.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 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.2 + ghost atom cutoff = 1.2 + binsize = 0.6, bins = 50 50 84 + 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/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 13.02 | 13.02 | 13.02 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 3.54461 on 1 procs for 2000 steps with 4000 atoms + +Performance: 48750.057 tau/day, 564.237 timesteps/s +99.5% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.61949 | 0.61949 | 0.61949 | 0.0 | 17.48 +Neigh | 1.2492 | 1.2492 | 1.2492 | 0.0 | 35.24 +Comm | 0.046404 | 0.046404 | 0.046404 | 0.0 | 1.31 +Output | 0.15901 | 0.15901 | 0.15901 | 0.0 | 4.49 +Modify | 1.4165 | 1.4165 | 1.4165 | 0.0 | 39.96 +Other | | 0.05391 | | | 1.52 + +Nlocal: 4000 ave 4000 max 4000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 166 ave 166 max 166 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 8195 ave 8195 max 8195 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 8195 +Ave neighs/atom = 2.04875 +Neighbor list builds = 1004 +Dangerous builds = 3 + +#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 +fix grav all gravity 10 vector 0 -1 0 + +variable theta equal 2*PI*elapsed/20000.0 +run 3000 +Per MPI rank memory allocation (min/avg/max) = 24.81 | 24.81 | 24.81 Mbytes +Step Atoms KinEng v_theta + 2000 4000 64.333531 0 + 2100 4000 106.69182 0.031415927 + 2200 4000 121.8461 0.062831853 + 2300 4000 88.767952 0.09424778 + 2400 4000 82.850721 0.12566371 + 2500 4000 91.683284 0.15707963 + 2600 4000 31.56344 0.18849556 + 2700 4000 4.5697672 0.21991149 + 2800 4000 3.9879051 0.25132741 + 2900 4000 4.4394235 0.28274334 + 3000 4000 5.1212931 0.31415927 + 3100 4000 5.8608892 0.34557519 + 3200 4000 6.600714 0.37699112 + 3300 4000 7.3497851 0.40840704 + 3400 4000 8.0490988 0.43982297 + 3500 4000 8.6712396 0.4712389 + 3600 4000 9.1328667 0.50265482 + 3700 4000 9.4683561 0.53407075 + 3800 4000 9.5878145 0.56548668 + 3900 4000 9.387745 0.5969026 + 4000 4000 8.9117631 0.62831853 + 4100 4000 8.2344368 0.65973446 + 4200 4000 7.5335088 0.69115038 + 4300 4000 6.8426179 0.72256631 + 4400 4000 6.0567247 0.75398224 + 4500 4000 5.4166132 0.78539816 + 4600 4000 4.6012409 0.81681409 + 4700 4000 3.8314982 0.84823002 + 4800 4000 3.1916415 0.87964594 + 4900 4000 2.7833964 0.91106187 + 5000 4000 2.5051362 0.9424778 +Loop time of 11.9545 on 1 procs for 3000 steps with 4000 atoms + +Performance: 21682.142 tau/day, 250.951 timesteps/s +99.7% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 4.8291 | 4.8291 | 4.8291 | 0.0 | 40.40 +Neigh | 2.7489 | 2.7489 | 2.7489 | 0.0 | 22.99 +Comm | 0.071249 | 0.071249 | 0.071249 | 0.0 | 0.60 +Output | 0.20547 | 0.20547 | 0.20547 | 0.0 | 1.72 +Modify | 4.0179 | 4.0179 | 4.0179 | 0.0 | 33.61 +Other | | 0.0819 | | | 0.69 + +Nlocal: 4000 ave 4000 max 4000 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 322 ave 322 max 322 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 14849 ave 14849 max 14849 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 14849 +Ave neighs/atom = 3.71225 +Neighbor list builds = 1290 +Dangerous builds = 672 +Total wall time: 0:00:15 diff --git a/examples/granular/log.29Mar19.pour.drum.g++.4 b/examples/granular/log.29Mar19.pour.drum.g++.4 new file mode 100644 index 0000000000..ccd4365a38 --- /dev/null +++ b/examples/granular/log.29Mar19.pour.drum.g++.4 @@ -0,0 +1,271 @@ +LAMMPS (29 Mar 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# 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) + 2 by 2 by 1 MPI processor grid +change_box all boundary p p f +comm_modify vel yes + +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 + +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 damping tsuji + +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 +dump 1 all custom 100 rotating_drum_two_types.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 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.2 + ghost atom cutoff = 1.2 + binsize = 0.6, bins = 50 50 84 + 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/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 12.25 | 12.25 | 12.25 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.0709 on 4 procs for 2000 steps with 4000 atoms + +Performance: 83442.024 tau/day, 965.764 timesteps/s +97.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.24679 | 0.26336 | 0.28853 | 3.0 | 12.72 +Neigh | 0.52279 | 0.5332 | 0.53858 | 0.9 | 25.75 +Comm | 0.17418 | 0.20253 | 0.23266 | 4.7 | 9.78 +Output | 0.092897 | 0.093531 | 0.09515 | 0.3 | 4.52 +Modify | 0.88151 | 0.89571 | 0.90582 | 0.9 | 43.25 +Other | | 0.08257 | | | 3.99 + +Nlocal: 1000 ave 1001 max 999 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 267.75 ave 276 max 262 min +Histogram: 1 0 1 0 1 0 0 0 0 1 +Neighs: 2031.5 ave 2091 max 1958 min +Histogram: 1 0 0 0 1 0 0 1 0 1 + +Total # of neighbors = 8126 +Ave neighs/atom = 2.0315 +Neighbor list builds = 1004 +Dangerous builds = 3 + +#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 +fix grav all gravity 10 vector 0 -1 0 + +variable theta equal 2*PI*elapsed/20000.0 +run 3000 +Per MPI rank memory allocation (min/avg/max) = 21.6 | 22.6 | 23.82 Mbytes +Step Atoms KinEng v_theta + 2000 4000 64.255821 0 + 2100 4000 106.47082 0.031415927 + 2200 4000 121.52634 0.062831853 + 2300 4000 87.748818 0.09424778 + 2400 4000 82.712784 0.12566371 + 2500 4000 90.618713 0.15707963 + 2600 4000 30.096031 0.18849556 + 2700 4000 4.0838611 0.21991149 + 2800 4000 3.7485959 0.25132741 + 2900 4000 4.2159774 0.28274334 + 3000 4000 4.8730048 0.31415927 + 3100 4000 5.6109465 0.34557519 + 3200 4000 6.4290528 0.37699112 + 3300 4000 7.2699677 0.40840704 + 3400 4000 8.0895944 0.43982297 + 3500 4000 8.7222781 0.4712389 + 3600 4000 9.133205 0.50265482 + 3700 4000 9.3404584 0.53407075 + 3800 4000 9.3359844 0.56548668 + 3900 4000 9.0916854 0.5969026 + 4000 4000 8.5596424 0.62831853 + 4100 4000 7.9734883 0.65973446 + 4200 4000 7.2154383 0.69115038 + 4300 4000 6.7039232 0.72256631 + 4400 4000 6.1542738 0.75398224 + 4500 4000 5.4049454 0.78539816 + 4600 4000 4.4603192 0.81681409 + 4700 4000 3.6197985 0.84823002 + 4800 4000 2.9895571 0.87964594 + 4900 4000 2.5314553 0.91106187 + 5000 4000 2.2645533 0.9424778 +Loop time of 6.64209 on 4 procs for 3000 steps with 4000 atoms + +Performance: 39023.861 tau/day, 451.665 timesteps/s +96.6% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.8376 | 2.126 | 2.3131 | 12.6 | 32.01 +Neigh | 0.97762 | 1.0518 | 1.1337 | 5.4 | 15.84 +Comm | 0.53699 | 0.84265 | 1.2325 | 27.6 | 12.69 +Output | 0.13922 | 0.14159 | 0.14388 | 0.4 | 2.13 +Modify | 1.8815 | 2.1026 | 2.3368 | 11.2 | 31.66 +Other | | 0.3774 | | | 5.68 + +Nlocal: 1000 ave 1256 max 744 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Nghost: 579.5 ave 789 max 498 min +Histogram: 2 1 0 0 0 0 0 0 0 1 +Neighs: 3696.25 ave 4853 max 2590 min +Histogram: 2 0 0 0 0 0 0 0 1 1 + +Total # of neighbors = 14785 +Ave neighs/atom = 3.69625 +Neighbor list builds = 1230 +Dangerous builds = 676 +Total wall time: 0:00:08 diff --git a/examples/granular/log.29Mar19.pour.flatwall.g++.1 b/examples/granular/log.29Mar19.pour.flatwall.g++.1 new file mode 100644 index 0000000000..daab5efce3 --- /dev/null +++ b/examples/granular/log.29Mar19.pour.flatwall.g++.1 @@ -0,0 +1,134 @@ +LAMMPS (29 Mar 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# pour two types of particles (cohesive and non-cohesive) on flat wall + +variable name string pour_two_types + +atom_style sphere +units lj + +############################################### +# Geometry-related parameters +############################################### + +variable boxx equal 20 +variable boxy equal 20 +variable boxz equal 30 + +variable xc1 equal 0.3*${boxx} +variable xc1 equal 0.3*20 +variable xc2 equal 0.7*${boxx} +variable xc2 equal 0.7*20 +variable yc equal 0.5*${boxy} +variable yc equal 0.5*20 + +############################################### +# 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 dens equal 1.0 + +variable skin equal 0.3*${rhi} +variable skin equal 0.3*0.5 + +############# +processors * * 1 +region boxreg block 0 ${boxx} 0 ${boxy} 0 ${boxz} +region boxreg block 0 20 0 ${boxy} 0 ${boxz} +region boxreg block 0 20 0 20 0 ${boxz} +region boxreg block 0 20 0 20 0 30 +create_box 2 boxreg +Created orthogonal box = (0 0 0) to (20 20 30) + 1 by 1 by 1 MPI processor grid +change_box all boundary p p f + +comm_modify vel yes + +region insreg1 cylinder z ${xc1} ${yc} 5 15 ${boxz} +region insreg1 cylinder z 6 ${yc} 5 15 ${boxz} +region insreg1 cylinder z 6 10 5 15 ${boxz} +region insreg1 cylinder z 6 10 5 15 30 +region insreg2 cylinder z ${xc2} ${yc} 5 15 ${boxz} +region insreg2 cylinder z 14 ${yc} 5 15 ${boxz} +region insreg2 cylinder z 14 10 5 15 ${boxz} +region insreg2 cylinder z 14 10 5 15 30 + +fix 1 all nve/sphere +fix grav all gravity 10.0 vector 0 0 -1 +fix ins1 all pour 1500 1 3123 region insreg1 diam range ${dlo} ${dhi} dens ${dens} ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 ${dhi} dens ${dens} ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 1 dens ${dens} ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 1 dens 1 ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 1 dens 1 1 +Particle insertion: 562 every 346 steps, 1500 by step 693 +fix ins2 all pour 1500 2 3123 region insreg2 diam range ${dlo} ${dhi} dens ${dens} ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 ${dhi} dens ${dens} ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 1 dens ${dens} ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 1 dens 1 ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 1 dens 1 1 +Particle insertion: 562 every 346 steps, 1500 by step 693 + +comm_modify vel yes + +neighbor ${skin} bin +neighbor 0.15 bin +neigh_modify delay 0 every 1 check yes + +pair_style granular +pair_coeff 1 * jkr 1000.0 50.0 0.3 10 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall +pair_coeff 2 2 hertz 200.0 20.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall + +fix 3 all wall/gran granular hertz/material 1e5 1e3 0.3 tangential mindlin NULL 1.0 0.5 zplane 0 NULL + +thermo_style custom step cpu atoms ke +thermo_modify lost warn +thermo 100 + +timestep 0.001 + +#dump 1 all custom 100 ${name}.dump id type radius mass x y z + +run 5000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.15 + ghost atom cutoff = 1.15 + binsize = 0.575, bins = 35 35 53 + 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/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 12.22 | 12.22 | 12.22 Mbytes +Step CPU Atoms KinEng + 0 0 0 -0 + 100 3.8153191 855 -0 + 200 4.195287 855 -0 + 300 4.5890362 855 -0 + 400 10.636087 1500 -0 + 500 11.306909 1500 -0 + 600 11.968198 1500 -0 + 700 22.631892 2288 -0 + 800 23.711387 2288 -0 + 900 24.754344 2288 -0 + 1000 25.811778 2288 -0 + 1100 35.368869 2845 -0 + 1200 37.149843 2845 -0 + 1300 39.026458 2845 -0 + 1400 41.757583 3000 -0 + 1500 45.155503 3000 -0 + 1600 48.570241 3000 -0 + 1700 52.839322 3000 -0 + 1800 59.772697 3000 -0 + 1900 69.493305 3000 -0 + 2000 114.61886 3000 -0 + 2100 152.89232 3000 -0 diff --git a/examples/granular/log.29Mar19.pour.flatwall.g++.4 b/examples/granular/log.29Mar19.pour.flatwall.g++.4 new file mode 100644 index 0000000000..62a8b96c05 --- /dev/null +++ b/examples/granular/log.29Mar19.pour.flatwall.g++.4 @@ -0,0 +1,191 @@ +LAMMPS (29 Mar 2019) +OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (../comm.cpp:88) + using 1 OpenMP thread(s) per MPI task +# pour two types of particles (cohesive and non-cohesive) on flat wall + +variable name string pour_two_types + +atom_style sphere +units lj + +############################################### +# Geometry-related parameters +############################################### + +variable boxx equal 20 +variable boxy equal 20 +variable boxz equal 30 + +variable xc1 equal 0.3*${boxx} +variable xc1 equal 0.3*20 +variable xc2 equal 0.7*${boxx} +variable xc2 equal 0.7*20 +variable yc equal 0.5*${boxy} +variable yc equal 0.5*20 + +############################################### +# 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 dens equal 1.0 + +variable skin equal 0.3*${rhi} +variable skin equal 0.3*0.5 + +############# +processors * * 1 +region boxreg block 0 ${boxx} 0 ${boxy} 0 ${boxz} +region boxreg block 0 20 0 ${boxy} 0 ${boxz} +region boxreg block 0 20 0 20 0 ${boxz} +region boxreg block 0 20 0 20 0 30 +create_box 2 boxreg +Created orthogonal box = (0 0 0) to (20 20 30) + 2 by 2 by 1 MPI processor grid +change_box all boundary p p f + +comm_modify vel yes + +region insreg1 cylinder z ${xc1} ${yc} 5 15 ${boxz} +region insreg1 cylinder z 6 ${yc} 5 15 ${boxz} +region insreg1 cylinder z 6 10 5 15 ${boxz} +region insreg1 cylinder z 6 10 5 15 30 +region insreg2 cylinder z ${xc2} ${yc} 5 15 ${boxz} +region insreg2 cylinder z 14 ${yc} 5 15 ${boxz} +region insreg2 cylinder z 14 10 5 15 ${boxz} +region insreg2 cylinder z 14 10 5 15 30 + +fix 1 all nve/sphere +fix grav all gravity 10.0 vector 0 0 -1 +fix ins1 all pour 1500 1 3123 region insreg1 diam range ${dlo} ${dhi} dens ${dens} ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 ${dhi} dens ${dens} ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 1 dens ${dens} ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 1 dens 1 ${dens} +fix ins1 all pour 1500 1 3123 region insreg1 diam range 0.5 1 dens 1 1 +Particle insertion: 562 every 346 steps, 1500 by step 693 +fix ins2 all pour 1500 2 3123 region insreg2 diam range ${dlo} ${dhi} dens ${dens} ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 ${dhi} dens ${dens} ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 1 dens ${dens} ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 1 dens 1 ${dens} +fix ins2 all pour 1500 2 3123 region insreg2 diam range 0.5 1 dens 1 1 +Particle insertion: 562 every 346 steps, 1500 by step 693 + +comm_modify vel yes + +neighbor ${skin} bin +neighbor 0.15 bin +neigh_modify delay 0 every 1 check yes + +pair_style granular +pair_coeff 1 * jkr 1000.0 50.0 0.3 10 tangential mindlin 800.0 1.0 0.5 rolling sds 500.0 200.0 0.5 twisting marshall +pair_coeff 2 2 hertz 200.0 20.0 tangential linear_history 300.0 1.0 0.1 rolling sds 200.0 100.0 0.1 twisting marshall + +fix 3 all wall/gran granular hertz/material 1e5 1e3 0.3 tangential mindlin NULL 1.0 0.5 zplane 0 NULL + +thermo_style custom step cpu atoms ke +thermo_modify lost warn +thermo 100 + +timestep 0.001 + +dump 1 all custom 100 ${name}.dump id type radius mass x y z +dump 1 all custom 100 pour_two_types.dump id type radius mass x y z + +run 5000 +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 1.15 + ghost atom cutoff = 1.15 + binsize = 0.575, bins = 35 35 53 + 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/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 11.98 | 11.98 | 11.98 Mbytes +Step CPU Atoms KinEng + 0 0 0 -0 + 100 0.11584234 855 -0 + 200 0.12743592 855 -0 + 300 0.13925815 855 -0 + 400 0.35203671 1500 -0 + 500 0.37055922 1500 -0 + 600 0.38671875 1500 -0 + 700 0.71736908 2288 -0 + 800 0.74506783 2288 -0 + 900 0.77112222 2288 -0 + 1000 0.79632139 2288 -0 + 1100 1.0384252 2845 -0 + 1200 1.08093 2845 -0 + 1300 1.1224561 2845 -0 + 1400 1.1811485 3000 -0 + 1500 1.2414908 3000 -0 + 1600 1.3105879 3000 -0 + 1700 1.390928 3000 -0 + 1800 1.4869275 3000 -0 + 1900 1.5958266 3000 -0 + 2000 1.7172487 3000 -0 + 2100 1.851155 3000 -0 + 2200 1.9957182 3000 -0 + 2300 2.1593764 3000 -0 + 2400 2.3433132 3000 -0 + 2500 2.532742 3000 -0 + 2600 2.7376895 3000 -0 + 2700 2.9463468 3000 -0 + 2800 3.1645725 3000 -0 + 2900 3.3879526 3000 -0 + 3000 3.6152103 3000 -0 + 3100 3.8467371 3000 -0 + 3200 4.0787683 3000 -0 + 3300 4.3097105 3000 -0 + 3400 4.5423617 3000 -0 + 3500 4.7773693 3000 -0 + 3600 5.0127218 3000 -0 + 3700 5.2519271 3000 -0 + 3800 5.4951298 3000 -0 + 3900 5.7210469 3000 -0 + 4000 5.9432652 3000 -0 + 4100 6.1687591 3000 -0 + 4200 6.3942792 3000 -0 + 4300 6.6331475 3000 -0 + 4400 6.8632154 3000 -0 + 4500 7.0979366 3000 -0 + 4600 7.3305347 3000 -0 + 4700 7.5670528 3000 -0 + 4800 7.8086057 3000 -0 + 4900 8.0407174 3000 -0 + 5000 8.2765219 3000 -0 +Loop time of 8.27669 on 4 procs for 5000 steps with 3000 atoms + +Performance: 52194.788 tau/day, 604.106 timesteps/s +97.7% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 1.6106 | 3.4073 | 5.4191 | 95.7 | 41.17 +Neigh | 0.51456 | 0.64572 | 0.81542 | 16.6 | 7.80 +Comm | 0.2808 | 2.5222 | 4.4998 | 121.9 | 30.47 +Output | 0.15695 | 0.15919 | 0.16502 | 0.8 | 1.92 +Modify | 1.3517 | 1.4192 | 1.4904 | 4.9 | 17.15 +Other | | 0.123 | | | 1.49 + +Nlocal: 750 ave 1036 max 482 min +Histogram: 2 0 0 0 0 0 0 0 1 1 +Nghost: 429.75 ave 475 max 386 min +Histogram: 2 0 0 0 0 0 0 0 0 2 +Neighs: 4051.75 ave 6274 max 2057 min +Histogram: 2 0 0 0 0 0 0 0 1 1 + +Total # of neighbors = 16207 +Ave neighs/atom = 5.40233 +Neighbor list builds = 1165 +Dangerous builds = 0 +Total wall time: 0:00:08