reax/c memory problems

Hello Sara,

I have also used reax/c with fix_deform and have encountered the same
error when the volume was changing too fast. What exactly did you mean
in "I changed time step but since i need specific time to reach the
desired volume i can not change the time"? If you decrease the
timestep then you should increase the simulation time, i.e. increase
number of runs so, that the total simulation time stays the same.

Best wishes,

Thank you so much for your replies.

my simulation is like this and i am doing it at 0 temperature :

units metal
timestep 0.001

lattice diamond 3.8

fix 1 all deform 1 x erate -0.001 y erate -0.001 z erate -0.001 remap x units box
run 2500

I have changed the time step and also strain rate but every time when i reach to the certain volume (here near 54.68) i get this error!
Do you mean that i should decrease the time step or strain rate ?
By changing the time space and strain rate I also sometimes get “segmentation error”.

Thank you so much for your help,


The first problem here is that you are using metal units for reax. Reax uses real units. The time step unit in reax is also in femtosecond. Therefore 0.001 fs would be outrageously low. Check the doc pages for reax/c and the unit commands.


Thank you for taking time to answer my question, I really appreciate all of your help.

I also have tried with “unit real” and “timestep 1” or even “timstep 0.1” but again i got this error.
Do you think with changing strain rate i should solve this problem? i have tried even with smaller value of strain rate but again i got this error.

Thank you,


You may want to post your complete input scrip as well as the data file. State the version of LAMMPS you are using as well.


Hi Sara,

Can you please post a smallest input script possible that reproduces
the segmentation fault error and/or the bondchk error? I'd be happy
to take a look to see if it is a bug or input script problem.


Really thank you all for your time and comment, i appreciate all your help.

I am trying a new reax/c potential and i want to determine the energy-volume plot of the system to check it!
my script is like below:

LAMMPS (4 Jul 2012)

REAX potential for C system

units real
atom_style charge
boundary p p p

timestep 0.1

neighbor 1 bin
neigh_modify every 1 delay 0 check no

#lattice diamond 3.57
lattice diamond 3.85
Lattice spacing in x,y,z = 3.85 3.85 3.85
region bulk_diamond block 0 3.85 0 3.85 0 3.85 units box
create_box 1 bulk_diamond
Created orthogonal box = (0 0 0) to (3.85 3.85 3.85)
1 by 1 by 1 MPI processor grid
create_atoms 1 region bulk_diamond
Created 8 atoms

mass 1 12.01

pair_style reax/c control.reax_c.C
pair_coeff * * reaxff-4June2012 1

thermo 1
thermo_style custom step temp vol etotal press

fix 1 all deform 1 x erate -0.01 y erate -0.01 z erate -0.01 remap x units box
fix 4 all qeq/reax 1 0.0 10.0 1.0e-6 reax/c

run 100
Memory usage per processor = 4.5921 Mbytes
Step Temp Volume TotEng Press
0 0 57.066625 -1397.0542 -1615050.9
1 0 56.895596 -1397.0542 -1619905.7
2 0 56.72491 -1401.0873 -1623590.6
3 0 56.554565 -1405.1208 -1626733.1
4 0 56.384561 -1409.1532 -1629304.3
5 0 56.214898 -1413.1832 -1631277.2
6 0 56.045577 -1417.2092 -1632627.2
7 0 55.876595 -1421.2297 -1633332.9
8 0 55.707954 -1425.2429 -1633375.5
9 0 55.539652 -1429.2474 -1632740
10 0 55.371689 -1433.2414 -1631414.7
11 0 55.204066 -1437.2232 -1629392
12 0 55.036781 -1441.1912 -1626668
13 0 54.869834 -1445.1437 -1623243
14 0 54.703225 -1449.079 -1619121.1
15 0 54.536954 -1452.9956 -1614310.8
16 0 54.37102 -1456.8917 -1608824
step16-bondchk failed: i=0 end(i)=16 str(i+1)=15

I tried to change the strain rate and also run time but every time i reach to a volume near 54 i got this error.

Thank you,


Hi Sara,

This error is due to the fact that the arrays allocated by pair_style
reax/c were exceeded during the compression. You are compressing a
very small system (very few local atoms), therefore during compression
the ratio of ghost atoms to local atoms dramatically increases, and
the sum of both quickly exceeds the size of the arrays.

Two ways to quickly fix this:
1. Replicate your system using "replicate 4 4 4", which will increase
your system size (and local atoms) and decrease the ghost/local ratio.
2. Increase the variable SAFE_ZONE in reaxc_def.h to 1.6, which will
increase the allocated array size.

Both ways will allow you to run your script to the end.


One more comment, since I don't have the control file and the force
field, I used default control setting and ffield.reax.


Hi Ray,

Thank you so much for your comment,
I tried both ways but unfortunately again i have the same error exactly after step 16!

my control file is like this:

simulation_name C_example ! output files will carry this name + their specific ext

tabulate_long_range 10000 ! denotes the granularity of long range tabulation, 0 means no tabulation
energy_update_freq 1

nbrhood_cutoff 4.5 ! near neighbors cutoff for bond calculations in A
hbond_cutoff 6.0 ! cutoff distance for hydrogen bond interactions
bond_graph_cutoff 0.3 ! bond strength cutoff for bond graphs
thb_cutoff 0.001 ! cutoff value for three body interactions

write_freq 1 ! write trajectory after so many steps
traj_title C ! (no white spaces)
atom_info 1 ! 0: no atom info, 1: print basic atom info in the trajectory file
atom_forces 1 ! 0: basic atom format, 1: print force on each atom in the trajectory file
atom_velocities 0 ! 0: basic atom format, 1: print the velocity of each atom in the trajectory file
bond_info 1 ! 0: do not print bonds, 1: print bonds in the trajectory file
angle_info 1 ! 0: do not print angles, 1: print angles in the trajectory file

Thank you and best regards,


Hi Ray,

Thank you again for taking the time to reply to my problem.

I tried the code with this potential and again i have the error exactly after step 16!

pair_coeff * * ffield.reax.V_O_C_H 1

I have attached my script to this email.

Thank you and best regards,


in.C-reax (757 Bytes)

control.reax_c.C (1005 Bytes)

log.lammps (2.09 KB)

Hi Sara,

I cannot test this now, so I would like to ask you to try the following:

1. update to the most recent distribution,
2. Change SAFE_ZONE and re-compile,
3. use replicate 4 4 4,
4. don't use control file (use "pair_style reax/c NULL), and
5. use the default force field file (ffield.reax).