[lammps-users] ERROR in reax potential and compiling after increase MBONDDEF in reax_def.h

Dear all

Aidan - any ideas? It's hard to believe that changing an array size
inside the REAX lib would cause the compiler to balk.


2010/6/16 laixin456 <[email protected]>:

This compiler error appears to be precipatated when the 2 GB limit for
32-bit addressing is exceeded. Somehow, the compiler was assuming a 32-bit
address would be sufficient, but then it ended up needing a 64-bit address.
You may be able to fix it by adding a compiler flag such as -mmodel.


However, if you system is small, you should be able to stay below 2GB. You
can compensate for the memory increase due to increasing MBONDDEF by
decreasing NATDEF.

Thanks for your rapid reply.
My compiler is icc, so the -mmodel flag won't work. Instead, I try the
-mcmodel=medium flag, but seems not right for the problem.

Finally, I change the MBONDDEF from 50 to 40, lucky the compiling
successed. This shall be suitable for this kind of small systems. But
I'm worry about those large cases in future.

Any way, I don't known whether the flag for icc is the right one to make
it addressing in 64-bit. Any suggestions will be highly appreciated.


2010-6-17 23:12, Thompson, Aidan:

If you are exceeding the 2 Gb limit on a single processor, then
you are probably running a problem that is so large (per processor)
that it will take forever to run anyway. If you use more processors,
the memory per processor should decrease well below 2 Gb.


2010/6/19 Lx <[email protected]>:

Thanks Steve.

Do you mean that the MBONDDEF would be only effective for each single
processor? So when I got an error about MBONDDEF, what I need to do is
just using more processors to handle the problem, rather than changing
the def and recompiling ?

Or, you're only talking about a way in which a problem should be run
more efficiently.
I guess the latter one.


2010-6-19 22:28, Steve Plimpton :

The smallest possible value for MBONDDEF does not depend on the number of
processors used, but the smallest possible value of NATDEF decreases as the
number of processors increases, since NATDEF must be greater than or equal
to the number of local plus ghost atoms on each processor.

So, first make MBONDEF and NATDEF the right size for the number of atoms
that you want to run on one processor. Then, in order to run larger systems,
just increase the processor count proportionately, without changing MBONDEF