Hi LAMMPS users,

i’m new in LAMMPS community!!

I’m trying to minimize the geometry of a surface of Tricalcium Aluminate.

This is the script:

clear

units real

dimension 3

boundary p p p

atom_style charge

read_data C3A_4x4x1_OH.data

pair_style reax

pair_coeff * * ffield.reax 2 3 4 6

# H O Ca Al

minimize 1.0e-4 1.0e-6 100 1000

thermo_style multi

thermo 1

dump 1 all custom 1 C3A_4x4x1_min.xyz id type q x y z

print “All done!”

Log output is this:

LAMMPS (11 Jan 2012)

Reading data file …

orthogonal box = (0 0 0) to (30.496 30.496 7.624)

4 by 4 by 1 MPI processor grid

774 atoms

WARNING: Resetting reneighboring criteria during minimization (min.cpp:167)

Setting up minimization …

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 1206 of 656851 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 1692 of 656851 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 1341 of 656851 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 1887 of 680613 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 8245 of 633730 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 1698 of 656851 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 815 of 680613 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 1953 of 680601 pairs completed.

I have no idea about this result.

Can anybody give me some advice?

Hi Nicola,

This version of ReaxFF is a Fortran implementation with no dynamic

memory allocation, i.e., arrays sizes are determined by #defined

variables in the header files. MBONDDEF is one of the variables for

allocating arrays, which is the maximum number of neighbors one atom

is allowed to have.

This error implies that in your data structure certain atom(s)

has/have more than 20 neighbors so that the array size is exceeded.

This usually means you have a bad structure. e.g. atoms are

overlapping, incorrect boundary conditions, etc.

Also, you might want to try reax/c, which has dynamic memory

allocation and runs faster.

Ray

Hi Nicola,

A bit extra to Ray's comment. Did you try first minimizing the

periodic lattice before attempting the surface relaxation? If by any

chance your x/y cell dimensions are far from the bulk equilibrium

lengths you could be building stresses that could end up "shooting

atoms to the moon" at the surface level. Notice that in your script

you are only relaxing the atomic positions and not the cell shape.

Carlos

Hi Ray, hi Carlos and all LAMMPS users.

After following your advices, in particular:

- I have incremented MBONDDEF (from 20 to 35) in reax_defs.h
- I have relaxed not only atomic positions, but also cell shape.

i obtain alway the same error:

Reading data file …

orthogonal box = (0 0 0) to (15.25 15.25 7.62)

4 by 4 by 1 MPI processor grid

158 atoms

WARNING: Resetting reneighboring criteria during minimization (min.cpp:167)

Setting up minimization …

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 2637 of 326540 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 2243 of 326555 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 21926 of 342657 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 4678 of 342645 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 23797 of 342690 pairs completed.

ia(i1,2) = 21 reax_defs.h::MBONDDEF = 20 after 6760 of 342678 pairs completed.

The script is this:

clear

units real

dimension 3

boundary p p p

atom_style charge

read_data C3A_4x4x1_OH.data

pair_style reax

pair_coeff * * ffield.reax 6 4 2 3

timestep 0.5

thermo_style multi

thermo 10

fix 1 all box/relax iso 1.0

min_style sd

minimize 1.0e-6 1.0e-8 1000 5000

print “All done!”

the data of system/box are:

158 atoms

4 atom types

0.0 15.25 xlo xhi

0.0 15.25 ylo yhi

0.0 7.62 zlo zhi

What can i do??? Must I continue to increment the variable?for example MBONDDEF 100???

Another thing: i know that is a bad structure. I hope, by minimization, to obtain a better structure to start MD equilibration and so simulation.

Thanks

2012/11/21 Carlos Campana <campanacue@…24…>

Nicola,

The error message shows that your change to MBONDDEF was not successful, the copy of lammps you are using still has MBONDDEF set to 20. You need to change the variable in reax_defs.h, save the change, rebuild the reax library in by running the Makefile, rebuild lammps by running the Makefile in the lammps source directory and then copying the new version of lammps to your working directory. This does work - I have to do it every time I get a new version of Lammps. At least the error message clearly tells you what the problem is.

Kevin