# pour particles into cone-shaped funnel, settle them, let them run out bottom variable name string funnel_pour thermo_modify flush yes units si variable PI equal 3.141592653589 variable seed equal 14314 ############################################### # Geometry-related parameters ############################################### variable xlo equal 10 variable xhi equal 40 variable ylo equal 10 variable yhi equal 40 variable zlo equal -20 variable zhi equal 50 variable xc equal 25 variable yc equal 25 variable zconehi equal 50 variable zconelo equal 10 variable zcyllo equal 0 variable radconelo equal 2 variable radconehi equal 20 ################################################ # Particle sizes ################################################ variable rlo equal 0.25 variable rhi equal 0.5 variable dlo equal 2.0*\${rlo} variable dhi equal 2.0*\${rhi} variable skin equal \${rhi} ############################################### # Granular contact parameters ############################################### variable coeffRes equal 0.1 variable coeffFric equal 0.5 variable density equal 1.0 variable EYoung equal 10^5 variable Poisson equal 2.0/7.0 variable GShear equal \${EYoung}/(2*(1+\${Poisson})) variable gravity equal 1.0 variable reff equal 0.5*(\${rhi}+\${rlo}) variable meff equal \${density}*4.0/3.0*\${PI}*\${reff}^3 variable min_mass equal \${density}*4.0/3.0*\${PI}*\${rlo}*\${rlo}*\${rlo} variable max_mass equal \${density}*4.0/3.0*\${PI}*\${rhi}*\${rhi}*\${rhi} ## Typical way to set kn, kt, etc.: variable kn equal 4.0*\${GShear}/(3*(1-\${Poisson})) variable kt equal 4.0*\${GShear}/(2-\${Poisson}) variable a equal (-2.0*log(\${coeffRes})/\${PI})^2 variable gamma_n equal sqrt(\$a*2*\${kn}/\${min_mass}/(1+0.25*\$a)) variable gamma_t equal \${gamma_n}*0.5 variable tcol equal \${PI}/sqrt(2*\${kn}/\${min_mass}-\${gamma_n}/4.0) variable dt equal \${tcol}*0.05 timestep \${dt} ############################################### variable dumpfreq equal 1000 variable logfreq equal 1000 newton off atom_style sphere boundary p p f region boxreg block \${xlo} \${xhi} \${ylo} \${yhi} \${zlo} \${zhi} create_box 1 boxreg pair_style gran/hertz/history & \${kn} \${kt} \${gamma_n} \${gamma_t} \${coeffFric} 1 pair_coeff * * neighbor \${skin} bin thermo \${logfreq} comm_style brick comm_modify mode multi group all vel yes balance 1.1 shift xyz 20 1.1 fix bal all balance 10000 1.1 shift xyz 20 1.01 ####################### Options specific to pouring ######################### # insertion region for fix/pour region insreg cylinder z \${xc} \${yc} 10 30 50 side in units box # define cone and cylinder regions - see lammps doc on region command # note new open options region cylreg cylinder z \${xc} \${yc} \${radconelo} & \${zcyllo} \${zconelo} side in units box & open 2 #Top is open region conereg cone z \${xc} \${yc} \${radconelo} \${radconehi} & \${zconelo} \${zconehi} side in units box & open 1 open 2 #Bottom and top are open region hopreg union 2 conereg cylreg fix grav all gravity \${gravity} vector 0 0 -1 fix 1 all nve/sphere fix hopper3 all wall/gran/region hertz/history & \${kn} \${kt} \${gamma_n} \${gamma_t} \${coeffFric} 1 region hopreg fix ins all pour 2000 1 42424 region insreg & diam range \${dlo} \${dhi} dens \${density} \${density} #dump 1 all custom \${dumpfreq} \${name}.dump & # id type mass diameter x y z #dump 2 all image 4000 image.*.jpg type type & # axes yes 0.8 0.02 view 60 -30 zoom 3.0 & # box no 0.0 axes no 0.0 0.0 #dump_modify 2 pad 6 thermo_style custom step cpu atoms ke thermo_modify flush yes lost warn # Initial run to fill up the cone run 20000 unfix ins run 150000 # remove "plug" - need to redefine cylinder region & union region cylreg delete region hopreg delete region cylreg cylinder z \${xc} \${yc} \${radconelo} & \${zcyllo} \${zconelo} side in units box & open 1 open 2 #Bottom & top are open region hopreg union 2 cylreg conereg unfix hopper3 fix hopper3 all wall/gran/region hertz/history & \${kn} \${kt} \${gamma_n} \${gamma_t} \${coeffFric} 1 region hopreg run 100000