End-linking of polymers


Anyone know or have experience of end-linking polymers in LAMMPS in order to create a polymer network? I noticed that I can create bonds during the simulation between different types of atoms. One way would be to create an A_1 B_N A_1 (where N can vary) polymer whereby only A is able to crosslink and B is non-reactive? What is the best way to create such a polymer in that case?



You could do this, and then run your simulation for a while at high
pressure using "fix bond/create" with the "itype" and "jtype"
arguments set to the "A" atom type in your polymer.
(If you need angular interactions at the junctions, you will have to
add them manually. Hopefully you can ignore this issue.)

Alternately if you know exactly which atoms you want to connect
together, you can connect them by manually the "Bonds" section of the
DATA file, or, if you use moltemplate, by using a "write("Data
Bonds"){...}" to append new bonds to an existing polymer system. The
later case is demonstrated in this example file:
(In this example, the "CA" atom of many monomers (separate 3-atom
molecules) were connected together to build a polymer. (Ignore the
part about sharing the molecule-ID.) Either way, it's a good idea to
pick reasonable starting geometry for your subunits so that the
connector atoms are nearby each other.) I'm sure there are other ways
to add bonds to a LAMMPS data file. I confess I'm partially motivated
to reply to your post in order to bring up moltemplate, which I'm
trying to promote.)

Is branching possible? How many polymers can connect to the end of
another polymer?
If no branching is possible (if polymers can only join end-to-end in
pairs), then why not begin with one or more long polymers and "break
them up"? In other words manually change some of the atom-pairs in
the middle to type A. (This seems like the approach which would give
you the most reasonable starting conformation and you can do it
without any additional software.)

I hope I did not misunderstand your situation.