REAXC problem with molecule crossing the Periodic Boundary

Hello Hasan and LAMMPS developers.

Reaxc in LAMMPS keep crashing on me when running a system of CuO decomposition reaction. As soon as the system release oxygen into the empty box space, it eventually move to the boundary and then crash occurs as soon as the oxygen molecule attempt to cross. Using a s s s boundary was not possible as the code could not run.

After little investigation, I discovered the crash happens in reax_forces.cpp, precisely giving "-bondchk failed" error.

Could this be a result of how reaxc handle periodic boundary or something else is wrong?

FYI: I am using 23May11 versin of LAMMPS.

Suleiman.

suleiman,

Hello Hasan and LAMMPS developers.

Reaxc in LAMMPS keep crashing on me when running a system of CuO decomposition reaction. As soon as the system release oxygen into the empty box space, it eventually move to the boundary and then crash occurs as soon as the oxygen molecule attempt to cross. Using a s s s boundary was not possible as the code could not run.

After little investigation, I discovered the crash happens in reax_forces.cpp, precisely giving "-bondchk failed" error.

Could this be a result of how reaxc handle periodic boundary or something else is wrong?

whenever you report a problem of LAMMPS crashing,
please provide a simple way to reproduce it. ideally,
by posting some minimal input that reproduces the
situation very quickly and with minimal computational
effort. simply discussion some speculation of what is
happening is rarely helpful.

the easier you make it for somebody else to reproduce
and debug your problem, the higher the chance to get
proper help and quickly. this is not limited to reaxc,
but a general issue. however, the more complex a
model and the more time consuming it is, the more
important it is to provide a means of easy reproduction
of the pending issue.

cheers,
    axel.

Attention Hasan, Axel and Steve,

I originally thought that the problem might be an internal programming issue, but for the sake of completeness, I am providing the necessary input script/ data file and the force field file in the attachment. You will need to place the ffield.reax file in the same directory as the input script to enable you run the simulation.

Note that this particular reax ffield.reax file is not part of LAMMPS distribution, but rather a copy obtained from the supplementary data published for Cu/O/H system by Adri et al. However, it was verified to work well and reproduce the published data.

The Input script is shown below. Any help figuring out the problem would be appreciated. The system consist of 4800 atoms of Cu and O (See CuO_new.coord).
(See the original problem below).

Suleiman.

############### Data Begins ##############################

units real

atom_style charge

boundary p p p

read_data CuO_new.coord

pair_style reax/c NULL
pair_coeff * * ffield.reax 3 2

timestep 0.2

fix 1 all nve
fix 2 all qeq/reax 1 0.0 10.0 1.0e-6 reax/c
fix 3 all langevin 299.0 300.0 100.0 48279 scale 2 4.0 zero yes
thermo 10
thermo_style custom step etotal temp press

run 2000

unfix 3

fix 4 all heat 1 70.0

dump 5 all xyz 100 sample.xyz

run 5000

unfix 4

run 50000

############################ End Input file#####################################

CuO_new.coord (393 KB)

ffield.reax (9.69 KB)

Dear Suleiman,

Thanks for providing a detailed description of the problem and related input files. I am on travel now for a conference. I should be able to look into this problem once I return back next Monday.

Bests,
Metin

Thanks.

Just to let you know there was no problem with atoms crossing the periodic boundary. The problem appears to occur when a bonded molecule (an O-O molecule in this case) attempt to cross the periodic box. The routine in reax_forces.cpp then attempt to update bond information at that point and fails, hence the error message below:

  --------- ------- ------- -------
  -------- -------- ------- ------
   12820 -343744.81 2512.3066 -12.975263
   12830 -343744.54 2514.3507 -8.1702885
   12840 -343745.2 2515.2065 -4.4881318
step12852-bondchk failed: i=2 end(i)=35 str(i+1)=-1076882275
application called MPI_Abort(MPI_COMM_WORLD, -14) - process 21rank 21 in job 1 inode06.cluster_39593 caused collective abort of all ranks
  exit status of rank 21: killed by signal 9

Clearly, this is bond check failure. I tried different atom_modify settings with no success.

Suleiman.

Dear all,

I feel sorry to ask you this question, but after reading the source code of lammps, file fix_lammps.cpp, after reading the publication of Schneider that is recommended in the documentation of lammps, I still cannot figure out a very small detail that has importance:

the coefficient that leads to the random term is (from the code):

gamma2*(random->uniform()-0.5)

where gamma2 is:

sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;

I have several questions:

- I don't get is the "24". I expect a 2 from the calculation of schneider (equation A.31)
- also I don't get the 1/t_period/dt where I was expecting t_period.

Maybe this is the key, have I mixed the terms, or is it an unit issue ?

I ask this because I was inspired by these lines to make a Langevin thermostat for a 1D atomic chain, and it then does not converge to the temperature I try to enforce.

Someone could give me some help in understanding these lines and this coefficient "24".

I would greatly appreciate it.

Best regards to everyone.

Guillaume Anciaux

Dear all,

I feel sorry to ask you this question, but after reading the source code
of lammps, file fix_lammps.cpp, after reading the publication of
Schneider that is recommended in the documentation of lammps, I still
cannot figure out a very small detail that has importance:

the coefficient that leads to the random term is (from the code):

gamma2*(random->uniform()-0.5)

where gamma2 is:

sqrt(rmass[i]) * sqrt(24.0*boltz/t_period/dt/mvv2e) / ftm2v;

I have several questions:

- I don't get is the "24". I expect a 2 from the calculation of
schneider (equation A.31)

please have a look at this thread in the mailing list archive:

http://lammps.sandia.gov/threads/msg05314.html

cheers,
    axel.

Axel gave you the link that explains the 24 pre-factor.

also I don't get the 1/t_period/dt where I was expecting t_period.

This is simply converting from timesteps to time units.

Steve

Just posted Metin's fix for this as a 16Sep11 patch.

Thanks,
Steve