fix bond/break and bond/create

Hello all,

I have a set of 30 linear polymer chains. Each polymer has one bond type=2 (both atoms involved in bond formation are type =2). Rest of the atoms and bonds are type=1. I am using the fix bond/break command to break the bond of type=2 and fix bond/create to form the same bond again

fix bbreak all bond/break 10 2 0.7 prob 0.5 112

fix bcreate all bond/create 10 2 2 1.0 2 prob 0.5 4121 iparam 1 2 jparam 1 2 atype 1

I found that the bond breaking is taking place at regular intervals but not a single bond is created till run = 4000000.
Any advice or idea would be appreciated.

Thanks,
Awaneesh

I suggest you simplify and remove the bond/break command and only

try to create bonds. The fix bond/create command explains

the criteria the code uses to test if a bond can be created. You

need to verify that all the conditions are being met in your system.

Steve

Hi Awaneesh, here is something to consider. Fix bond create only counts the bonds on each atom at the beginning of a run. There isn’t a dynamic update of the bond counts on each atom during the run. So, part of your problem could be that fix bond break is reducing the bond count for some of the atoms to less than the iparam keyword, but fix bond create does not know about those changes until the next run when it recounts the bonds. You could check if that is the case with a simple test.

Tim

I’d forgotten about this - we’d have to think about a way to let
multiple fix bond break/create commands communicate that
info to each other. At the least we should add a note on the
doc page.

Steve

Hi,

Indeed, currently fix bond/create counts the bonds at the beginning of the run.
An option to recalculate it could be added (see here:
https://github.com/pdebuyl/lammps/blob/dev_fbc_random/src/MC/fix_bond_create.cpp#L169
).

It also plays a role if you need to define two times fix bond/create. I needed
this for an initiation and a continuation step in polymerization. I don't know
much about fix bond/break though.

Regards,

Pierre

Dear Steve and Tim,
Thanks a lot for confirming the communication issue between bond break/create commands. I was really wondering why the bond/create command was not making the same bond again after breaking it with fix bond/break.
Hope this issue will be resolved soon.

Thanks again.
Awaneesh

You could try Pierre’s approach. Recounting each time the fix runs seems reliable. If you’re concerned about losing performance due to recounting too often, it could make sense to put those values into a data structure that is updated by fix bond create and fix bond break (or multiple fix bond create in Pierre’s case).

Tim