Missing bond atoms

Hello everyone,

I apologize beforehand if this is due to a very simple mistake I’m having, but I have tried a couple of things and reread the related documentations and similar threads, still couldn’t solve the issue.

I’m using 16 Mar 2018 version of Lammps and getting this error:
Bond atoms 1799 1800 missing on proc 1 at step 20119 (…/ntopo_bond_all.cpp:63)

I’ve been trying to update the input and data files of an old simulation that had been used with the 2007 version of Lammps in order to run it on 16 Mar 2018 version of Lammps. It is a simulation of a network made of Si, C and O atoms, where there are Si-C based precursors that have bonded interactions for bonds, angles and dihedrals and free oxygen atoms that have nonbonded interactions (defined by Stillinger Weber potential) with precursors. The code first uses a soft potential to push the overlapping atoms and then applies simulated annealing with SW potential to generate the structure.

I have access to both the 2007 and 16 Mar 2018 versions of Lammps and the simulation runs fine without any problems on the 2007 version. So I don’t think that this error is because of bad dynamics.

I have updated the formatting of and the commands in the data and input files for the 2018 version. When I run the 2018 version, parameters like pressure, energy, volume all seem to follow the same values with the output files I got from the 2007 version until the simulation stops. I couldn’t detect anything abnormal in the output.

I have tried to read as many relevant threads as I could find, and tried these to solve the issue:

-Changing the time step (it was 0.001 on the 2007 version, I tried both 0.001 and 0.0001 for the 2018 version)
-Changing how frequently neighbor lists are built using

neigh_modify every 1 delay 1 check yes

to make sure it’s frequent enough and no atoms are lost because of this
-Ran the simulation on a single processor to see if the problem is related to parallel computing

There are also 0 dangerous builds during the simulations, which should be a good sign.

However, in all these cases I still get an error related to either lost bond atoms, dihedral or angle atoms.

One important thing that changed is the number of processors used in parallel computing. I run the old version on a cluster that has the 2007 version, and the new version on a different cluster that has the 2018 version. Since the two clusters are different I ended up using a different number of processors while using the 2018 version . I’m indeed suspecting that these differences related to parallel computing might be causing the error, but I’m also confused since I already tried modifying the neighbor list parameters as shown above which didn’t help. Running everything on a single processor doesn’t help either. If there is anything else that I can try related to this please let me know.

Another change is that the input file for the 2007 version has:
minimize 1.0e-4 10000 10000

Whereas for the 2018 version I changed this as:
minimize 1.0e-4 1.0e-6 10000 10000

Minimizing process is completed without any problems in both cases, but I wanted to add this in case this information might be necessary.

The simulation gives the error while Stillinger Weber potential is being applied on the system. A change related to the SW potential I did was that, the 2018 version SW parameters need a "tol"value, which did not exist for the 2007 version, so I included a tol value equal to 0.0 for all the triplets in the sw file which shouldn’t cause a change between the two versions as far as I understand.

I have also read some other threads that say increasing the cutoff distance for the nonbonded interactions might solve this problem, but since the exact same cutoff values work fine with the old version I don’t think that it will help solve the problem I’m having.

This is likely to have a trivial solution and I’m very sorry if I’m missing anything and for taking your time with this, but I wasn’t able to solve it myself. It would really be helpful if I could have some guidance on what might be causing this.

Here is the input file for the 2018 version:

EtOCS – one connectivity, multiple trials – with bulk modulus simulation

trial parameter

variable a index 1.1

EtOCS precursor start moleculeID parameter

variable p index 1

EtOCS precursor end moleculeID parameter

variable q index 2000

free O start atomID parameter

variable r index 8001

free O end atomID parameter

variable s index 15240

log log_$a.lammps

Karsu,

the error you are seeing is because your bonds are longer than the communication cutoff, so for bonds that straddle subdomain boundaries, not both atoms are available on the same processor.

One thing that I am wondering about is: I don’t see anywhere, that you are disabling/removing the bonds and/or changing the “special_bonds” settings. Is the SW potential you are using supposed to be used with bonded interactions? typically they are not. or you would have to have the bonds/angles/dihedrals as an additional overlay and then you would have to change the special_bonds settings, so that the 1-2, 1-3, and 1-4 neighbors are not removed from the neighbor list.

Also, are you running both calculations in parallel?
How do the energies for both simulations compare?
In general, it would be very helpful to see the output of both runs up until the first 1000 time steps of using the SW potential.

Axel.

Hi Axel,

Thank you for your feedback, I will read the documentation related to comm_modify command and try modifying the communication cutoff.

I’m running both calculations in parallel. These two versions are accessible on two different clusters that enable different number of nodes and processors for use. The old version is run on 6 nodes, each having 8 processors. The new version is run on a single node with 16 processors (with local parallelism). As far as I understand, once the communication cutoff is adjusted accordingly for the new calculation the problem might be solved.

As for the special_bond settings, yes the SW potential is supposed to be used with bonded interactions for this simulation. The simulation defines precursor molecules such as Si-C-C-Si and the interatomic potentials within every precursor is defined as bonded since we don’t want the precursors to decompose for this particular simulation. O atoms are defined freely, and nonbonded interactions are mainly for the interaction between O atoms and precursors, more specifically the Si-O interaction. The sw file defines the many body interactions for the triplets involving these bonded pairs within the precursors as zero or exponentially repulsive.

Thank you very much for the warning about this, I will update the special bond settings as 1.0 1.0 1.0 as suggested by the documentation for simulations that combine many-body interactions with bonded interactions.

I have also attached the outputs for both simulations in case there might still be something important that I’m missing. Unfortunately the calculation using the new version of Lammps stops way before 1000 time steps of using SW potential. In general the total energy seems similar in both cases until the simulation stops, with lower values in the new version. Number of total neighbors for the new version (15677) is also slightly lower than that of the old version (15821).

Thank you very much for your guidance,
Karsu

Also here is the input file for the old simulation (2007 version):

EtOCS – one connectivity, multiple trials – with bulk modulus simulation

trial parameter

variable a index 1.1

EtOCS precursor start moleculeID parameter

variable p index 1

EtOCS precursor end moleculeID parameter

variable q index 2000

free O start atomID parameter

variable r index 8001

free O end atomID parameter

variable s index 15240

log log_$a.lammps

2007_log_1.1.lammps (171 KB)

2018_log_1.1.lammps (15.5 KB)