[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.
Cheers,
Ram

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.

Steve

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