[lammps-users] Granular simulation: ERROR: Too many touching neighbors - boost MAXTOUCH

Hello Steve,
This question sounds a bit silly, but I've been trying to see what's
happening a couple of days.

If I run the simulation in only one core, then everything goes Ok, but
if I run the simulation in four cores, then I get the ERROR: Too many
touching neighbors - boost MAXTOUCH.

Before I got other errors dealing with the pour fix (segmentation
faults), but I've solved them letting the particles to move from the
pouring region.

I want first to initialize the particles. I want three different
particles sizes each of them with small polydispersity:
1.8/2.0 first family; 1.0/1.3 second, and 0.5/0.9 the third.

I pour first, wait, then second ...
After I write a restart file, so then the simulation will start.
I'm going to wiggle the bottom wall.

I've been also changing the neighbor skin distance, and If the value is
very small I got a segmentation fault error. If larger then the MAXTOUCH
error appears.

I do not know if it is reasonable to change the MAXTOUCH value as
suggested in the documentation, I mean, I do not know if it will have
any side-effect.

The value in fix_shear_history.cpp is set as:
#define MAXTOUCH 15

Other point is to try to optimize the domain decomposition, as in z low
probably will have more particles. I will try to define four domains
splitting the domain vertically and along the X axis.

The lammps version is lammps-21Nov09.

The script is:

# Pour 3d granular particles into container
dimension 3
atom_style granular
boundary p p fm
newton off

region dominio block 0 100 0 20 0.0 100 units box
create_box 1 dominio

neighbor 1 bin
neigh_modify delay 0

pair_style gran/hertz/history 200000.0 NULL 1000.0 NULL 0.7813 1
pair_coeff * *
communicate single vel yes

timestep 0.00005

fix 1 all nve/sphere
fix 2 all gravity 1.0 vector 0.0 0.0 -1.0
fix zwalls all wall/gran 200000.0 NULL 1000.0 NULL 0.5 1 zplane 0 100
#fix visc all viscous 0.001
region slab block 1.0 99.0 1.0 19.0 30.0 35.0 units box

compute 1 all erotate/sphere
thermo_style custom step atoms ke c_1 vol
thermo 2000
thermo_modify lost ignore norm no
compute_modify thermo_temp dynamic yes

fix ins1 all pour 1200 1 1 vol 0.5 50 diam 1.8 2.0 rate 1 vel
0. 0. 0. 0. -1 region slab
run 1 #if not pizza fails because there is a snap without atoms.
dump mydmp all custom 2000 dump.init id type x y z ix iy iz vx vy vz
fx fy fz omegax omegay omegaz radius
run 250000
unfix ins1
run 10000
fix ins2 all pour 5000 2 1 vol 0.5 50 diam 1.0 1.3 rate 1 vel 0. 0.
0. 0. -1 region slab
run 250000
unfix ins2
fix ins3 all pour 5000 3 1 vol 0.5 50 diam 0.5 0.9 rate 1 vel 0. 0.
0. 0. -1 region slab
run 250000
write_restart restart.inicio

Dear friend,
Yes you can set the value of MAXTOUCH to 200 or so, it’ll work correct after that.

You can increase the value of MAXTOUCH and re-compile.
However, this number represents the number of other particles
which a central particle overlaps with, in a granular model.
The question you should ask is why 15 is insufficient for your
model. If the granular particles are hard, then a 3d particle
should not be overlapping with more than 15 other particles
at a time.


2009/11/30 Diego Peinado Martín <[email protected]>: