fix bond/create and fix bond/break

Hi, LAMMPS users:

I found a bug maybe exists in the fix bond/create command. I have test fix bond/create and fix bond/break in a minimal model system, which is described as follows:

Two parallel polymer chains are set in the test model, each chain include 10 atoms, and they apart from 15 distance units. One of the chain include an atom site which can dynamically bonding and unbonding a new type bond with other atoms in another chain if distance constrains are satisfied.

I used extra/bond/per/atom 1 and extra/special/per/atom 25 to control the bonding number at the atom site, if the atom site has formed a bond with any atoms in another chain, it cannot form any bond furthermore. Compute property/local and dump/local were used to dump out the bond information. I found that:

(1) Extra/bond/per/atom 1 cannot constrain the numbers of new type bond no more than one at the atom site which formed with the atoms in another chain.

(2) If I use iparam and jparam parameters to constrain the bond number in the atom site, I found the information of bond/break’s cannot tell the command bond/create that the bonds have broken, and the atom site can form new bonds again. So, the maxbond in the iparam or jparam, it can only used once, if the bonds have broken, the maxbond can not update information.

The version of LAMMPS used in this test is 5May 2020.

The follows are input file, data file and output Bond list file.

Input file:

Hi, LAMMPS users:

[…]

I used extra/bond/per/atom 1 and extra/special/per/atom 25 to control the bonding number at the atom site, if the atom site has formed a bond with any atoms in another chain, it cannot form any bond furthermore. Compute property/local and dump/local were used to dump out the bond information. I found that:

(1) Extra/bond/per/atom 1 cannot constrain the numbers of new type bond no more than one at the atom site which formed with the atoms in another chain.

the extra/bond/per/atom setting for read_data does in no way constrain the bonding in fix bond/create. it extends the storage capacity for bonds, which are stored with atoms, but that is it. the requirement for it is to have sufficient capacity to store all possible bonds or else LAMMPS will terminate. so the (only) valid option to restrict bond formation is to change atom types with “iparam” and “jparam” to make atom types ineligible.

it is also a known “feature” that when using fix bond/create and fix bond/break in the same run, those do not communicate their changes to each other, but rather act independently. so what you are expecting to happen is not possible with that combination.

if you need a more sophisticated bond formation/deletion scheme, you need to use fix bond/react instead.

axel.

Thank you for your advices. I’ll try fix bond/react command.

Axel Kohlmeyer <akohlmey@…43…4…> 于2020年6月9日周二 下午7:11写道: