fix bond/create - new bonds exceed the maxbond

Hello all,

I am using the fix bond/create command to create cross-linked polymer networks. Initially in the system, I have some polymer chains (say have a form of A-B-B-B-A) and cross-linkers ©. Both monomers A and C have a functionality of 2 while for B it is only 1. A and B can bond with C simultaneously. I trigger the cross-linking process using the following two commands:

fix fix_bond_side react bond/create 10 3 2 1.3 2 iparam 1 3 jparam 2 2
fix fix_bond_end react bond/create 10 4 2 1.3 2 iparam 2 4 jparam 2 2

Group “react” includes A (type 4), B (type 3) and C (type 2). However, in the final network I found C may form 3 bonds or 4 bonds, which is not what I want.

I did have learned from the mailing list that using two fix bond/create commands for the same group may not work (Steve) as “The two commands know nothing about each other and keep track of their own bond lists and counts”. This should be the reason why in my system the new bonds exceed the maxbond I set. But I still have no idea how I should modify the fix bond/create parameters to ensure a correct cross-linking process.

Any advice or idea would be appreciated.

Thanks,
Shimiao

Why don’t you see if your system works if you don’t invoke the

2 commands on the same timesteps.

E.g. do something like

fix fix_bond_side react bond/create 100 3 2 1.3 2 iparam 1 3 jparam 2 2
fix fix_bond_end react bond/create 101 4 2 1.3 2 iparam 2 4 jparam 2 2

so the first is every 100 steps and the second is every 101. Then you can

run for ~10000 steps w/out them being invoked on the same timestep.

If that works, we could probably add an offset option to the command so

you could invoke one of them on steps 10,20,30, …

and the other on steps 15,25,35, …

As my earlier comment indicated, I don’t think you can make them

work on the same step b/c system info has not been fully updated by the

time the 2nd one is making decisions.

Steve

Dear Steve,

Thanks a lot for your kind advice.

As suggested, I modified the fix bond/create commands like the following:

fix fix_bond_side react bond/create 100 3 2 1.3 2 iparam 1 3 jparam 2 2
fix fix_bond_end react bond/create 101 4 2 1.3 2 iparam 2 4 jparam 2 2

I ran the simulation for 10000 steps. However, the previous issue still exists - some atoms of type 2 form 3 or 4 bonds.

I was wondering if it is possible that two or more pairs of atoms can be attached to the fix bond/create commands, e.g. fix ID group-ID bond/create Nevery itype1 jtype1 Rmin bondtype itype2 jtype2 Rmin bondtype … keyword values …

This might be a direct way to solve the issue but I think it would be better if we can do this with the current LAMMPS code.

Thanks,
Shimiao

Hi,

Each fix maintains its own table counting how many times each atom has already
activated a new crosslink.

For a similar problem, I have forced the counting of crosslink bonds at each
time step. In a proposal to add an alternative algorithm to LAMMPS, I added this
forced counting as an option to the fix arguments.

Regards,

Pierre

Pierre sent some code that may address your issue (Shimiao). I will

take a look, but it won’t be right away …

Steve